Construction

Describe the building.
It measures it, then prices what it measured.

Most estimating software asks you to type quantities. This asks you to describe the building — type, count, levels, unit mix, what is on each floor — then measures the shell and the units and prices the measurement.

Single-family through mid-rise, mixed use, and the support structures that carry cost but no dwellings.

Measured-quantity kinds
82
IBC construction types
9
CSI code rows
8,996

01 — Model & takeoff

Type and size in, whole build out.

An estimate is built out of assets — buildings and site scopes — each with its own unit mix, floors, spaces, openings and takeoff. The shell is measured once; everything inside is measured per unit type, so a fourplex is not four copies of a duplex.

  • Eight building types with real defaults for unit count and storeys
  • The IBC construction type is never guessed — unset stays unset, and an unknown value refuses the whole save
  • It is snapshotted onto every cost line at creation, so historical costs stay comparable after the asset is edited
  • Site work and off-site are their own scopes, with their own earthwork quantities
  • Spatial Design lays out levels and placements before an estimate exists — and needs neither a project nor an estimate to do it
  • No total is ever stored: gross area, unit count and efficiency are produced on read, so a second number can never disagree with the first

The building vocabulary

Building types
8
IBC construction types
9 · I-A → V-B
Quantity kinds
82
Scale classes
4
Line scopes
4
Engine, pure
26 modules

02 — Lines & measurements

Every line can ride a named measurement. Change the building and it follows.

One registry of measured-quantity kinds is the single list every surface reads — counts, building and unit areas, spaces, openings, trim, takeoff, on-site and off-site earthwork, partitions, fixtures, lighting. Each kind declares which scope owns it, its unit, and the class that decides how it scales across buildings and units.

  • A cost line pointing at a measurement moves with the model — unless you typed the number yourself, in which case your number wins
  • Every quantity answers one question: is this an assumption or a takeoff? There are deliberately no tiers — a ratio you tuned is still an assumption
  • Pure arithmetic over typed geometry is never marked as an assumption. Marking a real measurement as a guess is the worst failure mode here.
  • A mixed total is an assumption if any contributing part is on a default — the opposite policy would launder a mostly-assumed total as measured
  • Undo remembers what you did, not what the software worked out
  • A new quantity kind cannot ship without an explicit provenance decision — the test refuses it

Provenance

Provenance classes
4
The question asked
one boolean
Typed override
is the measurement
Mixed aggregate
assumed if any part is

03 — Cost library

A price is kept with the city, the date, the source and how much you trust it.

Every cost line that graduates out of an estimate or a vendor bid becomes a library observation — a price with the facts that make it comparable later. You start with seeded takeoffs, assemblies, a reference cost database and published rates, and every one of them is built to be replaced by yours.

  • Two dates, not one: the date the price was good for, and the date it entered the system
  • Six source types, from manual through vendor quote to historical actual, plus a label and notes
  • A luxury door never averages with a builder door; a supply-only price never averages with an installed one
  • The context is snapshotted at capture — GSF, NSF, units, building count — so the number stays readable years later
  • Observations link back to the bid line and invitation they came from, and to the estimate they were first seen in
  • AI enrichment fills blanks only and can never overwrite a human edit; the row stays unreviewed until an estimator accepts it
How the AI is fenced in →

What a price carries

Source types
6
Grade tiers
4
Cost compositions
3
UniFormat II groups
15
CSI levels
3
CSI code rows shipped
8,996

04 — Market benchmark

Where one line sits among its real peers.

For a single observation, the median of its like-for-like peer group, and how far above or below the line sits. The segmentation is the whole point: grouping by CSI code would blend unrelated scopes that happen to share a division, so three different electrical lines aren't treated as a market.

  • Peers are matched on the canonical item, not the code — plus grade tier, cost composition, asset kind and construction type
  • Same unit only. It never forces $/GSF and never averages across units
  • An unclassified line gets no number — it refuses rather than guessing
  • Only shared rows feed the market; a draft can read it without contributing to it
The best predictor of your cost is your own numbers. The next estimate reaches for your history first.

Segmentation the code won't blend

Canonical item
not the CSI code
Grade tier
enforced
Composition
enforced
Unit
must match
Asset kind · type
never MF with SFH

05 — Bids, pursuits & trades

The work either side of the estimate.

01PursuitsA checklist engine that carries a lead from intake to a Gate decision. The project is born at the Gate 1 approval — and that decision is its own permission, distinct from running the checklist.gate decision
own verb
templates configurable
02Bid managementBid packages built from an estimate's scope, vendors invited, their lines taken, and an award. Entered bid lines graduate into the cost library as vendor-quote observations, linked back to the invitation.own feature set
fail-closed permissions
unique per bid line
03AssembliesReusable groups of cost lines, company-wide, dropped into an estimate as a unit — and they re-measure where they land.company-wide
re-measured
04TradesIts own side of the app for work you perform yourself: framing estimates with lines, assemblies, openings and reusable detail templates. Its own permission space, so a trade contractor can own it without the GC line.framing
own feature set
own key space
05DocumentsUpload, version, rename, soft-delete and restore, with a folder tree rendered from attributes. Restore needs the same right as delete — you cannot un-delete what you were not allowed to delete.platform module
versioned
signed links

Bring a job you've already bid.
We'll run it through in front of you.