Framing & structure · Stair Rise & Run Calculator with Code Check

How the Stair Rise & Run Calculator with Code Check works

Enter the total rise, and the floor length available if you know it, to see how many risers you need, how high each one is, how far the stair runs across the floor and whether it meets the code limits, before you mark the stringer.

Back to the tool

How this is calculated

A straight stair is a division problem. The total rise is fixed by the building, so the only choice is how many equal risers to split it into. This tool starts with the fewest risers that keep each one within the code maximum, then works out everything else from that count and the tread run you enter.

number of risers = total rise ÷ 7.75 in, rounded up to a whole number riser height = total rise ÷ number of risers (kept exact) number of treads = number of risers − 1 total run = number of treads × tread run (riser face to riser face) mark spacing = √(riser height² + tread run²) (nose to nose along the stringer) mark n = (n − 1) × mark spacing, then rounded to 1/16 in stringer edge = number of treads × mark spacing (mark 1 to the last mark) corner to corner = √(total rise² + total run²) (for buying the board) stair angle = arctan(riser height ÷ tread run)

For a 108 in total rise: 108 ÷ 7.75 = 13.94, so 14 risers. Each is 108 ÷ 14 = 7.7143 in. That leaves 13 treads, and at a 10 in run the total run is 13 × 10 = 130 in. One more riser gives 15 risers of 7.2 in and a total run of 140 in: an easier climb that needs more floor.

Which stair this is

The stair starts on the lower floor and lands against the edge of the upper floor or deck, and the upper floor itself is the last step. That is why there is one tread fewer than there are risers, and it is the layout drawn in the diagram. If you build the other common way, with a full tread set flush with the upper floor at the top of the stringer, the count of risers and their height stay the same but the stair is one tread run longer than this tool shows.

Total run means one thing in this tool: the level distance from the face of the first riser to the face of the top riser, which is the face the stair lands against. It is the number of treads times the tread run, and it tells you where the foot of the stair sits. Nosings do not change it.

If you enter the floor length available, the tool takes it as that total run and the treads share it equally: each tread run is the floor length divided by the number of treads, measured level from one tread nose to the next, as R311.7.5.2 measures tread depth. With a single riser there are no treads, so the floor length is not used. The options table lists the fewest risers and the next six counts; seven rows is how this tool lays the table out, not a code figure. Each row is held only to the riser height, tread depth and one-flight rise limits; the nosing, the upper floor edge, headroom and width are checked in the result for the riser count you choose.

Because the upper floor is the top step, its edge is the last nosing. The code measures tread depth between the front edges of neighbouring treads and applies its nosing rule to floors and landings as well as treads, so this tool counts the edge of the upper floor as part of the stair. If the floor edge projects past the top riser by a different amount from the tread nosings, the top tread is deeper or shallower than the others by the difference and the nosings are unequal by the same amount. That happens both ways round: a flush edge above nosed treads, and an overhanging edge above treads with no nosing. So the form asks about the edge whenever the stair has treads, whatever the nosing. Set to "Same as the treads" there is nothing to measure, so the result records the choice instead of ticking it. Set to "Different", the tool takes no figure for the edge and does not check it: that line reads Not checked and the result stays amber, never a pass.

What the tool assumes when it opens

The form opens on a worked example: a total rise, the minimum tread run and a 1 in nosing. Those are ordinary inputs. Each is checked as it stands and repeated in the "Read as" line under the result, so change any that are not yours; treads with no nosing fail at a run under 11 in, so enter 0 if that is what you have.

The edge of the upper floor is different, because the choice decides whether a rule applies at all. The form opens with neither choice selected, and the result is worked for the common case, an edge that matches the treads, without treating that as your answer. Until you tap one of the two choices, that line is tagged Assumed rather than Pass, the result stays amber, and its heading carries the condition: for example Riser, tread, flight rise and nosing pass, assuming the upper floor edge overhangs like the treads, or, where the treads have no nosing, assuming the upper floor edge has no overhang, like the treads. One tap on the edge you have settles it: a matching edge then shows as your answer and the result turns green; a different edge is not checked, so the result stays amber. A link copied from the page remembers what you chose.

