Engine · v1

Parameters in. Drawing + bill out.

A parametric quantity take-off engine. Pick an assembly, set its parameters, get a dimensioned drawing alongside a quantified bill — implementing CESMM4, NRM 2, SMM7 or MMHW measurement methodology, with audit trail under every row.

Same parametric model. Same source of truth. Cross-standard concrete totals match by construction — deterministic, reproducible.

§ 01 · The four standards

Separate codifications · not translations of each other
  • MMHW

    OGL v3.0

    Manual of Contract Documents for Highway Works

    Open licence — full BoQ rows free across all tiers

  • CESMM4

    Computed

    Civil Engineering Standard Method of Measurement, 4th ed.

    Computed in-app using the CESMM4 work-classification convention. Users are responsible for licensed access to the published rule set; the engine does not redistribute publisher content.

  • NRM2

    Computed

    RICS New Rules of Measurement 2

    Computed in-app using the NRM2 work-classification convention. Users are responsible for licensed access to the published rule set.

  • SMM7

    Computed

    Standard Method of Measurement, 7th ed.

    Computed in-app using the SMM7 work-classification convention. Users are responsible for licensed access to the published rule set.

Coming soon

US measure-and-pay estimating — FHWA FP-24 + US-customary units

In development: the same parametric civils assemblies rendered to US pay-item measurement, with US-customary units alongside metric. Join the waitlist to hear when it lands.

Join the US waitlist →

§ 02 · Two assembly patterns

  • Pattern

    Composite

    An assembly built from sub-elements: precast manhole = rings + cover slab + base + benching + channel + step-irons + cover & frame. The engine sums per-element quantities and emits one BoQ row per element with the audit trail attached.

  • Pattern

    Strategy

    An assembly with multiple realisations of the same parameter brief: stormwater attenuation tank → crate variant or pipe-array variant. Same input parameters, different geometry, different bill structure. Compare side-by-side from the same brief.

§ 03 · Architectural invariants

What can't drift, by construction
  1. Invariant · 01

    Cross-standard concrete totals must match

    Same parametric assembly, implemented separately for each of the four measurement methodologies. The bill structure follows each methodology's classification logic, but the underlying concrete volume is a function of geometry — not classification. Mismatch is a launch-blocker per spec §15. Property-tested on every assembly.

  2. Invariant · 02

    Rates never live in assemblies or standards

    The engine produces quantities and drawings. You provide the rates. Your numbers, your liability, your auditability — there is no hidden default rate library to override.

  3. Invariant · 03

    Adding a new assembly = single file with @register_assembly

    The catalogue is open by construction. No registry-of-registries; no factory hierarchy. New assemblies land as a single Python file, decorated, with property-based parameter-boundary tests.

  4. Invariant · 04

    MCP, REST API, Python stub, CLI all share one service

    Surface parity is enforced by architecture, not by discipline. The same FastAPI service powers every surface — what you see in the workspace, what an agent calls via MCP, and what your pipeline calls via REST are produced by the same code path.

Use the engine

Wire it into your stack.

Web app, REST API, MCP server, Python stub client, CLI — same FastAPI service under all of them. Free MCP tier returns watermarked deliverables; paid tiers return clean exports + project history.