Enter the total rise of the stairs (from the lower floor to the upper floor) and the tread depth. Choose the riser height either by a target value or by the number of steps.
Table of Contents
-
What you can do on this page
-
What is this calculation used for?
-
How to Use
-
Formulas and figures
-
Symbols and terms
-
Good to know before you start
-
How to calculate it in Excel
-
How to calculate it in Google Sheets
-
How to calculate it in Python
-
How to write it in LaTeX and other math languages (copy and paste)
-
How to have ChatGPT do the calculation
-
DataChef Features
-
Related Features
-
NumberChef Calculators List
What you can do on this page
- Enter the total rise (the height from the lower floor to the upper floor) and the tread depth, and you get the riser height, the number of steps, the total run, the stringer length and the stair angle on the spot
- Switch between two modes: "set a target riser height" or "set the number of steps". The stringer mounting (standard or flush) and the tread thickness can also be included
- A comparison table shows how the riser height and the angle change if you add or remove steps
- The result checks the stairs against the US residential code (IRC): a riser height of 7 3/4 in or less and a tread depth of 10 in or more
- Optionally, enter the thickness of the upper floor and the length of the stairwell opening to find the headroom under the floor above, or the opening length you need for a given headroom
- A plain-language explanation of the formulas and copy-and-paste formulas for Excel, Google Sheets and Python are all on this page
What is this calculation used for?
In a house with a floor-to-floor height of 105 in (8 ft 9 in) and a target riser of 7.5 in, you get \(105 \div 7.5 = 14\) risers and 13 steps. With 10 in treads the total run is \(10 \times 13 = 130\) in (10 ft 10 in).
Seeing the trade-off in numbers ("one more step makes each riser lower, but the stairs grow about 10 in into the hall") helps you check the designer's proposals for yourself when you discuss the floor plan.
The IRC stair rules for homes are a riser height of 7 3/4 in or less and a tread depth of 10 in or more. These are minimums: stairs right at the limits (7 3/4 in riser, 10 in tread) have an angle of \(\arctan(7.75 \div 10) \approx 37.8^\circ\), noticeably steeper than a comfortable stair.
Checking the rule of thumb "2 × riser + tread = 24 to 25 in" as well (\(2 \times 7.75 + 10 = 25.5\) in here, just over the range) lets you review the safety of the stairs, where many home accidents happen, in numbers.
For a deck 32 in above the ground with a target riser of about 7.5 in, \(32 \div 7.5 \approx 4.27\) rounds to 4 risers, but \(32 \div 4 = 8\) in is over the 7 3/4 in limit. With 5 risers (4 treads), every riser is \(32 \div 5 = 6.4\) in.
Even for a few steps, working out "how high each step is when divided evenly" first keeps you from building uneven steps that people trip on. (Deck stairs in the US generally follow the same IRC rules as indoor stairs.)
For stairs with a total run of 130 in and a stringer height of 97.5 in, the stringer length is \(\sqrt{130^2 + 97.5^2} = 162.5\) in, or 13 ft 6.5 in.
Lumber is usually sold in 2 ft steps (8, 10, 12, 14 and 16 ft), so this Pythagorean calculation tells you before you shop that a 12 ft board is too short and you need a 14 ft 2×12. The sloped board is longer than you might expect, so buying lumber by the horizontal distance alone often leaves you short.
If you try to fit stairs up to a loft 96 in high into a run of 60 in (6 treads of 10 in), the riser height is \(96 \div 7 \approx 13.71\) in and the angle is \(\arctan(13.71 \div 10) \approx 53.9^\circ\), close to a ladder.
Working out "what angle do I get in this space" first helps you decide between a regular stair, a ship ladder (alternating tread device) or a ladder. Which ones are allowed depends on the local code and how the space is used.
When a hallway or room upstairs covers part of the stairs, the space above your head gets tight near the top. For stairs with a 7.5 in riser and a 10 in tread, a 12 in thick floor and a 120 in stairwell opening, the headroom is \(7.5 \times 120 \div 10 - 12 = 78\) in (6 ft 6 in), 2 in short of the 6 ft 8 in the IRC requires.
For 80 in of headroom the opening must be \((80 + 12) \times 10 \div 7.5 \approx 122.67\) in, so you can discuss with numbers whether to lengthen the stairwell by about 2 3/4 in, make the stairs steeper or make the floor thinner (follow your local code and your designer for the required height).
Formulas and figures
Symbols and terms
Symbols
| \(H\) | aitch | The total rise of the stairs - the vertical distance from the finished lower floor to the finished upper floor. (Example - 105 in from the first floor to the second) |
| \(R\) | ar | The riser height - the vertical distance of one step. |
| \(T\) | tee | The tread depth - the horizontal depth of the surface you step on. |
| \(n\) | en | The number of risers - the number of vertical rises. With the standard mounting, it is one more than the number of steps. |
| \(s\) | ess | The number of steps (treads) - the number of surfaces you step on. In everyday speech, people often count the risers instead ("a 14-step staircase" for one with 14 risers), but on this page "number of steps" means the number of treads. |
| \(D\) | dee | The total run - the horizontal length the stairs take up. It is found with \(D = T \times s\). |
| \(K\) | kay | The stringer height - the vertical height the stringer covers. It is \(H - R\) with the standard mounting and \(H\) with flush mounting. |
| \(L\) | ell | The stringer length. It is found with \(L = \sqrt{D^2 + K^2}\) (the Pythagorean theorem). |
| \(t\) | lowercase tee | The tread thickness. If you include it, it is subtracted from the stringer height and the first riser. |
| \(t_f\) | tee sub eff | The upper floor thickness - from the finished upper floor down to the ceiling seen from the stairs (the underside of the floor). The f stands for "floor"; it is a different quantity from the tread thickness \(t\). |
| \(L_o\) | ell sub oh | The stairwell opening length - the horizontal distance from the edge of the upper floor to the edge of the floor that hangs over the stairs. The o stands for "opening"; it is a different quantity from the stringer length \(L\). |
| \(h_c\) | aitch sub cee | The headroom - the height measured straight up from the nosing line to the ceiling, right below the edge of the opening. It is found with \(h_c = R \times L_o \div T - t_f\). The c stands for "clearance". |
| \(h_{\mathrm{req}}\) | aitch sub req | The required headroom - the height you want right below the edge of the opening, set by the code (6 ft 8 in under the IRC), local rules or your designer. "req" is short for "required". |
| \(L_{\mathrm{req}}\) | ell sub req | The opening length needed - the stairwell opening that gives the required headroom. It is found with \(L_{\mathrm{req}} = (h_{\mathrm{req}} + t_f) \times T \div R\). |
| \(\theta\) | theta | The stair angle (pitch). It is found with \(\theta = \arctan(R \div T)\). |
| \(\sqrt{x}\) | square root of x | The square root - the value that gives the number when squared. (Example - \(\sqrt{25} = 5\)) |
| \(\arctan\) | arctangent | The function that finds an angle from its tangent (the slope ratio). On a scientific calculator it is often shown as tan⁻¹. (Example - \(\arctan(1) = 45^\circ\)) |
Terms
| riser height | The height of one step (a vertical distance), also called the rise. The larger it is, the higher each step up and the steeper and more tiring the stairs. The IRC limits it to 7 3/4 in in homes. |
| tread depth | The horizontal depth of the surface you step on, also called the run of one step. If it is too small, your foot does not fit well and you can slip off. The IRC requires at least 10 in in homes, measured from nosing to nosing. |
| riser | The vertical part of a step (the rise between one tread and the next). On this page, the "number of risers" is the number of rises, which is one more than the number of steps (treads) with the standard mounting. |
| stringer | The sloped structural board on each side of the stairs that supports the treads. In wood stairs, a board (often a 2×12) is set at an angle and cut into a sawtooth shape, and the treads sit on the cuts. |
| tread thickness | The thickness of the tread board you step on. Wood treads are often about 1 in thick, and the thickness changes how the stringer must be cut and placed. |
| flush mounting | Mounting the stringer so that its top is level with the upper floor. Compared with the standard mounting (one step below the upper floor), it adds one step. |
| pitch | How steep something is. For stairs it is the ratio riser ÷ tread, or the angle found from it. The larger the number, the steeper the stairs. |
| IRC (International Residential Code) | The model building code for one- and two-family homes, adopted by most US states (often with local changes). Its stair rules (section R311.7) include a riser height of 7 3/4 in or less, a tread depth of 10 in or more, a width of at least 36 in, headroom of at least 6 ft 8 in, and risers in a flight within 3/8 in of each other. |
| headroom | The height of the free space above the head of someone using the stairs. On this page, it is measured straight up from the nosing line (the line joining the front edges of the treads) to the underside of the floor above, and it is smallest right below the edge of the opening where the ceiling begins. |
| stairwell opening | The hole in the upper floor that the stairs pass through (the part with no floor). On this page, the "stairwell opening length" is the horizontal distance from the edge of the upper floor to the edge of the floor that hangs over the stairs. |
| nosing line | The sloped line that joins the front edges (nosings) of the treads. It shows the slope of the stairs, and headroom and handrail height are usually measured straight up from it. For each step it moves forward one tread depth and rises one riser height. |
Good to know before you start
Here is what helps you use the calculation on this page with real understanding, not just by pressing the button.
| Division and rounding (Grades 4–5) |
|
| Converting units of length (Grades 4–5) |
|
| The Pythagorean theorem (Grade 8) |
|
| Trigonometric ratios and tangent (Geometry, high school) |
|
| Ratios and trade-offs (Grades 6–7) |
|
| Proportional relationships and similar triangles (Grades 6–8) |
|
How to calculate it in Excel
| Total rise H (in) | 105 |
| Target riser height R (in) | 7.5 |
| Number of risers n | =ROUND(B1/B2,0) |
| Number of steps (standard mounting) | =B3-1 |
| First riser height (in) | =B1-B2*(B3-1) |
| Total rise H (in) | 105 |
| Number of steps (treads) s | 13 |
| Riser height R (in) | =B1/(B2+1) |
| Tread depth T (in) | 10 |
| Number of steps (treads) s | 13 |
| Total run D (in) | =B1*B2 |
| Total run D (in) | 130 |
| Stringer height K (in) | 97.5 |
| Stringer length L (in) | =SQRT(B1^2+B2^2) |
| Riser height R (in) | 7.5 |
| Tread depth T (in) | 10 |
| Stair angle (degrees) | =DEGREES(ATAN(B1/B2)) |
| Riser height R (in) | 7.5 |
| Tread depth T (in) | 10 |
| Stairwell opening length L_o (in) | 120 |
| Upper floor thickness t_f (in) | 12 |
| Headroom h_c (in) | =B1*B3/B2-B4 |
| Required headroom h_req (in) | 80 |
| Upper floor thickness t_f (in) | 12 |
| Tread depth T (in) | 10 |
| Riser height R (in) | 7.5 |
| Opening length needed L_req (in) | =(B1+B2)*B3/B4 |
"ROUND(value, 0)" rounds to the nearest whole number, "SQRT" is the square root, "ATAN" finds an angle from a slope ratio (the result is in radians), and "DEGREES" turns radians into degrees.
In the first table B3 is 14, B4 is 13 steps and B5 is 7.5 in. In the second table B3 is 7.5 in, in the third 130 in, in the fourth 162.5 in and in the fifth about 36.87 degrees. Just replace the numbers in column B with your own.
The sixth table gives the headroom (B5 is 78 in) and the seventh the opening length needed (B5 is about 122.67 in). Both use the standard mounting. For flush mounting, in the sixth table enter the opening length minus one tread depth in B3, and in the seventh table add one tread depth to the result in B5.
How to calculate it in Google Sheets
| Total rise H (in) | 105 |
| Target riser height R (in) | 7.5 |
| Number of risers n | =ROUND(B1/B2,0) |
| Number of steps (standard mounting) | =B3-1 |
| First riser height (in) | =B1-B2*(B3-1) |
| Total rise H (in) | 105 |
| Number of steps (treads) s | 13 |
| Riser height R (in) | =B1/(B2+1) |
| Tread depth T (in) | 10 |
| Number of steps (treads) s | 13 |
| Total run D (in) | =B1*B2 |
| Total run D (in) | 130 |
| Stringer height K (in) | 97.5 |
| Stringer length L (in) | =SQRT(B1^2+B2^2) |
| Riser height R (in) | 7.5 |
| Tread depth T (in) | 10 |
| Stair angle (degrees) | =DEGREES(ATAN(B1/B2)) |
| Riser height R (in) | 7.5 |
| Tread depth T (in) | 10 |
| Stairwell opening length L_o (in) | 120 |
| Upper floor thickness t_f (in) | 12 |
| Headroom h_c (in) | =B1*B3/B2-B4 |
| Required headroom h_req (in) | 80 |
| Upper floor thickness t_f (in) | 12 |
| Tread depth T (in) | 10 |
| Riser height R (in) | 7.5 |
| Opening length needed L_req (in) | =(B1+B2)*B3/B4 |
How to calculate it in Python
import math
total_rise_in = 105 # total rise (lower floor to upper floor)
tread_in = 10 # tread depth
target_riser_in = 7.5 # target riser height
# number of risers = total rise / riser height, rounded
# Python's round() rounds .5 to the nearest even number, so use floor(x + 0.5) to round half up
num_risers = math.floor(total_rise_in / target_riser_in + 0.5)
steps = num_risers - 1 # number of steps (standard mounting)
first_riser_in = total_rise_in - target_riser_in * (num_risers - 1) # remainder goes into the first riser
total_run_in = tread_in * steps # total run
stringer_height_in = total_rise_in - target_riser_in # stringer height (standard mounting)
stringer_length_in = math.sqrt(total_run_in ** 2 + stringer_height_in ** 2) # Pythagorean theorem
angle_deg = math.degrees(math.atan(target_riser_in / tread_in)) # stair angle
# headroom under a floor that hangs over the stairs (standard mounting)
floor_thickness_in = 12 # upper floor thickness (finished floor to the ceiling below)
opening_length_in = 120 # stairwell opening (edge of the upper floor to the overhanging floor)
headroom_required_in = 80 # headroom you want (IRC: 6 ft 8 in = 80 in)
headroom_in = target_riser_in * opening_length_in / tread_in - floor_thickness_in
opening_required_in = (headroom_required_in + floor_thickness_in) * tread_in / target_riser_in
print(f"Number of steps (treads): {steps}")
print(f"Riser height: {target_riser_in} in (first riser {first_riser_in} in)")
print(f"Total run: {total_run_in} in")
print(f"Stringer height: {stringer_height_in} in")
print(f"Stringer length: {stringer_length_in:.2f} in")
print(f"Stair angle: {angle_deg:.2f} degrees")
print(f"Headroom: {headroom_in:.2f} in")
print(f"Opening length needed: {opening_required_in:.2f} in")
How to write it in LaTeX and other math languages (copy and paste)
n = round(H ÷ R)
n = \mathrm{round}\left( \frac{H}{R} \right)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>n</mi>
<mo>=</mo>
<mi>round</mi>
<mo>⁡</mo>
<mrow>
<mo>(</mo>
<mfrac><mi>H</mi><mi>R</mi></mfrac>
<mo>)</mo>
</mrow>
</mrow>
</math>
n = round(H / R)
Round[h/r]
n := round(H/R);
n = round(H/R);
n = round(H/R)
R = H ÷ (s + 1)
R = \frac{H}{s + 1}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>R</mi>
<mo>=</mo>
<mfrac>
<mi>H</mi>
<mrow><mi>s</mi><mo>+</mo><mn>1</mn></mrow>
</mfrac>
</mrow>
</math>
R = H / (s + 1)
h/(s + 1)
R := H/(s + 1);
R = H/(s + 1);
R = H/(s + 1)
D = T × s
D = T \times s
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>D</mi>
<mo>=</mo>
<mi>T</mi>
<mo>×</mo>
<mi>s</mi>
</mrow>
</math>
D = T * s
t*s
d := T*s;
D = T*s;
D = T × s
L = √(D² + K²)
L = \sqrt{D^2 + K^2}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>L</mi>
<mo>=</mo>
<msqrt>
<mrow>
<msup><mi>D</mi><mn>2</mn></msup>
<mo>+</mo>
<msup><mi>K</mi><mn>2</mn></msup>
</mrow>
</msqrt>
</mrow>
</math>
L = sqrt(D^2 + K^2)
Sqrt[d^2 + k^2]
L := sqrt(d^2 + K^2);
L = sqrt(D^2 + K^2);
L = √(D^2 + K^2)
θ = arctan(R ÷ T)
\theta = \arctan\left( \frac{R}{T} \right)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>θ</mi>
<mo>=</mo>
<mi>arctan</mi>
<mo>⁡</mo>
<mrow>
<mo>(</mo>
<mfrac><mi>R</mi><mi>T</mi></mfrac>
<mo>)</mo>
</mrow>
</mrow>
</math>
theta = arctan(R / T)
ArcTan[r/t]/Degree
theta := arctan(R/T)*180/Pi;
theta = atand(R/T);
θ = arctan(R/T)
h_c = R × L_o ÷ T − t_f
h_c = \frac{R \, L_o}{T} - t_f
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>h</mi><mi>c</mi></msub>
<mo>=</mo>
<mfrac>
<mrow><mi>R</mi><mo>⁢</mo><msub><mi>L</mi><mi>o</mi></msub></mrow>
<mi>T</mi>
</mfrac>
<mo>-</mo>
<msub><mi>t</mi><mi>f</mi></msub>
</mrow>
</math>
h_c = R * L_o / T - t_f
r*lo/t - tf
h_c := R*L_o/T - t_f;
h_c = R*L_o/T - t_f;
h_c = R L_o/T − t_f
L_req = (h_req + t_f) × T ÷ R
L_{\mathrm{req}} = \frac{(h_{\mathrm{req}} + t_f) \, T}{R}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>L</mi><mi>req</mi></msub>
<mo>=</mo>
<mfrac>
<mrow>
<mo>(</mo>
<msub><mi>h</mi><mi>req</mi></msub>
<mo>+</mo>
<msub><mi>t</mi><mi>f</mi></msub>
<mo>)</mo>
<mo>⁢</mo>
<mi>T</mi>
</mrow>
<mi>R</mi>
</mfrac>
</mrow>
</math>
L_req = (h_req + t_f) * T / R
(hreq + tf)*t/r
L_req := (h_req + t_f)*T/R;
L_req = (h_req + t_f)*T/R;
L_req = (h_req + t_f) T/R
How to have ChatGPT do the calculation
You are a stair dimension calculation assistant. Do the following calculation by actually running Python code, and base your answer only on the numbers from the execution result (do not answer by mental math or guessing). I am building stairs with a total rise of 105 inches (from the first floor to the second floor), a tread depth of 10 inches and a target riser height of 7.5 inches. The stringers use the standard mounting (up to one step below the upper floor). Find each of the following: 1. The number of risers = total rise ÷ riser height, rounded to the nearest whole number, and the number of steps (treads) = number of risers − 1 2. The first riser height (total rise − riser height × (number of risers − 1)) 3. The total run (tread depth × number of steps) 4. The stringer length (√(total run² + stringer height²), where stringer height = total rise − riser height) 5. The stair angle (arctan(riser height ÷ tread depth) in degrees) 6. Whether the stairs meet the IRC rules for homes (riser height 7 3/4 inches or less, tread depth 10 inches or more) 7. With a 12-inch thick upper floor and a 120-inch stairwell opening, the headroom (riser height × opening length ÷ tread depth − floor thickness), and the opening length needed for 80 inches of headroom ((80 + floor thickness) × tread depth ÷ riser height) Show the formulas you used and the numbers from the execution result.
How to Use
-
1Enter your numbersType the numbers you want to calculate with into the input fields
-
2CalculatePress the "Calculate" button
-
3Check the resultThe result appears on the spot. The same page also explains the idea behind the calculation and the formula
DataChef Features
No technical knowledge required.
Intuitive and user-friendly operation.
Can be used without registering personal information.
Automatic file deletion by clicking "download".
and rapid file conversion.
No attribution required.
No need to contact us for commercial use permission.