Marking the stringer: never step off a rounded figure

The riser height is rarely an exact sixteenth. The result gives it as an exact decimal, with the nearest 1/16 in beside it for a single measurement only. Every pass or fail is decided on the exact figure: a riser of 7.7708 in reads as 7 3/4 in on a tape and still fails.

The rounded figure must not be stepped off, because the rounding adds up. In the 108 in example the exact riser is 7.7143 in and the nearest tape mark is 7 11/16 in. 14 × 7 11/16 in is only 107 5/8 in, which is 3/8 in short, so stepping it off from the bottom leaves a top riser of 8 1/16 in: over the 7 3/4 in maximum. The result works this out for your own numbers. The spacing of the marks along the stringer has the same problem if a framing square is walked from step to step.

The mark-out table is the method this tool gives instead. Mark n is the top of riser n, on the edge of the board. Its distance from mark 1 along that edge is worked as (n − 1) times the exact spacing and then rounded to 1/16 in once, so no mark is ever more than 1/32 in from where it should be, however long the stair. In the example the last mark is at 164 3/16 in. The table also gives the height of each step above the lower floor, rounded the same way, for checking the stair once it is up.

The table gives the marks for equal finished risers and treads, measured along the edge of the stringer; it does not allow for the thickness of the treads or of the floor finishes, or say how to draw or cut the tread and riser lines at each mark or how to fix the stringer, and you must account for those yourself.

One thing no marking method can fix: if the exact riser is less than 1/16 in under the 7 3/4 in maximum, a mark that is one tape division out puts that riser over. The 108 in example is such a case, with 0.0357 in to spare. The result warns when this happens and shows the layout with one more riser.

Riser heights are between finished surfaces, with carpet, rugs and runners left out, as the code section says.

The two stringer figures

Stringer edge, mark 1 to the last mark, is the number of treads times the mark spacing. It is a line on the stair: the edge of the board between the top of the first riser and the top of the last one. Corner to corner is the straight distance from the foot of the first riser on the lower floor to the last mark. It is steeper than the stair and is not a length you mark or cut. It is given because it is always a little more than the length of board the marked stringer takes up, so choose a stock length above it. Neither figure says what size of board is strong enough.

The code limits

The limits are those of Section R311.7 of the 2021 IRC, paraphrased. The riser height is measured plumb between the front edges of neighbouring treads, and the tread depth is measured level between the front edges of neighbouring treads, which is why this tool calls it the tread run.

RuleLimitSectionIn this tool
Riser height7 3/4 in at mostR311.7.5.1Checked on the exact figure
Tread depth (the tread run)10 in at leastR311.7.5.2Checked
Rise of one flight12 ft 7 in at mostR311.7.3Checked
Nosing projection3/4 in to 1 1/4 in; not required where the tread depth is 11 in or moreR311.7.5.3Checked against the figure in the form, which starts at an example 1 in; never a pass if left blank
Upper floor edge against the tread nosings, and the top tread against the others3/8 in difference at mostR311.7.5.2, R311.7.5.3Not checked. An edge that matches the treads is not measured: it is shown as Assumed until you tap it, then as your answer. A different edge is shown as Not checked and the result stays amber
Headroom6 ft 8 in at leastR311.7.2Checked only if you enter it
Clear width above handrail height36 in at leastR311.7.1Checked only if you enter it
Tallest riser against shortest, deepest tread against shallowest, as built3/8 in difference at mostR311.7.5.1, R311.7.5.2Not checked: depends on the cutting, on the thickness of the treads and floor finishes and on how the stringer is set, which this tool does not cover. The mark-out table only keeps the marks evenly spaced

