For commercial & mechanical contractors

Run the whole operation by the numbers that move it.

One platform for dispatch, agreements, equipment and the back office — on a single equipment record, running beside the accounting system you already trust.

10–200 techs across branches · QuickBooks Online sync in early access
Operations overviewThis quarterAll branches
First-time fix4
87%
Target 85%
Utilization3
82%
Target 80%
Renewals5
91%
Target 88%
Revenue18%Last 6 mo
JanFebMarAprMayJun
MTTR
3.2h
WO complete
93%
First response
22m
Overtime
8.5%
Automations3 ready
Reweight North dispatch
3 callbacks traced to uncertified techs · +4% first-time fix
DismissApply rule
Renew Cascade Logistics · +6%
Roadmap
Expires in 12 days · margin holding
LaterSend renewal
Book PM · Carrier 48TC
Roadmap
78% risk before peak · 40 units affected
Not nowSchedule

Illustrative interface mock — not customer data

Runs beside the systems you already trust —QuickBooksStripe— never inside them.

Beside your books, not inside them

Thermal runs field operations. Your accounting system runs the books.

Thermal is never a rebuild of QuickBooks, Xero, Sage Intacct, or Business Central inside a field-service shell — it connects beside whichever one you already run, pushing invoices, customers, vendors, and vendor bills out, and leaving the general ledger, payroll, and retainage-heavy construction accounting exactly where they are.

See how Thermal connects to your accounting system
AreaThermal ownsYour accounting system / ERP owns
System of recordCustomers, service sites, installed equipment, agreements, work orders, dispatchGeneral ledger, chart of accounts, financial statements
MoneyQuotes, invoices, and payment status on the jobPayroll, retainage-heavy construction accounting, multi-entity consolidation
What syncsPushes invoices, customers, vendors, and vendor bills outStays the system of record for the books — Thermal does not post journal entries to your books

QuickBooks Online syncEarly accessSage Intacct and Business Central adaptersOn the roadmap

Goal-driven operations

Set the number. Keep the work connected to it.

Commercial and mechanical contractors do not need another dashboard full of generic scores. They need a clear target and a trustworthy view of the operational records that move it.

Choose the scorecard

Save up to three north-star goals for the operation, then keep them visible at the top of the dashboard.

Read the records behind the number

Thermal calculates the available KPI values from work orders, appointments, invoices, time entries and service agreements in the selected reporting window.

Keep unknowns honest

When a metric has no source yet, the dashboard shows it as unavailable instead of filling the gap with a placeholder.

See Thermal in action

KPI dashboard

Your north-star goals

Selected period
First-time fix rateExample target: 85%

Measured from Completed work + callbacks

Tech utilizationExample target: 80%

Measured from Closed time entries + capacity

Average ticketExample target: $520

Measured from Sent, partial & paid invoices

Evidence before interpretation

Compare the current value with your target, inspect the underlying work, and decide the next move with your team.

Dispatch

Every tech's whole day on one board.

The dispatch board lays each technician's day across a single timeline — jobs, live status, and a now-line that moves with the shift. Emergencies jump the queue, the unscheduled backlog waits on the left, and Thermal suggests the nearest certified tech for anything still open.

1 · Trigger
An emergency jumps the queue
1 EMERGENCY
Salazar · No heat
4 more jobs sit in the unscheduled rail — Lucia Jones, Daniel Brooks, Maria Lopez — waiting to be placed on a tech's day.
2 · Action
Thermal suggests the nearest certified tech
Lucia JonesJason P.
Seasonal tune-up · Mead
WO-1001 · ~1.0h
Auto-schedule places the rest of the queue against certification, drive time, and current load.
3 · Outcome
Every tech's whole day locks into one board
JP
Jason Park
3 jobs
M. Rodriguez
No cooling
In progress
Now-line · 10:20a

Illustrative interface mock — not customer data

Service agreements

Your maintenance revenue renews itself.

PM work orders generate on schedule, renewals surface before the contract lapses, and every visit links back to the equipment. When margin or age says it's time, the renewal and its numbers are right there on the agreement — you set the reprice and send it.

1 · Trigger
A renewal comes due
Cascade Logistics
Comfort Club · 4 units
Renewal due
Exp 12 daysNext PM Jun 05, 2026
2 · Action
A reprice suggestion, ready for review
Suggested: Cascade Logistics renews in 12 days — 3 units aging, margin holding. Send renewal at +6%. Roadmap
3 · Outcome
Coverage renews, PM keeps running
Riverside Medical Plaza
Premier Care · 9 units
Active
Next PM May 12, 2026
Northgate Apartments
Premium PM · 16 units
Active
Next PM Apr 30, 2026

Illustrative interface mock — not customer data

The difference

Every decision is wired to a piece of equipment.

