Thermal
Admin

Understand agreement billing and renewal

Open Agreements → Renewal Risk in Thermal →

Set up a service agreement covers creating an agreement. This guide covers what happens after: how — and when — it actually turns into money, and what happens when its term ends.

An agreement with no installment schedule does not bill itself

Creating or activating a service agreement does not generate an invoice. Price per Year is the annual price. Service Cadence is how often Thermal schedules a preventive-maintenance visit. Those PM visits are billed the same way as any other job, following Bill a completed job.

There is no charge during the term unless you set Installments on Edit. Each day, Thermal drafts an invoice for every installment that has come due on an Active agreement. That draft is one invoice per installment unless the customer on the agreement is set otherwise. On that customer's Edit form, Agreement invoices starts on One per agreement ("Each installment gets its own invoice."). One per account puts installments due the same day on one draft, one line each. One per site does the same, one draft per service site. They still draft separately when the branch, currency, payment terms, or the site address used for tax do not match. The installment fields are in Set up a service agreement.

A renewal invoice, described below, is separate from invoices on the agreement's PM jobs, from installment drafts, and from a progress bill.

Bill the agreement by progress

Open the agreement and go to Schedule of values.

If the section says No schedule of values yet, owners, office managers, and dispatchers choose Set up schedule of values. Add each billable line (Description and Scheduled value ($) — the amount has to be greater than zero), set Retention rate (%) (use 0 for none), and Save schedule of values. Add line adds another row.

Bill progress asks for each line's % complete to date and, if you are releasing money held back, Release retention ($). Create draft invoice opens that draft. While the draft is still open, the button reads Edit draft progress bill and saving it is Update draft. Only one progress draft can be open at a time. After the first progress bill, the lines and the retention rate lock — Edit schedule of values goes away.

Sending that draft follows Send and collect an invoice. The dollar math (retention held, tax on the gross, which invoice you can void) is on the agreement record reference.

Renewal

An agreement moves from Active to Due for Renewal automatically — Thermal checks daily and flips the status once the expiration date is within your company's renewal window (default 30 days out — Settings reference). If it isn't renewed by the expiration date (plus a grace period, default 0 days), it moves to Expired.

