In Ontario, a header (lintel) over a loadbearing opening is sized from Ontario Building Code 2024 Tables 9.23.12.3.-A to -D. For the typical exterior wall carrying roof + ceiling at 2.0 kPa specified snow, a 2-ply 2×8 SPF No.1/No.2 spans a maximum of 1.80 m (5 ft 10-7/8 in) and a 2-ply 2×10 spans 2.20 m (7 ft 2-5/8 in) (Table 9.23.12.3.-C). Minimum end bearing is 38 mm for spans up to 3 m, 76 mm beyond (table note (4)); glulam always needs 89 mm. Extra plies do not increase these table spans.
A carpenter sizing the header over a new patio door or kitchen pass-through is not eyeballing 2×8s versus 2×10s — the Ontario Building Code 2024 gives hard numbers in Section 9.23.12.3 and the tables are organized differently from the beam tables framers are used to. Here is how to walk the columns correctly, pick the right species table, land the header on enough bearing, and recognize when a 2× lintel stops being enough and an LVL or engineered beam has to take over. Every figure below was checked against the 2024 Building Code Compendium (amended January 16, 2025) and verified by a Red Seal Carpenter (Ontario CofQ) on April 15, 2026.
Every lintel span in Tables 9.23.12.3.-A through -C is indexed along the top by specified snow load in kilopascals — 1.0, 1.5, 2.0, 2.5, and 3.0 kPa. That single column choice can drop your allowable span by roughly a third from left to right. According to OBC 9.4.2.2, the specified snow load is S = CbSs + Sr — ground snow and rain values from MMAH Supplementary Standard SB-1, "Climatic and Seismic Data" — and it is never less than 1.0 kPa. Your municipal building department will give you the number for your site over the phone. Using the wrong column is one of the most common header mistakes in framing: a 2-ply 2×10 SPF at 4.9 m tributary spans 2.88 m (9 ft 5-3/8 in) in the 1.0 kPa column but only 2.01 m (6 ft 7-1/8 in) at 2.5 kPa — almost three feet of opening lost for nothing but picking the wrong column. Confirm the snow load first, then walk into the table.
The left-hand column of each lintel table lists six loading scenarios and they all give different spans: Limited attic storage and ceiling (the Interior Walls column — a loadbearing interior wall, like the centre wall of a bungalow), Roof and ceiling only, 0.6 m tributary (gable end walls where no rafters bear — just a 0.6 m strip of roof), Roof and ceiling only, 4.9 m tributary (the normal case — an exterior wall that rafters or trusses actually bear on), Roof, ceiling and 1 storey, 2 storeys, and 3 storeys. A 2-ply 2×10 SPF No.1/No.2 at 2.0 kPa snow spans 2.20 m under roof-and-ceiling only, 1.89 m with 1 storey above, 1.72 m with two, and 1.62 m with three. Picking the right row means looking up through the ceiling — floor joists running perpendicular across the top plate put you in a "+1 storey" row minimum. One thing the tables do NOT cover: truly non-loadbearing walls. Per OBC 9.23.12.1.(1), an opening in a non-loadbearing wall needs only 38 mm material the same width as the studs — no sized lintel at all. The "Interior Walls" column is for loadbearing interior walls, not partitions.
The OBC publishes three lumber lintel tables — Douglas Fir-Larch (Table -A), Hem-Fir (Table -B), and Spruce-Pine-Fir (Table -C) — all at No.1/No.2 grade, the stamp on ordinary framing lumber. Counter-intuitively, SPF posts the longest lintel spans of the three in most cells: at 4.9 m tributary, 2.0 kPa, a 2-ply 2×10 spans 2.20 m in SPF, 2.13 m in Hem-Fir, and 2.03 m in D.Fir-L. That is why you pick the table by the stamp, not by reputation — grab a board off the pile and read it. If the stamp shows a species group with no lintel table (Northern Species, for example), the OBC gives you no span to use: swap the lumber for a listed group or have the member engineered — do not borrow a discounted value from another table.
What about 3-ply and 4-ply headers? Tables -A/-B/-C list 2-ply (2-38 mm) lintels only, and the code grants no span increase for a third or fourth ply under those tables. If you need more span there are exactly two Part 9 paths: (1) structural sheathing — minimum 9.5 mm structural panel to CSA O121/O151/O325/O437.0, fastened per Table 9.23.3.5.-A — lets you increase the table span by 15% (table note (1)); or (2) 3-, 4- and 5-ply lintels supporting roof and ceiling only are covered by a separate table, 9.23.4.2.-L (minimum 76 mm bearing) — the calculator shows the smallest one under “Other ways to frame it”. Otherwise: deeper member, glulam, LVL, or an engineer. A single piece of 89 mm lumber may replace the two 38 mm plies (note (2)).
OBC 9.23.12.2.(2) is specific about how lintel plies lock together: 82 mm (3-1/4″) nails in a double row, with nails not more than 450 mm apart in each row. Short nails, a single row, or 600 mm spacing do not satisfy the code — the plies will not share load and the lintel deflects like individual members. Every opening gets a king stud each side running full height plate-to-plate, with the jack stud nailed to the king's face carrying the header down to the bottom plate. OBC 9.23.10.6 sets the count by lintel length: up to 3 m long the studs are doubled (one jack plus the king each side); over 3 m they are tripled (two jacks plus the king). Above the header, cripples run from the header top to the top plate on the regular stud layout (16″ or 24″ o.c.) so sheathing and top-plate attachment stay continuous.
Every span in Tables 9.23.12.3.-A through -C is clear span between supports — the rough opening is the clear span plus two bearing lengths. Note (4) to the tables sets the minimums: 38 mm of bearing at each end for lintel spans up to 3 m; 76 mm for spans greater than 3 m. Glulam lintels always need at least 89 mm (note (2) to Table -D). LVL and PSL follow the manufacturer's bearing length, not the sawn-lumber rule. The code is fussy here because of crushing: a header on minimal bearing funnels the entire roof and snow load through a small patch of cross-grain wood fibre. Short bearing shows up as settlement, drywall cracks above the corner of the opening, and doors that stop latching a winter later. Doubled jacks on wider openings give you 76 mm of bearing (two 38 mm members) automatically.
Once the 2-2×12 row fails your opening, sawn lumber is done. If — and only if — the wall carries roof and ceiling load only, you can move to glulam under Table 9.23.12.3.-D: 20f-E stress grade, widths of 80 mm or 130 mm, depths 304 to 532 mm, spans up to 8.44 m at 1.0 kPa and 2.4 m supported length. Table -D does not cover walls with storeys above — a mistake that will fail inspection and can genuinely undersize the beam. For those walls, or any point load (a post landing from the storey above, a girder flush-framing into the lintel), you are outside the Part 9 tables and the answer is LVL from a manufacturer's stamped span chart or a P.Eng.-designed beam. LVL is not in the OBC at all — every manufacturer publishes its own chart by snow region, with its own bearing and fastening rules. A stamped drawing covers the builder, the client, and the inspector; a header that sags 20 mm at mid-span costs far more to fix once the drywall is on.
Sizing the joists that land on this header? Run the OBC Framing Span Calculator next, or the Beam Span Calculator for the built-up beam under the floor. The full set of free Ontario Building Code calculators lives on the OBC tools hub. And if you're framing for pay — quoting jobs, tracking crew hours, invoicing the client when the header's in — ToolFluency for Ontario contractors runs your timesheets, jobs, and invoices for one flat price.
Per OBC 2024 Table 9.23.12.3.-C, a 2-ply 2×8 SPF No.1/No.2 lintel under roof + ceiling at 4.9 m tributary and 2.0 kPa snow spans 1.80 m — a 6 ft (1.83 m) opening fails by 30 mm.
By the ToolFluency team · Updated October 2026
What size header for your opening? Get the smallest 2-ply 2×, multi-ply or glulam lintel per OBC 2024 Table 9.23.12.3, with bearing, jack studs and a permit-ready printout.
Part of ToolFluency’s library of free online tools for Ontario Building Code. No account needed, no data leaves your device.