Projects · Plan & Estimating

/projects/:id owner

The Plan tab turns a project into a priced, professional estimate. You start from a reusable blueprint (a structured scope of works), type in a few measurements, and the plan prices itself — labour and materials, line by line — from parametric formulas and your service catalogue. From there you offer good/better/best options and allowances, keep versions as the scope changes, turn it into a client quote they can e-sign, pull a material list for purchasing, and raise change orders. This is the estimating engine — built on Blueprints (#242).

Where: open a project (/projects/:id) → the Plan tab. It's owner-only. The reusable templates it draws on live in the Blueprint Library; there's also a public project-plan estimator for quick ballpark figures.

A project's Plan tab — the estimating engine
The project Plan tab — import a blueprint, enter measurements, and the estimate prices itself.

How it fits together

Three things work in concert — get the model and the rest is easy:

Step by step: build an estimate

  1. Start the plan. On the Plan tab click Import a blueprint and pick one from your library (or a starter). The blueprint's scope and measurement fields load in. (You can also build a plan from scratch and Save as blueprint later.)
  2. Enter the measurements. In Project measurements, type the numbers the blueprint asks for — e.g. Floor area (m²), Wall area (m²), Electrical points. These are the inputs the formulas read.
  3. Watch it price itself. Each task's quantity comes from its formula (e.g. = floor_area * 1.1 for a 10% waste factor), and its price comes from the linked service / product (labour rate + material cost + margin). The Subtotal updates live.
  4. Adjust the scope. Add or remove sections and tasks, tweak quantities, units, costs or margins on any line — see the plan tree below.
  5. Offer options & allowances where the client has a choice or the price isn't final yet (below).
  6. Save a version to lock in the current state before you send or change it.
  7. Turn it into a deliverable — create the quote, generate the material list, or raise a change order.

Project measurements (the parametric inputs)

What it is — the named numbers that drive the estimate — each has a key (used in formulas), a label and a unit. Why it matters — this is what makes the estimate parametric: change one measurement and every formula that references it recalculates, so re-pricing a slightly bigger room is one number, not a rebuild. The note on screen says it plainly: “these drive the parametric formulas.”

The plan tree — sections, tasks & line pricing

What it is — the scope of works as a tree of sections (headings) and tasks (the priced lines). Why it matters — it's both the estimate's maths and the document the client reads. Each task carries:

FieldWhat it does
Label · Unit · QuantityWhat the line is, its unit of measure, and how many — the quantity comes from the line's formula (referencing measurement keys) or a typed-in number.
Line kindLabour, Materials, or Both — what the line represents.
Service / ProductThe catalogue link that supplies the rate — a labour rate and/or a material cost.
Margin %Your mark-up on the line; with cost + margin it yields the unit price and line total.

A line can be sourced as manual, from a template (the blueprint), or AI-drafted. Refresh pricing re-applies your current service-catalogue rates across the whole plan in one click (“Re-applied current service-catalog rates”) — so a rate change in your catalogue can be pulled into an open estimate without redoing lines.

Add premade sections. Beyond adding tasks one by one, you can drop in a whole section from the library — a reusable block like “Demolition & prep” or “Electrical first-fix” brings its tasks, formulas and rates with it. See the section library on the Blueprints page.

Options (good / better / best) & allowances

What it is — two ways to handle choice and uncertainty in a quote. Why it matters — clients rarely want a single take-it-or-leave-it number; options sell up, and allowances let you quote honestly before a selection is final.

Versions & revisions

What it is — a snapshot history of the plan. Why it matters — estimates change — a client trims scope, a price moves — and you need a record of what was quoted when. Save version stores a full snapshot (the measurements, the lines and the subtotal) with an optional note, and bumps the plan's version number; the version history lets you see and compare earlier states. This is the revisions / audit backbone behind change orders.

Turning the plan into deliverables

ActionWhat it produces
Create quoteGenerates a client quote from the plan (linked back to it). The customer opens the public quote, reviews it, and can approve & e-sign it — see below.
Generate material listPulls the plan's material lines into a material list / budget as purchase items, so what you priced is what you buy.
Create change orderRaises a change order from the plan to capture an agreed change in scope/price after the original was accepted.
Save as blueprintSaves this plan back to the Blueprint Library as a reusable template (“reuse it on your next project”).

The plan moves through statuses as it goes: draft → finalized → quoted → approved → archived.

Approval & e-sign (with audit trail)

What it is — when a plan becomes a quote, the customer-facing public quote page lets them accept and electronically sign it. Why it matters — you get a recorded, timestamped acceptance instead of a “yes” in an email. The acceptance is captured with an audit trail (who accepted, when), and the quote shows as Accepted. See Quotes · Build & send and Public & Shared Pages for the customer side.

Quick start: Plan tab → Import a blueprint (e.g. a bathroom reno) → type the floor/wall areas → the estimate prices itself → add a good/better/best fixtures option and a tile allowance → Save versionCreate quote and send it for e-sign → once approved, Generate material list for purchasing.