What happens next depends on Auto-renew, the checkbox on the agreement itself:

  • Auto-renew on — Thermal extends the term by one contract term (the agreement's term in months, not the PM visit cadence) automatically, on the same daily check. This keeps coverage continuous. By default it doesn't bill the customer. To bill on renewal, also tick Also draft the renewal invoice (it appears once Auto-renew is on): each automatic renewal then creates one draft invoice for the new term, the same invoice Renew + Invoice makes. Nothing is sent and no payment is taken; you review and send the draft. The option isn't available while the agreement has installment rows, or while Billing frequency is Monthly, Quarterly, or Annually. Those already bill the year. A renewal with that frequency adds the next term's installments at the renewed price and does not also draft a full-year invoice. Custom schedule does not add installments on renewal.
  • Auto-renew off (the default) — the agreement sits at Due for Renewal or Expired until an Office or Owner user renews it by hand, either from the agreement record or from the renewal-risk queue (below).

Renew and bill in one step

From a Due for Renewal or Expired agreement's detail page, choose Renew + Invoice. This opens Renew agreement. It extends the term and, unless a billing frequency is set, creates a draft invoice for the next term's price. (An auto-renew agreement with Also draft the renewal invoice ticked does the same on its own.) The invoice is a normal draft invoice ("Service agreement renewal" as its note), so from there it follows the same sending and payment steps as any other invoice.

New end date defaults to the current end plus the term. Leave it to bill a full first year at the renewed annual price. Pick a date inside that first year and the dialog shows Invoice amount (prorated, N days). The amount is the annual price times those inclusive days, divided by 365, rounded half up to the cent, and never more than the annual price. Invoice covers is the new term's start through that date. The stored Price per Year stays the annual figure. A date on or after the first year's end bills the full annual price for the first 12 months. The date has to fall after the term starts. If it is too far out, the form says the new end date can be at most 60 months after the term starts, and it names that latest date.

When Billing frequency is Monthly, Quarterly, or Annually, Renew + Invoice still extends the term and adds the next term's installments. It does not draft that full-year or prorated invoice. The agreement's Billing panel shows Billed as Monthly, Quarterly, or Annually.

Does the price change on renewal?

By default, no — a renewal keeps the same Price per Year unless a next-term price, an escalation clause, or a rate card says otherwise.

To set the next price yourself, open Agreements, select the rows, and choose Change price. Change by is Percent (4 raises each price 4%) or Fixed amount (50 adds $50 a year). A minus sign lowers the price. Takes effect starts on At next renewal: "Each agreement renews at its new price, ahead of any escalation." Preview shows Agreement, Current, New, and Note. Apply to N agreements stores it. Nothing is written until Apply. After Apply the notice reads "New price set on N agreements from next renewal." A canceled agreement, or one with no annual price, is skipped, and Note says why. The record's What's included panel shows Next-term price as the amount "from next renewal" until that renewal uses it. That price is final for the new term: a rate card and an escalation clause do not raise it again. If a next-term price was already waiting, Note says the new one replaces that pending amount.

Now is the other choice: "Reprices installments not yet invoiced." Apply writes the new Price per Year immediately, and the notice reads "New price set on N agreements now." Installments in the current term that already have an invoice keep their amounts. The ones still scheduled, with no invoice, share what is left after those invoiced amounts are subtracted from the new term total. They split evenly, and the last one takes any cents left over. A $1,200 agreement billed quarterly, with two $300 installments already invoiced, changed to $1,320 this way keeps those two at $300 and sets the other two to $360. Note reads "2 of 4 installments invoiced; 2 repriced to $360.00". A pending next-term price is left as it is, and Note adds that the pending next-term price is unchanged. An agreement with no installment schedule still gets the new annual price. Now is skipped, and Note says why, when the new price would fall below money already invoiced ("Skipped — new term price is below already invoiced installments") or when this term already has an agreement-fee invoice that is not still an unsent draft ("Skipped — already billed this term"). An agreement whose current term is priced year by year is skipped as well ("Skipped — priced by a year-by-year schedule; change it on the agreement"), so change that price on the agreement itself.

Without a next-term price, an escalation clause on the agreement applies next. Otherwise a rate card with a renewal escalation rule can change the price. There's also an org-wide suggested escalation percentage (default 5% — Settings reference), but that number is only ever applied through the Suggested-renewal review below. Plain auto-renew and a plain manual renewal never apply it on their own.

Does a multi-year agreement step on the anniversary?

A term longer than 12 months can change Price per Year on each anniversary of the term start, while the agreement is still Active or Due for renewal and before it expires. That step is not a renewal.

It uses a fixed escalation percent on the agreement, or an escalation rule on its rate card, unless that year has an annual price under Price by year on Edit agreement. A set annual price replaces the clause and the rate card for that year. A year left blank still follows a fixed escalation percent when the agreement has one. The rate card is used only when the current term has no price-by-year rows. An index-linked year does not step unless that year has an annual price. The suggested escalation percent in Settings is not used here. With neither a fixed percent, a rate-card rule, nor an annual price for that year, the anniversary changes nothing.

Price per Year becomes the new amount. Installments in the current term that are still only scheduled, have no invoice, and are due on or after that anniversary are repriced in proportion to the new annual price. The last of those installments takes any cents left over. Installments that already have an invoice keep their amounts. When the installments already add up to every year's price, the anniversary leaves those amounts alone.

History lists the step as Anniversary step, with Prior price, New price, Change, and Source. Source reads Price schedule when that year had an annual price. That row has no Undo. Undoing the renewal that opened the term marks those steps Reverted and restores the price from before the renewal. See Undo a mistaken agreement renewal.

If the company requires a signature on the agreement and it is not signed, the anniversary step does not run.

The renewal-risk queue

Agreements → Renewal Risk ranks every active, due-for-renewal, or expired agreement by a risk score built from real signals on the account: how close it is to expiring, whether it has past-due invoices, whether auto-renew is off, whether PM visits are overdue or incomplete, and whether the customer has turned down an upsell recently. It's a triage list, not an automation — renewing a row from here extends the term and does not draft a full-year invoice. A next-term price, an escalation clause, or a rate card still sets the new price, and a billing frequency still adds the next term's installments.

Suggested renewals

If your company turns on the Agreement renewal module (Settings → Automations), Thermal reviews agreements approaching renewal and drafts a suggested renewal — with a suggested price escalation — for an Owner or Office user to approve before anything actually renews. This module never renews or bills on its own; approval is always required, and there's no "Auto" mode for it.

What isn't built yet

To keep this page accurate to what the product does today: service agreements don't support prorating a mid-term start or a cancellation. The only proration is a renewal whose New end date falls inside the first year, described above. There's no deposit charged when an agreement begins. Don't rely on a mid-term proration or a deposit when quoting a customer.

Reference

On this page