Skip to content

How we build and test our calculators

Formulas

Each calculator uses standard geometry — area, volume, the Pythagorean theorem — and simple conversions such as 27 cubic feet per cubic yard. The formula is written out in words and in math on every calculator page, with a worked example.

The worked example isn’t typed in by hand. It’s produced by running the calculator itself when the site is built, so the page and the calculator can’t disagree.

Default numbers

Some numbers aren’t math: how much a bag of concrete yields, how far a gallon of paint covers, how deep to spread mulch, the maximum height of a stair riser. For these:

  • Every default links to its source — a manufacturer’s data sheet, a building code or a university extension service — in the Sources section of the page.
  • Every default can be changed. If your bag, can or local code says something different, enter that.
  • When sources disagree, we pick a conservative default and say so.

Testing

Before a calculator goes live:

  • Known answers. Each calculator has a set of test cases worked out by hand — for example, a 10 × 10 ft slab 4 inches thick with 10% waste is 1.36 cubic yards, or 62 bags of 80-lb mix. The calculator must match every one.
  • Sanity checks. Results must never be negative; doubling an area must double the materials; whole items like bags are always rounded up; the same size entered in feet or meters must give the same answer.
  • Input parsing. Lengths like 10' 6", 10 1/2 and 3.2 m are tested to read correctly.
  • In the browser. Automated tests type real inputs on phone and desktop screen sizes, check the result, and test sharing, saving and keyboard-only use.

Any change to a formula has to pass all of these again.

Reviews

Each page shows the date it was last reviewed. Every page is re-checked against its sources at least once a year, and sooner if a source changes or someone reports a problem.

Found a mistake?

Email hello@enoughmath.com with the page and the numbers you entered. We’ll check it against the sources and fix it.

Last updated .