finance-business · construction · framing

Stair Calculator

Enter a stair's total rise, your target riser height and tread depth, and get the number of risers and treads, the actual riser height, the total run, and the stringer length and count. The riser height, the tread depth, 2R + T and, when you enter it, the headroom are checked against limits you can change. If you enter the run you have and the stair would not fit, the riser count is reduced to fit and flagged. US or Metric units.

Last updated

Calculator overview

Inputs and outputs

This summary comes from the calculator's published input and output contract.

Inputs

Tread depth (required) Conditional
About this input

The run of each tread, nosing to nosing, as building codes measure it, in inches. Used when the unit system is US. The default is the requirement's 10.5 in.

Unit in Default 10.5 Range At least 0
Minimum tread depth (required) Conditional
About this input

The shallowest tread allowed, in centimetres. Used when the unit system is Metric. The default 25.4 cm (254 mm) is the International Residential Code's (R311.7.5.2).

Unit cm Default 25.4 Range At least 0
Minimum tread depth (required) Conditional
About this input

The shallowest tread allowed, in inches. Used when the unit system is US. The default 10 in is the International Residential Code's (R311.7.5.2).

Unit in Default 10 Range At least 0
Total rise (required) Conditional
About this input

The vertical height the stair climbs, from finished floor to finished floor, in centimetres. Used when the unit system is Metric. The default 274.32 cm is worked example 11.5.4.1's 108 in converted exactly.

Unit cm Default 274.32 Range At least 0
Total rise (required) Conditional
About this input

The vertical height the stair climbs, from finished floor to finished floor, in inches. Used when the unit system is US. The default 108 in is worked example 11.5.4.1's.

Unit in Default 108 Range At least 0
Tread depth (required) Conditional
About this input

The run of each tread, nosing to nosing, as building codes measure it, in centimetres. Used when the unit system is Metric. The default 26.67 cm is 10.5 in converted exactly.

Unit cm Default 26.67 Range At least 0
2R + T, maximum (required) Conditional
About this input

The upper end of the range for twice the riser height plus the tread depth (2R + T), in centimetres. Used when the unit system is Metric. It is a comfort rule of thumb, not a code requirement. The default 63.5 cm is 25 in converted exactly.

Unit cm Default 63.5 Range At least 0
Unit System (required)
About this input

US uses inches, Metric uses centimetres. Each system keeps its own values in every field; switching does not convert what you typed. The Metric defaults are the US figures converted exactly, except the riser limits, which are the codes' own metric figures.

Default US Allowed US, Metric
Stair width (required) Conditional
About this input

The stair's width, in centimetres. Used when the unit system is Metric. It sets how many stringers are needed at 16 in (40.64 cm) spacing. The default 91.44 cm is 36 in converted exactly.

Unit cm Default 91.44 Range At least 0
Stair width (required) Conditional
About this input

The stair's width, in inches. Used when the unit system is US. It sets how many stringers are needed at 16 in (40.64 cm) spacing. The default 36 in is worked example 11.5.4.1's.

Unit in Default 36 Range At least 0
2R + T, maximum (required) Conditional
About this input

The upper end of the range for twice the riser height plus the tread depth (2R + T), in inches. Used when the unit system is US. It is a comfort rule of thumb, not a code requirement. The default is 25 in.

Unit in Default 25 Range At least 0
2R + T, minimum (required) Conditional
About this input

The lower end of the range for twice the riser height plus the tread depth (2R + T), in centimetres. Used when the unit system is Metric. It is a comfort rule of thumb, not a code requirement. The default 60.96 cm is 24 in converted exactly.

Unit cm Default 60.96 Range At least 0
2R + T, minimum (required) Conditional
About this input

The lower end of the range for twice the riser height plus the tread depth (2R + T), in inches. Used when the unit system is US. It is a comfort rule of thumb, not a code requirement. The default is 24 in.

Unit in Default 24 Range At least 0
Target riser height (required) Conditional
About this input

The riser height you would like, in inches. Used when the unit system is US. The rise is divided into the nearest whole number of equal risers; an exact half goes to the even count. The default is the requirement's 7.5 in.

Unit in Default 7.5 Range At least 0
Minimum headroom (required) Conditional
About this input

