How it works · reviewed 2026-10-19

Methodology & sources

Everything a calculator assumes should be written down. This page is that list.

What our numbers are, and are not

A ✓ on Deckwright means “within the prescriptive table we used”, never “approved”. Only your building department can approve a deck, and many jurisdictions amend these tables.

Deckwright produces material estimates and prescriptive-table checks. It doesn’t engineer structures. The structural values come from the prescriptive deck provisions of the International Residential Code. You choose the edition: 2021 (default, transcribed from the official ICC text and hash-verified) or 2018 (from published reproductions). Each edition is computed only from its own tables. We never mix them. Many US jurisdictions adopt these with amendments. They apply to ordinary rectangular residential decks. They don’t cover hot tubs, roofs or pergolas carrying load, heavy snow, steep or unstable slopes, decks attached to masonry veneer or cantilevered floors, or commercial use. Your building department has the final word.

Decking layout

  1. Courses. Straight layouts use rows parallel to the house: ⌈(covered depth + gap) ÷ (board width + gap)⌉, with the last row ripped. Diagonal layouts use lines at 45°, spaced √2 × (board width + gap) along the edge. Picture-frame layouts add a one-board border on the three open sides and fill the field with straight rows.
  2. Seams. Where a course is longer than the longest stock length, it is split only at joist centerlines. Each candidate pattern keeps every piece within the stock length (including a 1″ trim allowance, and the extra length needed for 45° end cuts on diagonal boards), and keeps interior pieces spanning at least two joist bays where possible. Patterns are chosen in order: no seam shared with the previous course, then the fewest pieces (or the least estimated waste in “least waste” mode), then no seam shared with the course before that.
  3. Buying. All pieces are packed into the selected stock lengths with a best-fit-decreasing cutting-stock heuristic. Each piece goes into an existing offcut if one fits (offcuts under 12″ or 300 mm are scrap); otherwise we open the stock length that gives the best look-ahead utilisation. This is a heuristic, not a guaranteed optimum, and it never under-buys.
  4. Spares. The extra-board percentage (default 5%) is added to the most-bought length.
  5. Fasteners. Face screws: 2 per board per joist crossed, plus 2 per board end at each seam, +5%. Hidden clips: 1 per joist shared by adjacent courses, plus 1 per seam, +5%, plus starter clips for the first course and face screws for the last course and borders.
  6. Seam joists. Every joist that carries a butt seam is counted as doubled. Picture-frame layouts add two joists for border support.

Framing

Every structural check uses one edition’s tables, for your species group and load case. In the 2021 edition the load case is 40 psf live load, or the 50, 60 or 70 psf ground snow table at or above your snow load. Above 70 psf the plan stops. In the 2018 edition only 40 psf is covered. Where a table permits interpolation, we read the more restrictive neighboring column or row instead, so a result can be slightly conservative but never beyond the table.

  • Joists (R507.6): the span is measured from the ledger face to the beam centerline (depth − cantilever − 1½″). 2021: the cantilever limit is read by joist back span (lower of the two bracketing columns; NP cells allow none) and is also capped at ¼ of the back span. 2018: the cantilever limit is by spacing, capped at ¼ of the back span. Auto mode picks the smallest joist that satisfies both span and cantilever. Count = ⌈width ÷ spacing⌉ + 1, plus seam and border joists.
  • Beams (R507.5): 2021: effective joist span = actual span × the Table R507.5(5) factor for your cantilever ratio C/J (next higher C/J row), then the next column at or above that effective span. 2018: there is no factor, so we read the column for span + 2 × cantilever (tributary-equivalent, conservative). Posts are inset up to 12″ (never more than ¼ of the allowed beam span) from each beam end. Auto mode prefers 2-ply beams, the fewest posts, then the shallowest beam, and in 2021 keeps each post within the 160 sq ft the post and footing tables cover. Flush beams must be at least as deep as the joists. Solid-sawn 4x beams appear only in the 2018 table.
  • Posts (R507.4): 2021: maximum height by species, post size, load case and tributary area (next column up; beyond 160 sq ft is not covered). 2018: 4x4 and 4x6 to 8′ (4x4 to 6′-9″ under a 3-ply beam), 6x6 and 8x8 to 14′. Heights run from the top of the footing to the underside of the beam.
  • Ledger (R507.9): at least 2x8, attached to a solid band joist, never to masonry or stone veneer, overhangs, bay windows or open-web trusses. ½″ lag or through-bolt spacing comes from Table R507.9.1.3(1) by joist span and, in 2021, by load case. Lateral load: two 1,500 lb hold-downs within 24″ of the ends, or four 750 lb devices.
  • Decking spacing (R507.7): wood decking on three or more joists: 1¼″ wood at 16″ o.c. perpendicular and 12″ diagonal; 2″ wood at 24″. Composite, PVC and thin hardwood boards follow the manufacturer (R507.2.2).
  • Hard stops: hot tubs, roofs and pergolas, snow loads beyond the selected edition, spans beyond any table, and tributary areas beyond the 2021 tables all produce a “needs design” failure instead of a number.

