Trade Demos Showcase

The cost calculator: how it works, and how it's tuned

A guide, not a quote. Built once, calibrated per trade, runs in the browser.

1. In plain English

The calculator gives a customer a believable price range in under a minute, before they call. They answer a small set of multiple-choice questions ("what do you need?", "how big?", "where?", "access?", "anything alongside?") and see a low–high range with a tier label ("Tree removal", "Major renovation"). It is honest about being a guide, not a binding number.

The job of the calculator is to filter, not to quote — to send the right enquiries through and to spend three quiet seconds explaining cost factors to the wrong ones.

2. The model

One formula, two layers:

point = (base + Σ add) × Π mult
low   = round(point × lowFactor)    // e.g. 0.85
high  = round(point × highFactor)   // e.g. 1.15
tier  = first tier whose min the midpoint clears

Each answer the customer picks may add a flat dollar amount (add) and/or multiply the running total (mult). Tiers turn a number into a label. The spread (low/high factor) controls how confident the range is.

3. Two layers kept separate

pricingModel holds the numbers — base, add, mult, tiers, spread. estimatorConfig holds the words — the heading, the input labels, the option labels customers see. Numbers and words evolve on different timelines, so the data shape keeps them apart. A copy edit never touches a price.

4. The five dials you tune

  1. base — the cheapest scenario starting point (a small consult, an assessment).
  2. add tables — the per-axis dollar deltas as scope grows.
  3. mult tables — the per-axis multipliers (access difficulty, terrain).
  4. tiers — the labels that turn the midpoint into "Tree removal" / "Major renovation" / etc.
  5. lowFactor / highFactor — how wide the band reads (typically 0.85 / 1.15 — narrower means more confident).

5. The safety rail (gate #14)

Per site, a small estimatorCalibration block declares the orderings each axis must respect (size: small < avg < large) and, for per-metre trades, the expected $/m bands. The build refuses to ship if the math violates them — so a price axis can't accidentally invert mid-edit. The calibration check is run by importing the same computeRange that the browser runs.

6. The numbers below are real

Each demo's sample range is computed by the generator against that demo's own pricingModel, using the same estimate.ts the demo itself runs. Pick one to see what it produces:

Bathline Bathroom Co
Bathroom renovation · Guided estimator (wizard)
$33,116 – $45,911
"Standard renovation"
Full span: $19,360 – $129,937
Branchline Tree Care
Arborist / tree care · Guided estimator (wizard)
$5,092 – $7,762
"Large or complex removal"
Full span: $451 – $14,788
Brushline Painting Co.
Painter / decorator · Standalone range estimator
$13,486 – $22,823
"Heritage / two-storey / lead-paint tier"
Full span: $1,404 – $35,218
Clearline Exterior Cleaning
Gutter cleaning · Standalone range estimator
$1,002 – $1,528
"Whole-home exterior"
Full span: $312 – $4,676
Coastline Restoration Co.
Roof & exterior restoration · Standalone range estimator
$1,002 – $1,528
"Multi-surface job"
Full span: $312 – $4,676
Deckline Decks
Decking · Guided estimator (wizard)
$22,320 – $34,842
"Elevated deck, substructure and balustrade"
Full span: $2,529 – $125,538
Fernline Landscapes & Design
Landscaping · Standalone range estimator
$22,160 – $35,133
"Structured rebuild"
Full span: $6,970 – $128,115
Grainline Kitchens & Cabinetry
Kitchens & cabinetry · Guided estimator (wizard)
$15,137 – $22,260
"Significant upgrade"
Full span: $4,250 – $86,240
Mainline Plumbing Co.
Plumbing · Standalone range estimator
$902 – $1,430
"Major repair / new unit"
Full span: $213 – $10,179
Pestline Pest Management
Pest control · Standalone range estimator
$451 – $743
"Specialist / multi-visit range"
Full span: $197 – $5,211
Postline Fencing Co.
Fencing · Guided estimator (wizard)
$21,942 – $34,251
"Full property, gates and access work"
Full span: $665 – $106,161
Ridgeline Roofing Co.
Roofing · Standalone range estimator
$7,809 – $11,944
"Major restoration / partial re-roof"
Full span: $510 – $52,497
Saltline Air & Refrigeration
Pool maintenance · Standalone range estimator
$11,178 – $18,164
"Multi-head split system"
Full span: $2,080 – $39,059
Sealline Waterproofing
Sealing & waterproofing · Guided estimator (wizard)
$1,862 – $2,906
"A full wet area, balcony or deck"
Full span: $115 – $33,263
Slabline Concreting Co.
Concreting · Guided estimator (wizard)
$10,012 – $15,628
"Standard driveway or shed slab"
Full span: $613 – $60,065
Steelline Access
Welding & fabrication · Standalone range estimator
$7,527 – $11,069
"Multi-storey / commercial scaffold"
Full span: $468 – $31,038
Tierline Retaining Walls
Tiling · Guided estimator (wizard)
$8,560 – $13,570
"Full boundary or sloped-block wall"
Full span: $332 – $100,508
Voltline Electrical Co.
Electrician · Standalone range estimator
$11,186 – $18,416
"Whole-home solar + battery"
Full span: $287 – $78,982
Waterline Bathrooms & Renovations
HVAC / heating & cooling · Standalone range estimator
$34,899 – $53,200
"Premium / structural renovation"
Full span: $5,330 – $82,031

Phase B: a live in-browser try-it lets you change inputs and see the range update, using the same estimate.ts engine the demo runs. The numbers above already use that engine — the Phase B add is the interactive form.

7. Bespoke calcs (the outlier)

Not every calculator fits the shared engine. The solar payback calc is its own model — STC discount, postcode-zone yield, self-consumption — and ships as an embeddable web component (<solar-calculator>). It's themed via --sc-* CSS variables, so any host site (hardy is the live example) can drop it in and brand it. The explainer treats bespoke calcs as a distinct class with their own embed + data sources.