The unit is the spine of Thermal. Its age, run hours, refrigerant, warranty and every past visit live in one serialized record — so the system can connect a callback to a cause, and a tired RTU to a visit before it dies in July.

Tracking jobs tells you what happened. Tracking equipment tells you what to do next.

The tech sees what failed last time before they climb to the roof
Catch the failure before the tenant feels it — book on your terms
Prove the callback rate dropped because the right tech got the right job
Carrier 48TC · 7.5-ton RTU
78% RISK
4820G60418 · Northgate · installed 2019
Spring PM — agreement visit
Apr 2024 · healthy
No cooling — recharged
Jul 2025 · callback ×1
Low charge again — suspected leak
Oct 2025 · topped ×2
Book before peak — suggested
May 2026 · close the loop
A planned PM visit now beats a no-cool emergency across 40 units in July.

Illustrative interface mock — not customer data

The field app

Built for the truck, the attic, and no signal.

Dark by design — legible on a bright rooftop and easy on the eyes in a mechanical room. The tech gets the unit's full history, the most-likely fix from past calls, and the right line items — then captures photos, readings and signatures offline, syncing when the truck hits the road.

Full offline mode
Nameplate scan → equipment record
Refrigerant logs checked to spec
THERMAL
OnlineMarcus
Wednesday, June 24
Good morning, Marcus
MR
6
Jobs today
1
Emergency
$492
Booked
Up next
Emergency · en routeWO-1002
Northgate Apartments
No cooling — upstairs RTU, 40 units affected
1200 W Garland Ave, Spokane
Navigate
#1005Scheduled
11:00
Riverside Medical
Quarterly PM — 9 rooftop units
Route
Jobs
Schedule
Profile
Today's jobsOffline
No cooling
Upstairs RTU — Carrier 48TC
WO-1002 · Northgate Apartments
Suggested fixmost likely
Run capacitor 45/5
Failed on 2 of the last 2 calls on this unit. Matches the reported symptom.
Different issueUse this fix
Photo
Reading
Refrigerant
Mark in progress
Route
Jobs
Schedule
Profile
THERMALOnline
This week
M
22
W
24
T
25
F
26
S
27
TodayWed, Jun 243 jobs
#1006Emergency7:30a
Lundgren Cold Storage
No cooling — walk-in freezer
#1002In progress11:00a
Riverside Medical
Quarterly PM — 9 units
#1003Assigned2:30p
Summit Business Park
Inspection — rooftop AHU
Route
Jobs
Schedule
Profile

Illustrative interface mock — not customer data

Multi-branch

One system of record, scoped by branch.

Multi-branch is common at 10–200 technicians, and it's built into the same tenant — not a second instance you stand up per location.

Branch-scoped roles, enforced at the database

A technician's session is scoped to their home branch by default. Owners, dispatchers, and office roles see every branch unless you restrict them — enforced by Postgres row-level security, not just app logic.

Dispatch and scorecards roll up org-wide

Run dispatch and reporting across every branch from one board, then compare branch-by-branch when you need the detail — a caller with two or more live branches gets a branch selector, not a separate login per location.

Per-branch settings

Business hours, scheduling policy, and automation quiet hours are configurable per branch — a new branch inherits sensible defaults with no migration required to add it.

Migration & security

Two questions every buying committee asks first.

Migration

Bring your history over without a project of your own.

Export what you have, stage it for review, and approve what moves — customers, sites, equipment, service history, and agreements. Nothing commits until you say so, and we don't quote a fixed timeline or a specific source system here.

See how migration works

Security

Data isolation you can verify, not take our word for.

Tenant and branch isolation is enforced by Postgres row-level security at the database — tested against the real restricted role, not just documented as intent. We don't hold SOC 2, ISO 27001, or HIPAA certification today, and we say so plainly rather than dressing the page up with a badge.

See the security page
Pricing

One platform, priced per tech.

The whole system — not a starter kit with the real features gated behind add-ons. No penalty exit clause; your data is yours, any time.

Core

For a single branch getting the whole operation onto one record.

$119/ tech / mo
Start with Core
Dispatch & work orders
Equipment spine & history
Offline field app
QuickBooks sync (early access)
Most popular
Growth

For multi-branch shops running agreements and the full back office.

$179/ tech / mo
Book a demo
Everything in Core, plus:
Service agreements & PM automation
Multi-branch dispatch & scorecards
Quote-to-cash & proposals
Accounting handoff
Scale

For larger operations with projects, subs and tailored controls.

$249/ tech / mo
Book a demo
Everything in Growth, plus:
Projects & job costing
Rentals, leasing & subcontractors
Advanced permissions & approval rules

Evaluating for procurement or IT review? See how Thermal handles security and data.

Run the whole shop. No traps.

One system of record across every branch, beside the books you already trust. See it on your own data in 30 minutes.