The least headroom allowed, in centimetres. Used when the unit system is Metric. Checked only when you enter a headroom. The default 203.2 cm (2032 mm) is the International Residential Code's (R311.7.2).

Unit cm Default 203.2 Range At least 0
Minimum headroom (required) Conditional
About this input

The least headroom allowed, in inches. Used when the unit system is US. Checked only when you enter a headroom. The default 80 in (6 ft 8 in) is the International Residential Code's (R311.7.2).

Unit in Default 80 Range At least 0
Headroom Conditional
When omitted Blank
About this input

Optional. The lowest clear height above the stair, measured straight up from the sloped line through the tread nosings, in inches. Used when the unit system is US. Leave it blank to skip the headroom check.

Unit in Default Not set Range At least 0
Available run Conditional
When omitted Blank
About this input

Optional. The horizontal floor length the stair may use, from the face of the top riser to the face of the bottom one, in centimetres. Used when the unit system is Metric. Leave it blank for no limit. If the stair at your target riser height needs more, the riser count drops to the most that fit.

Unit cm Default Not set Range At least 0
Available run Conditional
When omitted Blank
About this input

Optional. The horizontal floor length the stair may use, from the face of the top riser to the face of the bottom one, in inches. Used when the unit system is US. Leave it blank for no limit. If the stair at your target riser height needs more, the riser count drops to the most that fit.

Unit in Default Not set Range At least 0
Headroom Conditional
When omitted Blank
About this input

Optional. The lowest clear height above the stair, measured straight up from the sloped line through the tread nosings, in centimetres. Used when the unit system is Metric. Leave it blank to skip the headroom check.

Unit cm Default Not set Range At least 0
Nosing (required) Conditional
About this input

How far each tread's front edge overhangs the riser below, in centimetres. Used when the unit system is Metric. It adds to the tread board, not to the run, and no limit is checked on it. The default 2.54 cm is 1 in converted exactly.

Unit cm Default 2.54 Range At least 0
Minimum riser height (required) Conditional
About this input

The shortest riser allowed, in centimetres. Used when the unit system is Metric. The default 10.2 cm is the International Building Code's own metric figure (102 mm, 1011.5.2); the residential code sets no minimum.

Unit cm Default 10.2 Range At least 0
Minimum riser height (required) Conditional
About this input

The shortest riser allowed, in inches. Used when the unit system is US. The default 4 in is the International Building Code's (1011.5.2); the residential code sets no minimum.

Unit in Default 4 Range At least 0
Target riser height (required) Conditional
About this input

The riser height you would like, in centimetres. Used when the unit system is Metric. The rise is divided into the nearest whole number of equal risers; an exact half goes to the even count. The default 19.05 cm is 7.5 in converted exactly.

Unit cm Default 19.05 Range At least 0
Nosing (required) Conditional
About this input

How far each tread's front edge overhangs the riser below, in inches. Used when the unit system is US. It adds to the tread board, not to the run, and no limit is checked on it. The default 1 in is a typical projection.

Unit in Default 1 Range At least 0
Maximum riser height (required) Conditional
About this input

The tallest riser allowed, in centimetres. Used when the unit system is Metric. The default 19.6 cm is the International Residential Code's own metric figure (196 mm, R311.7.5.1); use the figure your jurisdiction adopted.

Unit cm Default 19.6 Range At least 0
Maximum riser height (required) Conditional
About this input

The tallest riser allowed, in inches. Used when the unit system is US. The default 7 3/4 in is the International Residential Code's (R311.7.5.1); use the figure your jurisdiction adopted.

Unit in Default 7.75 Range At least 0

Outputs

Stringers
About this output

How many stringers the width needs: one at each side and enough between that none are more than 16 in (40.64 cm) apart. A single step has no stringer and reads 0.

No unit declared
Stringer length
About this output

The length of the sloping line from the bottom to the top of the stair, the square root of the rise squared plus the run squared. Allow extra for the cuts. A single step (one riser, no treads) has no stringer and reads 0.

Unit in
Total run
About this output

The treads times the tread depth: the floor length the stair covers.

Unit in
Treads
About this output

One fewer than the risers; the upper floor is the last step.

No unit declared
Tread depth with nosing
About this output

The tread depth plus the nosing: how deep each tread board is.

Unit in
Risers
About this output

How many equal risers the stair has.

No unit declared
Checks against your limits
About this output

Each check with the stair's value, the limits it is held to, whether it is within them, and where the default limit comes from. The headroom row reads Not checked when no headroom is entered.

No unit declared
Within every limit checked
About this output

Yes when every check that was made is within its limits. The headroom counts only when you enter it; the run, the stringers, the nosing and the width are not checked.

No unit declared
Model Status
About this output

OK when the stair is within every limit checked and needed no reduction. CHECK names every limit the stair is outside, and a riser count reduced to fit your run. NOT VALID names the first input to fix; every figure then reads 0 and every verdict NOT VALID.

No unit declared
Riser height
About this output

Each riser's height: the total rise divided by the number of risers.

Unit in
Riser count reduced to fit the run
About this output

Yes when the stair at your target riser height would need more run than you entered, so the riser count was reduced to the most that fit.

No unit declared
This page is provided by LogicCommons for informational purposes only. Results are analysis outputs computed from the inputs you supply and are not engineering advice, a design, or a substitute for review by a licensed professional under the codes adopted where the work is built. Verify all inputs and results independently.

LogicCommons is in beta. If a result, label, or reference looks wrong, tell us here; we read every message.

Methodology

Purpose and model boundary

This calculator lays out one straight flight of stairs from the height it climbs. You enter the total rise, the riser height and tread depth you would like, the nosing and the stair's width, and, if you have them, the horizontal run the stair may use and the headroom above it. The spreadsheet returns the number of risers and treads, the actual riser height, the total run, the stringer length and the number of stringers, and it checks the riser height, the tread depth, twice the riser height plus the tread depth (2R + T) and, when you enter it, the headroom against limits you can change. If you enter the run you have and the stair at your target riser height would need more, it cuts the riser count to the most that fit and says so. It is not a stair design, a building-code determination or an inspection: it lays out equal risers in one flight with no landing, winder or spiral, and it does not check the stair's width, the nosing, the handrails, the guards or the difference between the tallest and the shortest riser.

Inputs and units

The unit system is US or Metric: US works in inches and Metric in centimetres, for every input and every result that has a unit. The inputs are:

  • Total rise: the vertical height the stair climbs, from finished floor to finished floor.
  • Target riser height: the riser height you would like. The rise is divided into the nearest whole number of equal risers, so the actual riser height is usually a little different.
  • Tread depth: the run of each tread, nosing to nosing, as building codes measure it.
  • Nosing: how far each tread's front edge overhangs the riser below. It adds to the tread board, not to the run, and no limit is checked on it.
  • Stair width: it sets how many stringers are needed at 16 in (40.64 cm) spacing.
  • Available run (optional): the horizontal floor length the stair may use, from the face of the top riser to the face of the bottom one. Leave it blank for no limit.
  • Headroom (optional): the lowest clear height above the stair, measured straight up from the sloped line through the tread nosings. Leave it blank to skip the headroom check.
  • The limits to check against: Maximum riser height, Minimum riser height, Minimum tread depth, the 2R + T minimum and maximum, and Minimum headroom.

Every input but the unit system has one field for each system, each with its own default, and each system keeps its own values: switching between US and Metric shows the other system's fields with their own values and never converts a number you typed. The spreadsheet reads only the fields of the selected system.

The US defaults are worked example 11.5.4.1 of the requirement this calculator was built against: a 108 in rise at a 7.5 in target riser with 10.5 in treads, 36 in wide, with a 1 in nosing, a typical projection inside the 3/4 to 1 1/4 in range the International Residential Code (IRC) sets for nosings. The default limits are 7 3/4 in for the maximum riser height (IRC R311.7.5.1), 4 in for the minimum riser height (International Building Code 1011.5.2; the IRC sets no minimum), 10 in for the minimum tread depth (IRC R311.7.5.2), 24 to 25 in for 2R + T, a comfort rule of thumb rather than a code requirement, and 80 in, 6 ft 8 in, for the minimum headroom (IRC R311.7.2). The Metric defaults are the US figures converted exactly, at 2.54 cm to the inch (274.32, 19.05, 26.67, 2.54 and 91.44 cm, and limits of 25.4 cm, 60.96 to 63.5 cm and 203.2 cm), except the two riser limits, which are the codes' own metric figures: 19.6 cm (the IRC prints 196 mm) and 10.2 cm (the IBC prints 102 mm), not 19.685 and 10.16 cm. The limits are common US model-code figures and a rule of thumb for review before use; they are not the code in force where you build, so replace them with the figures your jurisdiction adopted.

Governing relationships

The rise divided by the target riser height is rounded to six decimal places, and then to the nearest whole number of risers, with at least one riser. A result exactly halfway between two whole numbers goes to the even one, so 12.5 becomes 12 and 13.5 becomes 14. That tie rule is a convention, not a physical preference: both counts are equally near the target.

Risers at the target = total rise ÷ target riser height, to the nearest whole number, a half to the even count

When you enter an available run, the most risers that fit it are one more than the whole treads that fit, again rounded to six decimal places first:

Most risers that fit = available run ÷ tread depth, rounded down, + 1

If that is fewer than the risers at the target, the stair takes the most that fit and the riser count is reduced; otherwise it keeps the risers at the target. The requirement asks for the "minimum" riser count that fits, which read literally would always be one riser; this calculator takes the largest count that fits, which gives the lowest risers the run allows.

Riser height = total rise ÷ risers

Treads = risers − 1, because the upper floor is the last step

Total run = treads × tread depth

Stringer length = √(total rise² + total run²), or 0 when there are no treads

Stringers = stair width ÷ stringer spacing, rounded up, + 1, or 0 when there are no treads

The stringer spacing is 16 in, 40.64 cm in Metric, and the ratio is rounded to six decimal places before it is rounded up, so a width that is an exact multiple of the spacing is not given an extra stringer by the last digit of the arithmetic: 48 in holds 3 spaces and 4 stringers.

Tread depth with nosing = tread depth + nosing

2R + T = 2 × riser height + tread depth

The checks compare the riser height with its maximum and its minimum, the tread depth with its minimum, 2R + T with its range, and, when you enter it, the headroom with its minimum. Each value is rounded to six decimal places before it is compared, and a value equal to its limit is within it. Within every limit checked is Yes when every check that was made is within its limits; a headroom you left blank is not checked and does not count against it.

Calculation sequence

  1. The spreadsheet reads the unit system and the fields of the selected system.
  2. The risers at the target: the rise over the target riser height, rounded to six decimal places, then to the nearest whole number, a half to the even count, and at least one.
  3. When an available run is entered, the most risers that fit it; the riser count is reduced when that is fewer than the risers at the target.
  4. Riser height, treads, total run, stringer length and stringers, tread depth with nosing, and 2R + T.
  5. The five checks, and whether the stair is within every limit checked.
  6. The status line is chosen, as described below. When it begins NOT VALID:, every figure reads 0 and every verdict reads NOT VALID.

For the stair the page opens with, worked example 11.5.4.1: 108 ÷ 7.5 = 14.4, so 14 risers of 108 ÷ 14 = 7.71 in and 13 treads; the total run is 13 × 10.5 = 136.5 in and the stringer √(108² + 136.5²) = 174.06 in long; 36 ÷ 16 = 2.25 rounds up to 3 spaces, so 4 stringers; each tread board is 10.5 + 1 = 11.5 in deep. Its 2R + T is 2 × 7.71 + 10.5 = 25.93 in, above the 25 in maximum, so the page opens on CHECK: 2R + T is outside its range; the requirement's own default proportions miss that range, as every one of its examples does. Worked example 11.5.4.2 is a 96 in rise with only 110 in of run: 96 ÷ 7.5 = 12.8 gives 13 risers, whose 12 treads need 126 in, so the count drops to the 11 risers that fit (110 ÷ 10.5 = 10.48, 10 treads), at 8.73 in each, over 105 in of run with a 142.27 in stringer. Worked example 11.5.4.3, a 48 in deck stair with 11 in treads, has 6 risers of 8 in, above the 7 3/4 in maximum, 5 treads, 55 in of run and a 73 in stringer. Worked example 11.5.4.4, a 100 in rise at an 8 in target with 9 in treads, is an exact tie, 12.5, so it has 12 risers of 8.33 in, 11 treads and 99 in of run; conventional rounding would give 13. With 76 in of headroom added, its riser, tread, 2R + T and headroom all miss their limits. Worked example 11.5.4.5 is a 21 in rise at 7 in with 12 in treads, 60 in wide: 3 risers of 7 in, 2 treads, 24 in of run, and 60 ÷ 16 = 3.75, so 4 spaces and 5 stringers; its 2R + T is 26 in. In Metric, a 270 cm rise at an 18 cm target with 27 cm treads, 90 cm wide, has 15 risers of 18 cm, 14 treads, 378 cm of run, a 464.53 cm stringer and 4 stringers, and its 2R + T of 63 cm is within 60.96 to 63.5 cm, so with 210 cm of headroom it is within every limit checked and reads OK.

Outputs and interpretation

Within every limit checked is the headline verdict, Yes or No. Risers, Riser height, Treads, Total run, Stringer length and Stringers are the headline figures; Riser height, Total run and Stringer length are in inches (US) or centimetres (Metric), and the counts are whole numbers. Riser count reduced to fit the run is Yes when the stair at your target riser height would need more run than you entered, and Tread depth with nosing, in inches or centimetres, is how deep each tread board is.

Checks against your limits is a table of the five checks, one row each, in the order the checks are listed above. Its columns are the check with its unit, the stair's value (the riser height twice, the tread depth, 2R + T, and the headroom you entered, blank when you entered none), the minimum and the maximum it is held to as you entered them (a check with one limit leaves the other blank), whether it is within them (Yes, No, or Not checked for a headroom you left blank), and the source of the default limit. The source names where the default figure comes from, whatever figure you entered.

The page shows every figure to at most two decimals, and every figure is computed from unrounded values, so a figure worked out by hand from the ones shown on the page can differ in its last place.

Validation and status logic

The status line is the spreadsheet's own verdict. It is the first of these that applies:

  • NOT VALID: choose US or Metric
  • NOT VALID: total rise must be greater than zero
  • NOT VALID: target riser height must be greater than zero
  • NOT VALID: tread depth must be greater than zero
  • NOT VALID: stair width must be greater than zero
  • NOT VALID: enter a nosing of zero or more
  • NOT VALID: enter an available run of zero or more, or leave it blank
  • NOT VALID: enter a headroom of zero or more, or leave it blank
  • NOT VALID: the riser height limits need a minimum of zero or more, no greater than the maximum
  • NOT VALID: enter a minimum tread depth of zero or more
  • NOT VALID: the 2R + T range needs a minimum of zero or more, no greater than the maximum
  • NOT VALID: enter a minimum headroom of zero or more

Otherwise the status is OK when the stair is within every limit checked and needed no reduction. When it is not, the status is one CHECK: line naming every reason, in this order, separated by semicolons:

  • the riser count was reduced to fit the available run
  • the riser height is above its maximum
  • the riser height is below its minimum
  • the tread depth is below its minimum
  • 2R + T is outside its range
  • the headroom is below its minimum

So worked example 11.5.4.2 reads CHECK: the riser count was reduced to fit the available run; the riser height is above its maximum; 2R + T is outside its range. Every check reads the selected system's fields only. A total rise, target riser height, tread depth or stair width of zero is refused by the status line, because the layout divides by it or has no stair to count; a nosing, an available run or a headroom of zero is accepted. An available run too short for a single tread leaves one riser with no tread and no stringer. A CHECK: verdict comes with the figures; a NOT VALID: verdict is shown in place of them.

