Skip to content
Woodwork Calculator

Methodology

The arithmetic behind every calculator, the sources for each code limit, and the assumptions we had to make. If you can't check a result with a pencil from this page, that's a bug.

Units and rounding

  • All math runs internally in inches and feet at full precision. Rounding happens only when a number is shown.
  • Imperial lengths round to the nearest 1/16″ and reduce to the simplest fraction (8/16″ shows as 1/2″). Longer lengths show feet and inches.
  • Metric lengths show millimetres under one metre and metres to two decimals above it. 1″ = 25.4 mm exactly, 1 ft = 0.3048 m.
  • Angles show to a tenth of a degree. Board feet and volumes show to two decimals.
  • Inputs accept fractions ("7 3/4", "7-3/4"), decimals, and feet-and-inches ("9' 1/2""). Hardwood thickness in quarters ("5/4") reads as a fraction of an inch, which is exactly what quarters mean.

Sources

TopicSource
Stair risers, treads, nosing, width, headroom, handrailsInternational Residential Code 2021, section R311.7
Guards on open sidesInternational Residential Code 2021, section R312.1
Asphalt shingle minimum slopeInternational Residential Code 2021, section R905.2.2
Steep roof definitionOSHA, 29 CFR 1926.500
Cut stringer throat, stair footingsAmerican Wood Council, DCA 6, Prescriptive Residential Wood Deck Construction Guide
Header sizes, joist and rafter spansNot calculated. See IRC tables R602.7, R502 and R802, or AWC span tables.

The IRC is a model code. States and cities adopt it with their own changes, sometimes years later, so your local rules may differ.

Board foot calculator

board feet = T (in) × W (in) × L (ft) ÷ 12
with waste = board feet × (1 + waste %)
cost = with waste × price per board foot

Board feet are figured on the size you enter, so enter nominal or rough sizes the way your yard bills them. One board foot is 144 cubic inches, about 0.00236 m³.

Stair and stair stringer calculators

risers n = round up (total rise ÷ max riser)
riser height r = total rise ÷ n
treads = n − 1
total run = treads × tread depth t
stair angle = arctan(r ÷ t)

If you set the number of risers yourself, that count is used instead of the minimum. The code check compares the riser height, tread depth, nosing and width with the IRC limits above. Handrail and guard notes are triggered at 4 or more risers and at more than 30″ of total rise.

Stringer. The layout places the outside corners of every notch on the top edge of the board, as you would with a framing square. The first riser cut is shortened by the tread thickness ("dropping the stringer").

notch depth = r × t ÷ √(r² + t²)
throat = stock width − notch depth
level cut angle = stair angle; plumb cut angle = 90° − stair angle

Stringer length is measured along the board, from the toe of the bottom level cut to the end of the top plumb cut, which sits against the rim at the last tread. The board to buy is the next standard length (6 to 20 feet) with at least 1″ to spare. Stringers needed = round up (stair width ÷ max spacing) + 1.

Headroom and stairwell opening. The headroom plane runs 80″ above the line through the tread nosings. The minimum opening is the horizontal distance from the top riser back to where that plane meets the underside of the upper floor, using the floor depth you enter.

Deck calculator

Deck length runs along the house and projection runs out from it. Boards run parallel to the house, across joists that run out from the ledger.

board rows = round up (projection ÷ (board width + gap))
linear feet = rows × deck length
boards per row = round up (deck length ÷ stock length)
joists = round up (deck length ÷ spacing) + 1

Boards per row assume whole boards with butt joints landing on joists; waste is added on top. The last row is shown as a rip width when it doesn't come out even. Screws assume two per board at every joist crossing, sold in boxes of 350; hidden clips assume one per crossing. Joist and beam sizes and spans are not calculated: see AWC DCA 6 and your local code.

Rafter calculator

run = span ÷ 2 − ridge thickness ÷ 2
rafter multiplier = √(1 + (pitch ÷ 12)²)
line length = run × multiplier
overhang along the rafter = horizontal overhang × multiplier
plumb cut angle = arctan(pitch ÷ 12); seat cut angle = 90° − plumb cut angle

The birdsmouth seat equals the wall plate width you choose. The calculator flags a seat cut deeper than one third of the rafter depth, a common rule of thumb; follow your engineer or local rules where they differ. Rafter sizes and spans are not calculated.

Roof pitch calculator

pitch (x/12) = rise ÷ run × 12
angle = arctan(rise ÷ run)
slope % = rise ÷ run × 100

When you measure rise and full building span, run is half the span.

Framing calculator

Studs are laid out from one end at the spacing you choose, with an end stud at each end. Common studs that fall inside an opening are removed. Each opening adds two king studs and two jack studs; header length is the rough opening plus 3″. Cripples run at layout spacing above headers and below window sills. Plates are one bottom plate and a double top plate. Header sizes come from IRC tables R602.7(1) and R602.7(2) or an engineer; the calculator doesn't size them.

Board and batten calculator

gaps n = round ((wall width − batten width) ÷ target spacing)
battens = n + 1 (one at each end)
on-center spacing = (wall width − batten width) ÷ n
gap between battens = on-center spacing − batten width

Spacing is evened out so the first and last battens land flush with the wall ends. For exterior siding, boards are laid with a gap and a batten is centred on every seam; the last board is shown as a rip width. Nail counts follow the assumptions stated on the calculator page.

Epoxy calculator

volume (in³) = length × width × depth (round: π × r² × depth)
US gallons = in³ ÷ 231
liters = gallons × 3.78541
resin = total × resin parts ÷ (resin parts + hardener parts)

Waste is added before the split. Layers = round up (total depth ÷ maximum pour depth). The maximum pour depth comes from the product data sheet of your resin, not from us.

Corrections

No corrections yet. When we fix a formula or an assumption, it will be listed here with the date.