Control what rides alongside the agreement

Per-estimate switches for the material around the contract — the price recap, the plans block, the Print/Save PDF button — while the clauses themselves stay under the template's control.

What it is

The portal funnel registry defines three contract-stage sections: contract:estimateRecap, contract:plans (which only appears when plans exist) and contract:download. They live in the same sections_enabled map as the estimate page's toggles, with org defaults and per-estimate overrides merged for the customer.

Also called: what they see · portal toggles · hide the price recap · customer portal settings

See it
Control what rides alongside the agreement
Prepared for
Marlin Hoover
1140 Ridge Line Rd · Fair Play
Shell package$29,537
Concrete & site$8,575
Doors & windows$5,717
Trim & finish$3,811
Total
$47,640
Signature
The 'What They See' settings stage list with the Contract stage expanded showing its three toggles and their hints. lib/portalFunnel.ts CONTRACT_SECTIONS. Sample data — no customer information appears here.
How it works
  1. 1Org defaults live in portal_defaults.sections_enabled; per-estimate overrides in estimate_portal_overrides.sections_enabled.
  2. 2The customer page reads the merged map and treats anything not explicitly false as on, so an unconfigured estimate looks exactly as it did.
  3. 3Stage 2-4 keys are namespaced ('contract:') so a section id can never collide across surfaces.
  4. 4Rows can declare what they `needs`, so the plans toggle is hidden for an estimate with no plans.
Why we built it

The registry draws a deliberate line: 'The agreement's CLAUSES come from the contract template, not from toggles — editing legal text with a checkbox would be a trap. What is genuinely per-customer is the material that rides ALONGSIDE the agreement.' The broader change is : the builder 'must be able to add or remove things from ANY of them, at ANY time — including days after the estimate went out.'

The problem
  • One fixed customer-facing layout for every job
  • No way to adjust the customer's view after sending
  • Toggles offered for content an estimate doesn't have
Sound familiar?
What you get
Per-estimate control without touching legal text
Changes apply after the estimate has gone out
Controls never appear for content that doesn't exist

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →