How pricing models work
A pricing model is a named billing preset. You choose one on a work order's Financials tab, and it stamps the right billing behaviour in a single click — the discount, the tax rate, the invoice status, and whether the job is chargeable — so you don't set those by hand on every job.
Think of it as "what's the commercial arrangement for this job?" — a normal paid call, a warranty repair, work covered by a contract — rather than a price calculator.
Where they come from
You define your models in Settings → Invoicing → Pricing Models. Each model has:
- an ID (the stable value stored on the work order, e.g.
WARRANTY) and a display label, - a short description shown under the dropdown, and
- a set of optional pre-fill defaults — the knobs below.
Four models ship by default; you can rename them, change their knobs, or add your own:
| Model | What it does |
|---|---|
| Fixed Price | A flat fee agreed upfront. No automatic adjustments. |
| Time & Material | Billable; charged by actual hours (from tasks × rate cards) plus parts. |
| Contract | Non-billable, invoice set to Voided, and requires a Contract ID. |
| Warranty | No-charge work: non-billable, 100% discount, 0% tax, invoice Voided. |
The pre-fill defaults (the knobs)
When you pick a model on a work order, these are copied onto that order's financials:
- Discount % — an automatic discount applied to the subtotal.
- Invoice status — what the invoice jumps to (e.g. Voided for no-charge work).
- Tax rate — overrides the tax for this job (e.g. 0% for exempt work). Leave blank to keep the order's tax identifiers.
- Mark labor non-billable — zeroes the charge for covered work.
- Require Contract ID — flags the order (and warns you) until a contract reference is filled in.
Every value a model fills in stays editable — it's a starting point, not a lock. You can pick Warranty and then dial the discount back to 50% for a goodwill partial charge.
A worked example
Say a compressor replacement has €225 labor + €450 parts + €30 travel = €705 subtotal, taxed at 21% → €853.05 total.
- Pick Time & Material → nothing auto-changes. Total stays €853.05, billable.
- Pick Warranty → discount becomes −€705, tax drops to 0%, invoice → Voided. Total becomes €0.00.
- Pick Contract → non-billable, invoice → Voided, and you're prompted for a Contract ID.
What it changes vs. what it leaves alone
Changes: the Discount line in the breakdown, the Tax line, the Grand Total, the invoice-status badge, and whether the job is billable.
Leaves untouched: your tasks, the recorded time, the labor rate cards, the parts list, and the travel amount. The record of what was done is never altered — only the billing outcome.
It doesn't compute the price
The total is always built the same way:
labor + parts + travel + surcharges − discount + tax = total
The pricing model only nudges the discount, tax, invoice status, and billability in that formula. When you convert the work order to an invoice, those values carry over — so a warranty job becomes a €0 voided invoice automatically, rather than something you zero out by hand.
Related: Creating and sending invoices