The engine
The stair and roof maths runs in one engine, tested with 353 cases, 91 of them against published worked examples: carpentry references, code commentary, trade schools and stair-maker guides. A failing case stops a release.
This site against the app
The calculators on this site are a port of the same engine to JavaScript. Every change runs them against 2079 stairs across 11 rule sets and 318 roof and birdsmouth cases computed by the app's own engine: every number must match to a billionth and every rule must reach the same verdict.
Published values
Values from published examples that the calculators on this page reproduce:
| Source | What | Published | This site | Result |
|---|---|---|---|---|
| swansontoolco.com | Pitch in degrees | 9.4623 | 9.4623 | ✓ within tolerance |
| swansontoolco.com | Pitch in degrees | 14.0362 | 14.0362 | ✓ within tolerance |
| swansontoolco.com | Pitch in degrees | 18.4349 | 18.4349 | ✓ within tolerance |
| swansontoolco.com | Pitch in degrees | 22.6199 | 22.6199 | ✓ within tolerance |
| swansontoolco.com | Pitch in degrees | 26.5651 | 26.5651 | ✓ within tolerance |
| en.wikipedia.org | Rafter per 12 of run | 14.4222 | 14.4222 | ✓ within tolerance |
| en.wikipedia.org | Rafter per 12 of run | 16.9706 | 16.9706 | ✓ within tolerance |
| en.wikipedia.org | Rafter per 12 of run | 19.2094 | 19.2094 | ✓ within tolerance |
| en.wikipedia.org | Rafter per 12 of run | 21.6333 | 21.6333 | ✓ within tolerance |
| swansontoolco.com | Rafter per 12 of run | 12.6491 | 12.6491 | ✓ within tolerance |
| swansontoolco.com | Slope factor | 1.0541 | 1.0541 | ✓ within tolerance |
| swansontoolco.com | Common rafter | 8.4327 | 8.4327 | ✓ within tolerance |
| swansontoolco.com | Common rafter | 10.5409 | 10.5409 | ✓ within tolerance |
| swansontoolco.com | Common rafter | 12.6491 | 12.6491 | ✓ within tolerance |
| swansontoolco.com | Common rafter | 14.7573 | 14.7573 | ✓ within tolerance |
| swansontoolco.com | Common rafter | 16.8655 | 16.8655 | ✓ within tolerance |
| swansontoolco.com | Common rafter | 18.9737 | 18.9737 | ✓ within tolerance |
| swansontoolco.com | Common rafter | 21.0819 | 21.0819 | ✓ within tolerance |
| www.maine.gov | Common rafter | 78 | 78 | ✓ within tolerance |
| inspectapedia.com | Common rafter | 197.7 | 197.7 | ✓ within tolerance |
| inspectapedia.com | Common rafter | 16.225 | 16.225 | ✓ within tolerance |
| inspectapedia.com | Common rafter | 10.4193 | 10.4193 | ✓ within tolerance |
| www.jlconline.com | Fewest risers | 14 | 14 | ✓ within tolerance |
| www.jlconline.com | Riser height | 7.8846 | 7.8846 | ✓ within tolerance |
| www.jlconline.com | Riser height | 7.3214 | 7.3214 | ✓ within tolerance |
| www.jlconline.com | Riser height | 6.8333 | 6.8333 | ✓ within tolerance |
| www.jlconline.com | Riser height | 6.4063 | 6.4063 | ✓ within tolerance |
| www.jlconline.com | Stair angle | 33.6471 | 33.6471 | ✓ within tolerance |
| www.jlconline.com | Step along the stringer | 13.2138 | 13.2138 | ✓ within tolerance |
| www.jlconline.com | Total run | 143 | 143 | ✓ within tolerance |
| www.jlconline.com | Nosing line | 171.8 | 171.8 | ✓ within tolerance |
| www.firgelliauto.com | Stringer length | 120.4 | 120.4 | ✓ within tolerance |
| www.isb.bayern.de | Riser height | 17.8 | 17.8 | ✓ within tolerance |
| www.isb.bayern.de | Going from the step rule | 27.4 | 27.4 | ✓ within tolerance |
| www.isb.bayern.de | Total run | 383.6 | 383.6 | ✓ within tolerance |
| www.isb.bayern.de | Riser height | 19.0714 | 19.0714 | ✓ within tolerance |
| www.isb.bayern.de | Total run | 325 | 325 | ✓ within tolerance |
The rule sets
The stair calculator offers each country's home rule set. Numbers from trade summaries rather than the official text are labelled.
| Country | Rule set | Rules | Numbers checked | Note |
|---|---|---|---|---|
| United States | IRC 2021 · one- and two-family dwellings | 11 | 2026-11-01 | |
| Canada | NBC 2020 · private stairs | 11 | 2026-11-01 | |
| England | Approved Document K 2013 · private stair | 11 | 2026-11-01 | |
| England | Approved Document K 2013 · loft conversion | 11 | 2026-11-01 | |
| Germany | DIN 18065:2020-08 · home, main stair | 9 | 2026-11-01 | Secondary source |
| France | Arrêté du 24 décembre 2015 · inside a home | 6 | 2026-11-01 | |
| Netherlands | Bbl · new home | 7 | 2026-11-01 | |
| Spain | CTE DB SUA 2022 · restricted use (inside a home) | 6 | 2026-11-01 | |
| Italy | DM 236/1989 · private stair | 4 | 2026-11-01 | Secondary source |
| Australia | NCC 2022 · housing | 13 | 2026-11-01 | |
| Türkiye | PAİY 2017 · inside a home, no lift | 7 | 2026-11-01 |
Sources
- swansontoolco.com
- swansontoolco.com
- swansontoolco.com
- swansontoolco.com
- swansontoolco.com
- en.wikipedia.org
- www.maine.gov
- inspectapedia.com
- www.jlconline.com
- www.firgelliauto.com
- www.isb.bayern.de
Results are design aids. Check the current rules with your local building authority before you build.
Checked against the sources on November 2, 2026.