How this tool reads the rules where the wording leaves room:

  • A blank nosing is never a pass. The result reads "Not fully checked" until you enter the nosing, or 0 for none, whatever the tread run. The 1 in the form starts with is an example value, like the tread run: it is checked as it stands and shown back in the "Read as" line. Enter 0 if your treads have no nosing.
  • Where the tread depth is 11 in or more, the code does not require a nosing. This tool then accepts no nosing, or one shorter than 3/4 in, and still holds a nosing that is entered to the 1 1/4 in maximum.
  • The edge of the upper floor is counted as the last nosing and the upper floor as the top tread, and the question is asked whether or not the treads have a nosing. Until you choose, the result is worked for the common case, an edge that matches the treads, and marks it Assumed. A link that carries any other value for the edge, or for the note of whether you have chosen, is refused with a message, not read as a default.
  • Headroom and width are judged only if you enter them. Left empty, they are listed as not checked and the heading of the result names only the rules that were.
  • The width check is the 36 in clear width above handrail height. The section allows less at and below the handrail; that is not checked.
  • A single riser has no treads, so only the riser height is checked.

Editions

The 2018 and 2024 texts were read alongside the 2021 text. All three give the same figures for every limit in the table. The 2018 edition prints the flight limit as 151 inches rather than 12 feet 7 inches. The 2021 edition adds an opening list of stairs the section does not apply to: those not within or serving a building, porch or deck, and those leading to non-habitable attics or crawl spaces. The 2024 edition moves the whole section to R318.7, lets the nosing exceed 1 1/4 in where the risers are open, and applies the nosing uniformity rule to a flight and the landing at its top. States and cities amend this section: the Oklahoma adoption of the 2024 text read for this tool, for example, adds its own allowance for the top and bottom riser of a flight. The edition and amendments your jurisdiction has adopted are what govern.

What this tool does not cover

  • Winders, spiral stairs, L-shaped and U-shaped stairs, and landings, including the landing a flight over 12 ft 7 in needs.
  • Handrails, guards and balusters, and the opening limit at open risers.
  • The size, grade, spacing, span and fixing of stringers, and how much wood must remain below the notches.
  • Deck-specific rules, footings at the foot of an exterior stair, and stairs in commercial buildings.

The US Navy manual used as a tested example picks its tread run from a rule of thumb, that the riser height and the tread run should add up to 17 1/2 in. That is the manual's guide to a comfortable stair, not a code requirement, and this tool does not apply it.

What this calculator is tested against

This tool cannot be published unless it reproduces every example below. 3 are copied from a published source. 30 were worked by hand from the cited rule.

