Building deck stairs is one of the most common — and most intimidating — DIY deck projects. The math matters: wrong rise or run means stairs that feel awkward, fail inspection, or are outright dangerous. This guide walks through the complete process from measurement to installation.

Calculate your stair dimensions →

Enter total rise and tread depth for IBC-compliant stringer measurements.

Measuring total rise

Total rise is the single most critical measurement in stair building. Get it wrong and every step will be off.

Use a straight board and a level extending from the deck surface out over the landing area. Measure the vertical distance from the bottom of the board down to the ground. That's your total rise.

Calculating your stairs

The target rise per step is 7.5 inches. The IBC maximum is 7.75 inches. Anything over that fails code; anything under about 6 inches feels uncomfortably shallow.

Worked example: 36-inch deck height.

Number of steps: 36 ÷ 7.5 = 4.8 — round to 5 steps.

Actual rise per step: 36 ÷ 5 = 7.2 inches. That's within code and comfortable.

For the run, use a minimum tread depth of 10 inches. Most builders use 10.5 inches (which fits a standard 2×12 minus the nosing).

Total run: (5 − 1) × 10.5 = 42 inches. That's the horizontal distance from the deck face to the front of the bottom tread. You need 4 tread surfaces because the deck itself serves as the top step.

Marking and cutting stringers

You'll need a framing square and a set of stair gauges (small brass clamps that attach to the square). Set one gauge at the rise (7.2") on the tongue and the other at the run (10.5") on the blade.

Step-off method

Place the square on the stringer board (a straight 2×12) with both gauges touching the edge. Mark the rise and run lines. Slide the square along the board, aligning the previous run mark with the new rise position. Repeat for each step.

Cutting

Installation

Common mistakes

Use the Stair Stringer Calculator →

Enter your total rise and tread depth. Get rise per step, number of steps, stringer length, and code compliance check.