Footings (R507.3.1)

Required bearing area = tributary area × (load case + 10 psf dead) ÷ presumptive soil bearing (Table R401.4.1). Square side and round diameter are rounded up to the inch, with minimums of 12″ square and 14″ round, and thickness is at least 6″ and at least the projection beyond the post. 2021: the result is never smaller than the published Table R507.3.1 row at or above your tributary area (side, diameter and thickness), and soil above 3,000 psf is treated as 3,000 psf because the table doesn’t extrapolate. Our tests check every cell of the official table for all four load cases.

Concrete volume: a pad (footing area × thickness) plus a pier tube from the top of the pad to 2″ above grade, or one tube if the tube is at least as wide as the footing. Bag yields: 80 lb = 0.60 ft³, 60 lb = 0.45 ft³, 40 lb = 0.30 ft³ (manufacturer data for standard concrete mix). No spillage allowance is added.

Stairs and guards

  • Risers = ⌈total rise ÷ max riser⌉ (7¾″ IRC default), equal heights; treads = risers − 1. Checks: R311.7.5.1 riser, R311.7.5.2 tread, R311.7.1 width, R311.7.8 handrail at 4+ risers, R312.1 guards above 30″.
  • Cut stringers: ≤ 18″ o.c. and a throat of at least 5″, per AWC DCA 6 as reported by Simpson Strong-Tie’s engineering blog. NADRA recommends 12″. Stringer length is the diagonal of the total rise and the total run plus one tread.
  • Balusters: the fewest balusters such that every clear gap ≤ your maximum (default 3¾″, under the 4″ sphere rule of R312.1.3), with gaps evened out across each section.

How the 2021 tables were verified

The 2021 tables R507.3.1, R507.4, R507.5(1)–(5), R507.6, R507.7 and R507.9.1.3(1) were read from the official 2021 IRC on ICC Digital Codes (codes.iccsafe.org, Chapter 5). The joist, post, beam and footing tables were extracted programmatically in the browser and hashed (SHA-256). Our automated tests compute the same hash from our data file and fail if a single cell differs. Three cells are malformed on ICC’s own page (redwood-group (3) 2x8 beams: “604” at 50 psf, “6-22” and “5-20” at 60 psf). For each, we use the value of the next, more restrictive column.

This check found two gaps in our earlier, reproduction-based data, both now fixed. First, the 2021 cantilever and post-height limits are species-specific, and for Douglas fir and redwood/cedar they are lower than the southern pine values we had applied to all species. For example, a redwood 6x6 post carrying 160 sq ft is limited to 9′-7″. Second, the 2021 beam tables use the effective-span factor described above.

2018 data: where reproductions disagree

The 2018 tables come from published reproductions. Where they disagree we use the value marked ✓:

Table / cellValues seenUsed
R507.6, Douglas fir / hem-fir / SPF, 2x6 @ 16″8′-8″ (UpCodes) · 8′-4″ (Delhi Twp. MI handout)8′-4″ ✓ (also the official 2021 value)
R507.6, Douglas fir / hem-fir / SPF, 2x6 @ 24″7′-2″ · 6′-10″6′-10″ ✓ (also the official 2021 value)
R507.6, redwood / cedar group, 2x6 @ 24″7′-0″ · 6′-10″6′-10″ ✓ (also the official 2021 value)
R507.5, southern pine (1) 2x8, joist span ≤ 14′2′-10″ (one transcription) · 3′-10″ (Brainerd MN)3′-10″ ✓ (consistent with the row and with 2021)

If your jurisdiction uses 2018, have its adopted table confirmed. We couldn’t access the official 2018 text.

Prices

We don’t publish prices we can’t source and date. The planner stores the prices you enter on your device only. The cost calculator’s single default, composite materials at $15–$30 per sq ft including substructure, is quoted from Trex’s FAQ and labeled as such.

Testing

The calculation engine has automated unit tests: a hash check of the 2021 tables against the official ICC page, table spot-checks for both editions, every cell of the 2021 footing table, the board layout invariants (seams on joists, no shared seams between adjacent rows, never buying less than is installed, installed length within a few percent of area ÷ pitch), stairs, railings and stain. Every deck-size page is computed by the same engine at build time.

Sources

Spotted an error? We correct promptly and note the change. See about.