ExampleExpectedBasis
Deck stair, 36 1/4 in total rise, 10 1/2 in treads5 risers of 7 1/4 in, 4 treads, total run 42 inPublished mycarpentry.com, Building Stairs: how to calculate step rise and run
8 ft 11 in total rise (107 in) with the riser count set to the 15 the manual useseach riser 107/15 in, which the manual calls nearly 7 1/8 inPublished US Navy Builder 3 & 2, Vol. 2, "Stairway layout", page 6-12
The same stair: 15 risers, 10 3/8 in unit run, upper floor as the top tread14 treads, total run 145 1/4 in (12 ft 1 1/4 in)Published US Navy Builder 3 & 2, Vol. 2, "Stairway layout", page 6-13 (view C)
108 in total rise, 10 in treads, 1 in nosing14 risers of 7.7143 in, 13 treads, total run 130 in, 13 × √(7.7143² + 10²) = 164.19 in mark to mark, √(108² + 130²) = 169.01 in corner to corner, 37.65°By hand 2021 IRC R311.7.5.1 (fewest risers = 108 ÷ 7.75, rounded up)
The same stair if 7 11/16 in were stepped off instead of using the table3/8 in short of the total rise, so the top riser would be 8 1/16 in: over the 7 3/4 in maximum and exactly 3/8 in off the rest; the layout itself has only 0.0357 in to spareBy hand 2021 IRC R311.7.5.1 (14 × 7 11/16 = 107 5/8; the top riser takes the missing 3/8)
105 in total rise divides exactly14 risers of exactly 7 1/2 in, 13 treads, total run 136 1/2 inBy hand 2021 IRC R311.7.5.1
45 in total rise, 12 in treads: a 3-4-5 triangle6 risers of 7 1/2 in, total run 60 in, marks 14.151 in apart, 70.75 in mark to mark, exactly 75 in corner to cornerBy hand Arithmetic: 6 risers of 7 1/2 in, 5 treads of 12 in; 5 × √(7.5² + 12²); √(45² + 60²)
108 1/2 in total rise lands exactly on the maximum riser14 risers of exactly 7 3/4 in: at the limit, passes, flagged as having nothing to spareBy hand 2021 IRC R311.7.5.1 (14 × 7 3/4 = 108 1/2)
108 9/16 in total rise, one sixteenth more, forces another riser15 risers of 7.2375 in, 14 treads, total run 140 inBy hand 2021 IRC R311.7.5.1
93 1/4 in total rise forced into 12 riserseach riser is 7.7708 in: it rounds to 7 3/4 in on a tape but is over the limit, fails; 13 risers neededBy hand 2021 IRC R311.7.5.1 (judged on the exact figure, not the rounded fraction)
92 3/4 in total rise in 12 riserseach riser is 7.7292 in: it also rounds to 7 3/4 in, but is under the limit, passesBy hand 2021 IRC R311.7.5.1 (judged on the exact figure, not the rounded fraction)
108 in total rise with 9 1/2 in treadstread under the 10 in minimum, failsBy hand 2021 IRC R311.7.5.2
The tool as it opens: 108 in rise, 1 in nosing, upper floor edge not yet chosenriser, tread, flight rise and nosing pass, on the condition that the floor edge overhangs like the treads: that line is reported as assumed, not as a passBy hand 2021 IRC R311.7.5.2 and R311.7.5.3 (whether the floor edge overhangs is assumed until chosen)
10 in treads with the nosing left blanknot a pass: the nosing is required and has not been enteredBy hand 2021 IRC R311.7.5.3 (a nosing is required under an 11 in tread)
10 in treads with a 1/2 in nosingnosing under 3/4 in on a tread under 11 in, failsBy hand 2021 IRC R311.7.5.3
10 in treads with a 1 3/8 in nosingnosing 1/8 in over the 1 1/4 in maximum, failsBy hand 2021 IRC R311.7.5.3
11 in treads with no nosingno nosing needed at an 11 in tread, passes; total run 143 inBy hand 2021 IRC R311.7.5.3 Exception
1 in nosing on the treads, upper floor edge different from the treadsriser, tread, flight rise and nosing pass, but the floor edge is not checked: not a pass; total run unchanged at 130 inBy hand 2021 IRC R311.7.5.2 and R311.7.5.3 (the floor edge is the last nosing; this tool does not check a different one)
11 in treads with no nosing, upper floor edge different from the treadsthe floor edge is not checked here either: not a passBy hand 2021 IRC R311.7.5.2 and R311.7.5.3
11 in treads with no nosing, upper floor edge not yet chosenpasses on the condition that the floor edge has no overhang either: that line is reported as assumedBy hand 2021 IRC R311.7.5.2 and R311.7.5.3
152 in total rise in one flight20 risers of 7.6 in, but 1 in over the 12 ft 7 in a single flight may rise, failsBy hand 2021 IRC R311.7.3
108 in total rise: the layout with one more riser15 risers of 7.2 in, 14 treads, total run 140 inBy hand Arithmetic: 108 ÷ 15, 14 × 10
A single 7 in step1 riser of 7 in, no treads and no stringer; the tread and nosing rules do not apply, passesBy hand 2021 IRC R311.7.5.1 (one riser: there is no tread to check)
78 in of headroom on a 36 in wide stairwidth passes at exactly 36 in; headroom is 2 in under 6 ft 8 in, failsBy hand 2021 IRC R311.7.1 and R311.7.2
A 35 in wide stairclear width 1 in under the 36 in minimum above handrail height, fails; headroom not entered, so not checkedBy hand 2021 IRC R311.7.1
108 in total rise with 130 in of floor: the options table14 risers: 13 treads of exactly 10 in, total run 130 in, passes; from 15 risers on the treads are under 10 in (15 risers: 130 ÷ 14 = 9.2857 in), failsBy hand 2021 IRC R311.7.5.1 and R311.7.5.2 (each tread = 130 in ÷ the number of treads)
108 in total rise with 130 in of floor, riser count set to 1515 risers of 7.2 in, 14 treads of 9.2857 in: under the 10 in minimum, failsBy hand 2021 IRC R311.7.5.2 (130 ÷ 14)
108 in total rise with only 120 in of floorno riser count fits: even 14 risers give treads of 120 ÷ 13 = 9.2308 in; the fewest risers need 13 × 10 = 130 in of floorBy hand 2021 IRC R311.7.5.2 (120 ÷ 13 is under 10; 13 treads × 10 in = 130 in)
108 in total rise, floor length left empty: the options table14 to 20 risers, every tread 10 in, total runs 130, 140, … 190 in, all passBy hand 2021 IRC R311.7.5.1 and R311.7.5.2 (10 in treads; total run = treads × 10 in)
160 in total rise with 300 in of floor: the options table21 to 27 risers, treads 15 in down to 11.54 in: every row fails on the flight rise alone, not on the floorBy hand 2021 IRC R311.7.3 (160 in is over the 151 in one flight may rise, whatever the count)
160 in total rise with only 100 in of floor: over one flight, so the floor is not named as the reasonevery row fails on the tread and on the flight rise; no single flight fits, so no floor length is given as the fixBy hand 2021 IRC R311.7.3 and R311.7.5.2 (100 ÷ 20 is under 10, and 160 in is over 151 in whatever the floor)
The mycarpentry.com deck stair turned round: 36 1/4 in total rise, 42 in of floor5 risers of 7 1/4 in, 4 treads of 42 ÷ 4 = 10 1/2 inBy hand Arithmetic from the mycarpentry.com example (it works from the 10 1/2 in tread to the 42 in run): 42 ÷ 4
A single 7 in step with 30 in of floor1 riser: no treads, so no tread depth and no run; 2 to 4 risers give treads of 30, 15 and 10 in and pass; 5 or more are under 10 inBy hand 2021 IRC R311.7.5.1 and R311.7.5.2 (one riser has no tread; 2 to 7 risers share the 30 in)

