TAKEOFF METRIC

General · G

Methodology

How a sheet gets built, checked and issued. Short version: the formula is code, the code is tested, the assumptions are printed, and nothing ships that we cannot show our work on.

1. The formula is a tested function

Each calculator is a pure TypeScript function with no interface attached to it. It takes typed inputs in SI units, returns a structured result, and has a test file next to it. The tests cover known worked examples, zero, negative and empty input, very large and very small values, decimals, both unit systems, conversion round trips, invalid text and the edges of every allowed range. A calculator that does not pass its tests does not build.

2. The assumptions are on the page, not in the code

Every result carries the list of assumptions that produced it: the waste allowance, the bag yield used, the truck capacity, the unit weight, the rounding increment. They are printed under the takeoff and included in the CSV export. If a number surprises you, the reason is on the same screen.

3. Sources are documents, not vibes

Reference values, bag yields, unit weights, densities, standard practice, are taken from documents published by the organizations that produce them: federal agencies such as the FHWA and NIST, industry bodies such as NRMCA, CRSI, the American Wood Council, the Concrete Masonry & Hardscapes Association and the Asphalt Institute, university extension services, equipment handbooks, and manufacturers' and suppliers' data for their own products. The title block counts them and the page lists them with what each one was used for. Where a deep link is not stable we link the organization rather than invent a URL.

4. Practice is labelled as practice

Tables like "common slab thickness" describe what is ordinarily done in US residential construction. They are not code, they are not engineering, and they are labelled that way every time they appear. Your building department, your engineer and your drawings outrank anything on this site.

5. Sheets are versioned

Each calculator has a formula revision number and a revision date in its title block. The revision changes whenever the math or an assumption changes, not when a typo is fixed. Changes that alter a published result are listed on the corrections page.

6. Nothing is published before it works

The tool registry marks each sheet live, draft or planned. Only live sheets appear in the sitemap and only live sheets can be linked from a workflow rail, so a sheet that is still being drawn cannot leak into search results or produce a dead link. Planned sheets are listed, greyed, and not clickable.

7. The answer is on the page before any script runs

Every calculator is rendered on the server with its default inputs: the form, the result, the takeoff table and both drawings are real HTML before any script runs, so the worked example reads without JavaScript. Recalculating with your own numbers needs it; with JavaScript off, the sheet says so instead of offering a button that cannot work.

8. What we do not do

  • We do not publish national average prices. Prices are local and dated; the calculators take yours.
  • We do not generate pages in bulk. Each sheet is written by hand for a job somebody actually does.
  • We do not attribute content to engineers, inspectors or credentials we do not have.
  • We do not load advertising, fonts from someone else's server, or any third-party script but Google Analytics, which counts visits and never receives what you type into a sheet (privacy).

9. The calculators in an MCP client

takeoffmetric-mcp is a Model Context Protocol server that runs on your machine over stdio. Version 0.1.2 needs Node.js 20 or later and starts with npx -y takeoffmetric-mcp. It exposes 17 tools: 15 calculators, one that lists them, and a search over a table of 148 estimating constants in which every row names its published source. It makes no network request and holds no price data.

The package carries a copy of the calculation engine dated 30 September 2026, and every result states its formula revision and revision date. A sheet revised since then can answer differently; the sheet on this site is the current one. Server code is MIT, the bundled engine runs only as part of the package, and the constants compilation is CC BY 4.0. Package on npm, source on GitHub.