Thermal
ReferenceReports & analytics

Agreements valuation

Open Reports → Agreements Valuation in Thermal →

What it's for

Agreements valuation summarizes recurring contract value, agreement tenure, renewal exposure and recent margin. Open it from Reports at /reports/agreements-valuation. It provides figures for reviewing the agreement book; it does not calculate a sale price for the business.

See Manage agreement billing and renewal for changing the contracts behind the report.

Tabs

There are no tabs. The page shows headline figures, a customer filter, agreement status counts, the agreement result set and the next-12-month renewal outlook.

Panels and controls

Branch scope chips appear when you can compare multiple branches. Customer selects an available customer or All customers; Filter applies it. Clear returns to the report's default scope. The favorite star saves a report shortcut when available.

HeadlineDefinition
Total ARR (active)Annual recurring revenue: sum of stored annual contract prices for active agreements only
Avg customer tenureAverage of today minus each agreement's start date, across agreements with a start date; this is an agreement average, not one vote per distinct customer
Gross margin (90d)Sum of the report's available agreement margins for the rolling 90-day window
Renewal value 0–6 moAnnual prices on active/due-for-renewal agreements expiring before the six-month boundary
Renewal value 6–12 moAnnual prices on active/due-for-renewal agreements expiring at or after six months and before twelve months

Agreements by status counts Active, Due for renewal, Expired and Canceled, plus the total. Deleted agreements, agreements with no status and agreements whose customer is deleted are excluded. Due-for-renewal, expired and canceled agreements can appear in the detail table, but do not add to active ARR.

The Agreement result set, initially 25 rows per page, has these columns:

ColumnShows
AgreementAgreement label and plan; opens its record
Customer / Branch / StatusAgreement's customer, branch and current state
TermStart → expiry; missing start is a dash and missing expiry reads open
ARR (per year)Stored annual price on this row, including non-active rows; a missing price is a dash
TenureDays since the agreement start, or years for longer terms; missing start is a dash
Renewal outlookWithin 6 months, 6–12 months, or a dash
Gross margin (90d)Recognized agreement revenue minus known costs in the rolling window; missing margin reads No cost data

Renewal outlook (next 12 months) lists Agreement, Customer, Branch, Expires, Days to expiry, Bucket, ARR (per year) and Gross margin (90d), soonest expiry first. The first bucket currently has no lower date bound: a still-active or due-for-renewal agreement with a past expiry can appear with negative days to expiry. Agreements without an expiry do not enter either bucket.

Money limits

Annual prices are contract values, not cash collected or recognized revenue. Renewal values are those same annual prices, not a prediction that customers will renew. Missing annual prices add nothing to the totals.

The margin calculation reuses Agreement profitability: recognized agreement revenue in the rolling window, less labour line costs, non-labour line costs and recorded subcontractor costs on linked, non-canceled jobs created in that window. Revenue includes deferred fees recognized on visits and qualifying immediate fee invoices, excluding taxes and unrelated invoice lines. Equipment ownership and depreciation are not captured. A displayed zero can reflect no recorded activity; it does not prove all costs are present. This page does not calculate churn or a currency conversion.

No agreements in scope means none match the branch/customer. No renewals due in the next 12 months means the renewal set is empty. Missing aggregate margin displays a dash rather than a made-up figure.

Export offers CSV, XLSX and PDF for the report's selected scope. CSV and XLSX include up to 50,000 rows per section; PDF includes up to 2,000. A truncated export says how many rows were included. The money display is in US dollars; there is no currency selector or exchange-rate conversion on this screen. The export contains status counts, agreements and renewal outlook; agreement exports also include auto-renew, renewal count and tenure in days.

What it accepts

FilterFormatRequiredRule
CustomerAn available customer or All customersNoA selected customer narrows the agreement set
BranchAvailable branchNoYour access scope is the ceiling

There is no date-range input: valuation is as of today and margin uses the rolling 90-day window. The report does not change prices, terms or renewals.

How to configure it

Agreement prices, start/expiry dates, status and renewal history supply the valuation fields. Recognized fee revenue and job cost records supply margin. Branch/customer assignments supply the filters. Correct source records on the agreement and linked jobs; there is no separate valuation multiplier setting.

Who can see it

Owners, office managers and dispatchers can open Reports with the standard roles; technicians cannot. Custom roles can narrow access. Branch-limited users remain in their allowed branch, including on exports; changing the URL does not expand their scope. Company-wide users can compare available branches.

See Roles & permissions. This report and its exports also require permission to view costs. Access to Reports alone does not grant access to these margins.

On this page