Stair Calculator
Enter the total rise and this tool divides it into equal risers under the common IRC maximum, then reports the exact riser height (snapped to the nearest 1/16 in for the tape), total run, stringer length, and stair angle — with the geometry checked against widely adopted code figures.
Total rise and layout options
Example: a 105 in rise → 14 risers at 7 1/2" over a 130 in run.
Quantity and geometry estimates only — this tool determines no structural adequacy, code compliance, or engineering. Stringer sizing, guards, handrails, and headroom need a licensed professional; verify dimensions and local code before you cut.
How the layout is computed
The riser count is the smallest number of equal risers that keeps each one at or under the
limit: ⌈rise ÷ max riser⌉. The worked flight: a 105 in rise ÷ the common
7.75 in maximum is 13.5484, which rounds up to 14 risers, and 105 ÷ 14 puts each at exactly 7.5 in (7 1/2"). A flight always has one fewer tread than risers, so 13
treads at 10 in give a total run of 130 in (10.83 ft). The stringer hypotenuse is √(rise² + run²) = 167.11 in and the flight climbs at 38.9°.
When the exact riser height does not land on a tape-measure sixteenth, the tool shows the nearest 1/16 and says so — the small remainder is absorbed across the flight the same way carpenters split an odd sixteenth during layout. The worked flight happens to land on the grid; most of the flights further down this page do not, and the examples show what the remainder amounts to.
The guide Stair layout and the common IRC figures walks this arithmetic through its own worked flights, including a metric entry and the feet-versus-feet-point-inches misreading, and explains what the flags below do and do not mean. Read it for the reasoning behind each step; the rest of this page explains what this calculator does with the numbers you give it, how to read what comes back, and where its model stops.
Where this tool sits in the estimation pipeline
Every estimator on this site follows the five-stage pipeline documented on the methodology page: geometry, then coverage, then waste, then package rounding, then a user-priced cost. The stair calculator is one of the four trade-geometry tools, and it runs the geometry stage only. It divides by no bag yield or box coverage, applies no waste percentage, rounds nothing up to a package, and prices nothing — there is no price field on the form, and no material is counted. What it returns are counts, lengths, and an angle: the riser count, the riser height, the tread count, the total run, the stringer length, and the slope of the flight. Converting those into lumber is a separate step on the board foot calculator, where the piece count and sizes are yours to enter.
Rounding happens in exactly two places, and neither is the package round-up the material tools use. The riser count is a ceiling — a fraction of a riser cannot be built, and rounding to the nearest whole number could produce a riser taller than the limit — and the engine guards that ceiling against floating-point noise so an exact division never gains a phantom riser. The riser height is then snapped to the nearest sixteenth for display only: the exact decimal is computed at full precision and printed beside the fraction; the run, stringer, and angle are computed from the total rise and the tread run, so the snapped fraction feeds nothing downstream. Every other figure is full-precision arithmetic rounded only when it is shown, as the methodology page states for the whole site.
A boundary that applies to every line of this page: the tool computes geometry and quantities only. It sizes no stringer, determines no code compliance, and rules on no structure. Stringer sizing, attachment, guards, handrails, landings, and headroom need a licensed professional and a local permit review.
Why each input matters
Total rise is the one measurement everything else follows from, and it is the only required field. In imperial mode it enters as decimal feet with an optional inches box beside it; the inches are divided by 12 and added to the feet, then the whole figure is multiplied back out to inches, because the layout runs in inches. The basement flight below was measured as 8 ft 2 in and reaches the engine as 98 in. In metric mode the rise enters in metres and is divided by the exact 0.3048 m per foot before the same multiplication. The engine accepts a rise up to 360 in (30 ft) and rejects anything larger with a message naming the limit.
Maximum riser is the divisor in the riser-count ceiling, so it decides how many risers the flight gets. Left blank, it is the commonly adopted IRC figure of 7.75 in; enter your jurisdiction's figure and the count is computed from that instead. Lowering it can add a riser; raising it can remove one. Each riser added or removed changes every downstream figure, because the tread count, run, stringer, and angle all follow from the count. The option is capped at 24 in.
Tread run does not touch the riser count at all. It multiplies the tread count to give the total run — the floor space the flight occupies — and through the run it sets the stringer length and the angle. Left blank, it is the commonly adopted IRC minimum of 10 in. A deeper tread makes a longer, shallower flight with the same risers; the deck flight below uses 10.5 in. The option is capped at 36 in.
Upper finish-floor thickness exists for one situation: you measured to the subfloor because the finish floor is not down yet. The tool adds the thickness to the rise before dividing, so the top step lands on the finished surface. Entering it when you already measured to the finished floor adds height the opening does not have.
The units toggle changes what the fields expect and which units lead the result panel, not what is computed. Metric entries are converted with exact definitions — 0.3048 m per foot for the rise, 25.4 mm per inch for the options — and the identical inch-based layout runs; the result is then presented back in millimetres and metres with the tape fraction alongside.
The figures this page relies on
This calculator holds no coverage or yield figure: nothing on this page comes from a product data sheet, and the site's materials data contributes no constant to it. What it carries are four commonly adopted code figures and a handful of exact unit definitions.
- Maximum riser height, 7.75 in — the 2018 International Residential Code figure, R311.7.5.1, as quoted in the City of Boise IRC Code Handout #437 and on ICC Digital Codes. Held by the engine as a commonly adopted convenience figure, not a compliance ruling; the default divisor for the riser count and the figure the riser flag compares against. Adjustable in the form.
- Minimum tread depth, 10 in — R311.7.5.2, same sources and same status. The default tread run and the figure the tread flag compares against. Adjustable in the form.
- Riser variation within a flight, 0.375 in — also R311.7.5.1. Informational: the equal-riser layout addresses it by construction, and the tool never tests it.
- Minimum headroom, 80 in — R311.7.2. Informational: the tool cannot see what is above the flight, so headroom is a site measurement along the whole run.
- The sixteenth grid, 1/16 in — the engine's exact-fraction grid, and the grid the riser height is snapped to for display.
- Inches per foot, 12; metres per foot, 0.3048; millimetres per inch, 25.4 — exact definitions, used only to convert what you type into the engine's inches and to present metric results.
- Engine ceilings — 360 in of rise, a 24 in maximum riser, a 36 in tread — practical limits the engine enforces, which also catch the larger unit slips; they are not code figures.
The common IRC figures this tool checks
| Rule | Common IRC figure | Section |
|---|---|---|
| Maximum riser height | 7.75 in (196 mm) | R311.7.5.1 |
| Minimum tread depth | 10 in (254 mm) | R311.7.5.2 |
| Riser variation within a flight | ≤ 0.375 in (3/8 in) | R311.7.5.1 |
| Minimum headroom | 80 in (6 ft 8 in) | R311.7.2 |
These are common IRC values — local codes vary. They come from the 2018 International Residential Code as published by the ICC and quoted verbatim in municipal handouts; jurisdictions amend riser and tread limits regularly, so treat the flags as a heads-up, never as approval. The equal-riser layout this tool produces addresses the variation rule by construction, and headroom must be checked on site against the 6 ft 8 in figure along the entire flight.
Worked examples
Every figure in this table was produced at build time by the same engine that runs the form above; if an input stopped producing the result the text describes, the page would fail to build. The inputs are chosen to show different behaviours of the layout. The metric row was entered as metres and millimetres and converted exactly before the engine ran, which is what the toggle does. The two flag columns are the result panel's comparisons against 7.75 in and 10 in.
| Flight | Inputs | Risers | Riser (exact) | Riser (tape) | Run | Stringer | Angle | Riser flag | Tread flag |
|---|---|---|---|---|---|---|---|---|---|
| Worked flight | 105 in rise, defaults | 14 | 7.5 in | 7 1/2" | 130 in | 167.11 in | 38.9° | within | within |
| Basement | 8 ft 2 in rise, defaults | 13 | 7.5385 in | 7 9/16" (rounded) | 120 in | 154.93 in | 39.2° | within | within |
| Deck | 3 ft 4 in rise, 10.5 in tread | 6 | 6.6667 in | 6 11/16" (rounded) | 52.5 in | 66 in | 37.3° | within | within |
| Subfloor | 108 in to subfloor + 0.5 in finish floor | 14 | 7.75 in | 7 3/4" | 130 in | 169.33 in | 39.8° | within | within |
| Lower maximum | 8 ft 2 in rise, 7 in max riser | 14 | 7 in | 7" | 130 in | 162.8 in | 37° | within | within |
| Overrides | 54 in rise, 8.25 in max riser, 9 in tread | 7 | 7.7143 in | 7 11/16" (rounded) | 54 in | 76.37 in | 45° | within | UNDER |
| Taller, same overrides | 64 in rise, 8.25 in max riser, 9 in tread | 8 | 8 in | 8" | 63 in | 89.81 in | 45.5° | OVER | UNDER |
| Metric | 2.55 m rise, 260 mm tread | 13 | 7.7226 in | 7 3/4" (rounded) | 122.83 in | 158.64 in | 39.3° | within | within |
The basement flight. A rise measured as 8 ft 2 in enters as 98 in. Divided by 7.75 that is 12.6452, so the count rounds up to 13 risers at exactly 7.5385 in — a figure with no mark on a tape. The nearest sixteenth is 7 9/16", and the result says so. The remainder is small per riser and not small per flight: marking all 13 risers at 7 9/16" would land the top of the flight 5/16" (0.3125 in) above the upper floor. 12 treads at 10 in give a 120 in run, a 154.93 in stringer, and a 39.2° flight.
The deck flight. 3 ft 4 in of rise is 40 in; the tread run is entered as 10.5 in. The count is 6 risers at 6.6667 in (6 11/16" on the tape, rounded), and because the tread option never touches the count, the only effect of the deeper tread is on the run: 5 treads × 10.5 = 52.5 in rather than the 50 in the default would give. The stringer is 66 in and the angle 37.3°. The tread flag reads within because 10.5 is at or over the common minimum.
The subfloor measurement. The tape reads 108 in to the upper subfloor and the finish floor will add 0.5 in, so the effective rise is 108.5 in. That divides by 7.75 exactly — 14 — and the engine's guarded ceiling returns 14 risers at 7.75 in (7 3/4"), on the limit, with nothing to round. Leave the thickness out and the same count comes back at 7.7143 in (7 11/16"), which looks almost identical — but a flight built to that layout reaches 108 in, and the last step up to the finished floor would be 8.2143 in: 0.5 in taller than every other riser, which is more than the 0.375 in variation figure the engine carries. The thickness field is how that step disappears.
The basement flight under a 7 in maximum. Enter 7 in the max riser field and the same 98 in rise needs 14 risers instead of 13: 98 ÷ 7 = 14, and each riser is 7 in (7"). One more riser is one more tread, so the run grows by one tread run, from 120 to 130 in, the stringer from 154.93 to 162.8 in, and the angle eases from 39.2° to 37°. The flag still compares the result against 7.75 in, so it reads within; which figure governs is a question for your building department.
Options past the common figures. A 54 in rise with an 8.25 in maximum riser and a 9 in tread lays out as 7 risers at 7.7143 in (7 11/16", rounded) over a 54 in run — rise and run are equal here, so the angle is 45°. Read the two flags separately. The riser flag reads within, even though the maximum entered is above the common figure, because the flag compares the riser the layout produced, not the option you typed, and 7.7143 is under 7.75. The tread flag reads UNDER, because 9 in is below the common minimum of 10. Raise the rise to 64 in under the same options and the count becomes 8 at 8 in (8") — now the riser flag turns to OVER, over a 63 in run at 45.5°. The tool never blocks an entry for exceeding the common figures; it reports the comparison and lays out what you asked for.
The metric flight. In metric mode, a 2.55 m rise reaches the engine as 100.3937 in and a 260 mm tread as 10.2362 in. The layout is 13 risers at 7.7226 in, which the panel leads with as 196.2 mm, with 7 3/4" as the tape fraction. Notice what the rounding did: the nearest sixteenth is 7 3/4", the common maximum itself, while the exact riser is under it — and the flag reads within because it compares the exact figure, not the snapped one. The run is 12 × 260 mm = 3.12 m, the stringer 4.0295 m, and the angle 39.3°. The toggle changed the units on the way in and the way out; the arithmetic in between was the same inch-based layout as every other row.
How to read the result
The headline line is the layout: N risers at a tape fraction, followed in brackets by the exact decimal — either (x.xxxx in exact) when the division landed on a sixteenth, or (nearest 1/16 — exact x.xxxx in) when it did not. Lay out from the exact figure; the fraction is for reading the tape. The Treads line states the tread count with the tread run in use and gives the total run in inches and feet — the floor space the flight needs, which is the number to check against the opening before anything else. Stringer length is the hypotenuse from the first rise to the last, in inches and feet; it is geometry, not a stock length. Stair angle is the slope of the same triangle. The last two lines are the flags: the riser compared against the common IRC maximum and the tread against the common minimum, worded as within the common limit, OVER — add a riser, meets the common minimum, or UNDER the common minimum. In metric mode the riser leads in millimetres with the fraction after it, and the run and stringer are in metres. The copy button places a one-line plain-text summary on the clipboard — riser count and height, run, stringer length, and angle, all in inches whichever unit the toggle is on; the tread line and the two flags are not copied.
Printing the layout
With your numbers on screen, the Print this layout button strips the navigation and sidebar so the riser height, run, stringer length, and angle print on one sheet — tape it to the stringer stock. Mark riser and tread with a framing square set to the riser height and tread run, and step it off once per riser. The Feet & Inches Calculator chains the tape-measure additions when you lay out landings.
Common misreadings
Feet are not feet-point-inches. The rise box takes decimal feet, with a separate inches box beside it. Typing 3.4 to mean 3 ft 4 in enters a 40.8 in rise, 0.8 in more than the opening has. On the deck flight the count stays at 6, so nothing looks wrong — but every riser is 6.8 in instead of 6.6667, 0.1333 in taller, and a flight built to it tops out 0.8 in above the deck. Put the inches in the inches box.
Inches typed as feet. This is the stair version of the thickness-in-feet slip on the concrete tools, and the engine's ceiling catches only the large cases. Type the basement flight's 98 in into the feet box and the engine refuses it with "Enter a total rise of at most 360 inches (30 ft)." A smaller rise is not caught. A single 24 in step lays out as 4 risers at 6 in (6") over a 30 in run; typed in the feet box it is 288 in, under the ceiling, and comes back as 38 risers at 7.5789 in over a 370 in run. A riser count that is absurd for the opening is the signal to check the box.
Metric figures in the imperial fields. The metric flight above is a 2.55 m rise. Type 2.55 with the toggle still on Imperial and the engine sees 30.6 in — 4 risers at 7.65 in (7 5/8") over a 30 in run, against the correct 13. The options go the other way: a 260 mm tread typed into the inch box is past the 36 in ceiling and is refused — "Enter a tread run of at most 36 inches." — so a millimetre slip in an option is caught where a metre slip in the rise is not.
Marking the fraction, not the exact height. The tape fraction is the nearest sixteenth, and when the result says it was rounded, the remainder is real. The basement flight shows the size of it: 5/16" over the whole flight. The exact decimal is the figure to lay out from; where the odd sixteenth is absorbed is a layout decision the tool does not make.
Counting treads as risers. A flight has one fewer tread than risers, because the top landing is not a tread. The run is tread count × tread run, so a flight planned as "14 steps" with 14 treads would be one tread run longer than the 130 in the worked flight needs. The result panel always states both counts.
"Within" is not approval, and the stringer is not a cut list. The flags compare geometry against one commonly adopted figure that your jurisdiction may have amended; a permit reviewer decides. The stringer figure is the hypotenuse from first rise to last — it includes no top or bottom cut and no attachment at the header, and it is not the length of board to buy.
Where the model stops
The engine lays out one straight flight from one total rise, with every riser equal and every tread equal. It does not model landings, turns, winders, or a flight whose run is fixed by the opening rather than by the tread run — if the floor space is the constraint, work the tread field until the run fits, and read the angle. It sizes nothing: no stringer, no attachment, no guard, no handrail, no header. It makes no ruling on building-code compliance, load, bearing, or engineering suitability, and it does not know your jurisdiction's amendments; the riser variation and headroom figures it carries are displayed, never tested. Nosing, tread thickness, and the finish on the lower floor are layout details it does not see — the finish-floor field handles the upper surface only. What it reports is a set of quantities and geometric lengths, computed at full precision and rounded only for display, as the methodology page documents for every tool on the site.
Frequently asked questions
How do I measure the total rise?
Measure vertically from the finished floor at the bottom of the flight to the finished floor at the top, keeping the tape plumb. If the upper finish floor is not installed yet, measure to the subfloor and enter the finish thickness in the optional field so the tool works from the finished surface.
Why does the tool divide the rise into equal risers?
Because uneven steps trip people, model codes limit the riser variation within a flight (commonly 3/8 in between the tallest and shortest). Dividing the total rise by the riser count gives every step an identical height, which is how stringers are laid out in practice.
What are the common code limits for stairs?
The 2018 International Residential Code lists a maximum riser of 7 3/4 inches (R311.7.5.1), a minimum tread depth of 10 inches (R311.7.5.2), and a minimum headroom of 6 ft 8 in (R311.7.2). These are widely adopted values, but states and municipalities amend them — some jurisdictions use 7 in or 8 1/4 in risers — so always confirm with your local building department.
Is the stringer length the board length I should buy?
No — it is the geometric hypotenuse from the first rise to the last. Buy stock longer than the stringer figure so there is material for the top and bottom cuts, the attachment at the header, and layout waste.
Does this tool check code compliance?
No. It flags geometry against commonly adopted IRC figures as a convenience, and it computes no structure at all — stringer sizing, attachment, guards, handrails, landings, and headroom all need a professional and a local permit review.
Can I enter the rise in metres?
Yes. Switch the units toggle to Metric: the rise enters in metres, and the optional maximum riser, tread run, and finish-floor thickness enter in millimetres. The form converts with the exact definitions 1 ft = 0.3048 m and 1 in = 25.4 mm, the engine lays the flight out in inches, and the result leads with millimetres and metres while still showing the tape-measure fraction.
What does "nearest 1/16" on the riser line mean?
The exact riser height is the rise divided by the riser count, and it usually does not land on a sixteenth of an inch. The tool snaps it to the nearest 1/16 for the tape and prints the exact decimal beside it. Marking every riser at the snapped fraction moves the top of the flight by the remainder times the riser count, so the exact figure is the one to lay out from; the note is there so that difference is never hidden.
What do the OVER and UNDER flags mean?
OVER means the computed riser height is above the common IRC maximum of 7.75 in; UNDER means the tread run is below the common IRC minimum of 10 in. With the default options the riser flag cannot read OVER, because the count was chosen to keep every riser at or under the limit — the flags matter when you override the options. They are comparisons against commonly adopted figures, not a ruling: local amendments vary, and a permit reviewer decides.
Related tools: the Board Foot Calculator totals the stringer and tread lumber, the Feet & Inches Calculator handles the fraction arithmetic, and the Construction Unit Converter moves any figure between imperial and metric. For the layout arithmetic step by step and what the IRC flags do and do not mean, read stair layout and the common IRC figures, or browse all guides.
Stair figures are computed locally and never transmitted. Formulas, IRC sources, and the shared pipeline are documented on the methodology page.