How to calculate stairs
Stair design starts with the total rise — the vertical distance from the finished lower floor to the finished upper floor. Everything else is derived from it:
riserCount = round(totalRise ÷ targetRiser) ← never fewer than 2 riserHeight = totalRise ÷ riserCount ← every riser must match treadCount = riserCount − 1 ← upper floor is the "top tread" totalRun = treadCount × treadDepth stringer = √(totalRise² + totalRun²) angle = arctan(totalRise ÷ totalRun)
The IRC residential limits are 7.75 in max riser, 10 in min tread, 3/8 in max variation between any two risers or any two treads, and 6 ft 8 in minimum headroom. Comfort lives in a narrower band: 7 to 7.5 in risers paired with 10.5 to 11.5 in treads.
Common mistakes
- Measuring rise to the subfloor. Always measure to the finished floor surface — flooring thickness on the upper or lower level changes the top and bottom riser heights.
- Letting risers vary. Code allows 3/8 in variation between the largest and smallest riser in the run. Anything more is a trip hazard you will feel every time you walk it.
- Cutting all three stringers from one layout line. Slight saw drift compounds. Mark each stringer individually with a framing square and stair gauges, then test-fit before installing treads.
- Forgetting the top tread is the floor. Number-of-treads is always one less than number-of-risers. Buy treads accordingly or you will end up with an extra board.