Assumptions and limitations

  • One straight flight of equal risers with no landing. The rise is the height between finished floors; where a floor finish and the tread finish differ in thickness, the first and the last risers come out taller or shorter than the rest, so allow for it before cutting.
  • The riser count at the target is the nearest whole number, an exact half going to the even count; that rule is a convention, and the other count may suit the stair as well.
  • When the run is limited, the count is the largest that fits, which gives the lowest risers the run allows; a count further reduced would only make every riser taller.
  • The stringer length is the sloping line from the bottom to the top of the stair; allow extra for the cuts at each end. A single step, one riser with no treads, has no stringer and reads 0.
  • Stringers are counted at 16 in (40.64 cm) spacing, one at each side; that spacing is the requirement's, not a code value, so check it against your framing plan.
  • Only the riser height, the tread depth, 2R + T and the headroom are checked. The run, the stringers, the nosing, the width and the difference between the tallest and the shortest riser are not.
  • The headroom is checked only when you enter it.
  • The default limits are review-before-use figures, not the code in force where you build.
  • The Deck Material Takeoff Calculator counts deck stairs by a simpler rule; use this calculator to lay out the stair.
  • The drawing beside the results is drawn from the returned figures and the lengths you entered. The flight, the treads, the nosing, the run, the available run and the headroom share the elevation's scale; the enlarged step and the view across the width each have their own scale bar. The floor slabs, the board thickness, the stringer's depth below the notches and the stringers' size across the width are not modelled: they are drawn at a fixed size and never dimensioned, and the stringers are drawn evenly spaced because only their count is returned. The stringer length is dimensioned along the line from the foot of the bottom riser to the top of the top riser, the line it is measured on, so it is not parallel to the cut stringer. The headroom is drawn as a clear line parallel to the line through the nosings, with no ceiling, because no ceiling position is entered. Landings, winders, rails, guards, floor finishes and the nosing on the upper floor are not drawn. A limit is drawn red only where the checks table says No, and a NOT VALID: status shows no drawing.

Restrictions and non-computing states

This calculator accepts every length and every limit of zero or more, and the unit system US or Metric; the available run and the headroom may also be left blank. A field of the system that is not selected is not read. A total rise, target riser height, tread depth or stair width of zero, a riser height or 2R + T range whose minimum is above its maximum, and a blank required field are not computed.

Errors and warnings

The results update as you change the inputs. A blank required input stops the calculation until you fill it, and the page asks for the required inputs in place of the results. If the calculation service refuses an input, the page names the input and the reason. If the service does not answer, the page shows the error and keeps your inputs. A CHECK: status means the figures are returned with a reason to look again; a NOT VALID: status means they cannot be computed and none are shown.

References

Sources and further reading

  • Town of Timnath, Colorado, 2018 Residential Stair Guide, Section R311.7 Stairways of the 2018 International Residential Code. timnath.org. The residential figures behind the default limits: a riser of 7 3/4 in (196 mm) at most (R311.7.5.1), a tread of 10 in (254 mm) at least (R311.7.5.2), headroom of 6 ft 8 in measured from the sloped plane through the tread nosings (R311.7.2), and a nosing of 3/4 to 1 1/4 in on stairs with solid risers. The guide prints 2036 mm beside 6 ft 8 in; 80 in is 2032 mm, the figure this calculator's Metric default uses.
  • Illinois Building Code 2021, Section 1011.5.2, Riser height and tread depth, on UpCodes. up.codes. The 4 in (102 mm) minimum riser height behind the default minimum; the residential code sets none. Its exception for Group R-3 occupancies and for dwelling units in Group R-2 occupancies allows a riser of 7 3/4 in and a tread of 10 in, the residential figures above.
  • National Institute of Standards and Technology, Guide for the Use of the International System of Units (SI), NIST Special Publication 811, Appendix B.8. nist.gov. The exact inch, 2.54 cm, behind the Metric defaults that are the US figures converted exactly.
  • Michael Maines, "2 Rules for Building Comfortable Stairs Like a Pro," Fine Homebuilding. finehomebuilding.com. The comfort rule behind the 2R + T check: twice the rise plus the run should be about 25 in, within 24 to 26 in. The default range here, 24 to 25 in, is the requirement's, inside the article's.

The default limits are figures for review before use, not the code in force where you build: a jurisdiction adopts a code edition with its own amendments, and the figures it adopted are the ones to check against. The default rise, target riser height, tread depth, nosing and width are the figures of the worked example and the requirement this calculator was built to, not values from these sources. These sources describe the limits and the units; they do not certify a particular stair.

Results are informational and not professional advice. See our Terms of Use. Powered by SpreadsheetWeb · About · Privacy · Terms