Sources

  • 2021 International Residential Code, Section R311.7, StairwaysRead as published on UpCodes (Texas industrialized-housing adoption of the 2021 IRC; the subsections used here are shown without amendment). Every limit in this tool comes from R311.7.1, R311.7.2, R311.7.3 and R311.7.5.1 to R311.7.5.3 of this text.
  • 2018 International Residential Code, Section R311.7, StairwaysRead for comparison, from an adoption without amendments. Same figures for riser, tread, nosing, headroom, width and flight rise; the flight limit is printed as 151 inches.
  • 2024 International Residential Code, Section R318.7, StairwaysRead for comparison (Oklahoma adoption, which marks its own amendments). The section is renumbered from R311.7 to R318.7 with the same figures; the nosing may exceed 1 1/4 in where risers are open.
  • US Navy, Builder 3 & 2, Volume 2, chapter 6: Stairway layout, page 6-12Training manual with a worked stair of 8 ft 11 in total rise. This tool gives its riser count and unit rise: 15 risers of 107/15 in, which it calls nearly 7 1/8 in. It aims for 7 in risers, so it uses one more riser than this calculator starts with. Used as a tested example.
  • US Navy, Builder 3 & 2, Volume 2, chapter 6: Stairway layout, page 6-13Continues the same stair: 14 treads and a total run of 145 1/4 in where the upper floor serves as the top tread (its view C), used as a tested example. The manual estimates a board length from a triangle of total rise and total run only for its other layout, with a full tread at the top, and calls it approximate; the stringer figures in this tool are worked from the layout drawn here, not taken from the manual.
  • mycarpentry.com: Building StairsWorked deck stair with a 36 1/4 in total rise: 5 risers of 7 1/4 in and 4 treads of 10 1/2 in, total run 42 in, with the top step one riser below the landing. Used as a tested example.