ReferenceReports & analytics

Agreement profitability

Open Reports → Agreement Profitability in Thermal →

What it's for

Agreement profitability shows which maintenance plans make money and which do not. A book of agreements that looks healthy by revenue can be losing money on delivery, and this is the report that catches that before renewal season.

Reach it from Reports → Agreement profitability, at /reports/agreement-profitability.

Tabs

Reports links back to the hub. The report itself is one table with drill-in sections below.

Panels and controls

Columns: Agreement, Customer, Branch, Revenue, Labor cost, Material/parts cost, Equipment cost, Service/subcontractor cost, Known cost, Gross margin, Gross margin %, and Unavailable inputs.

Unavailable inputs is the column that makes this report trustworthy. Where a cost could not be worked out, the report says so rather than treating it as zero — so a 90% margin with three unavailable inputs reads as "we do not know" rather than "excellent". Cost input status carries the same information per contributor.

Contributors

Each agreement drills into the jobs behind it — Date, Source, Contributor, Quantity, and Amount — so a bad margin can be traced to the visits that caused it.

Renewals

Status, Expires, Days to expiry, and Trailing 90-day margin put profitability next to the renewal date, which is the pairing that makes the report actionable: a plan expiring in 30 days at a negative margin is a repricing conversation, not a renewal.

Export CSV takes it out; Clear resets the filters.

Empty states

No agreements in scope, No contributors in this date range, and No renewals due in the next 90 days.

What it accepts

FieldFormatRequiredRule
FiltersDate range, branch, and statusNo"Clear" resets them

The report is a read-out. Agreements are changed on their own records.

How to configure it

  • Job costing settings decide how labour, material, and subcontractor cost are attributed — which is what makes the margin real. Unavailable inputs usually trace back to cost attribution that has not been set up.
  • Agreements settings decide the cadence and pricing behind the revenue side.
  • Branches scope the report.

Who can see it

This screen sits behind the Reports area.

Owners, office managers and dispatchers can open it. Technicians cannot. The gate is checked on the server, not just hidden in the sidebar, so a direct link does not get around it.

The full role matrix is on Roles & permissions.

On this page