Canadian Snow Load — NBCC 2020 Ground Snow & Roof Snow Loads
Quick Reference: NBCC 2020 Clause 4.1.6 governs snow load design for Canadian steel structures. Ground snow loads S_s range from 0.5 kPa (Vancouver) to 5.0+ kPa (northern Quebec, Rocky Mountains). Roof snow S = I_S × [S_s × (C_b × C_w × C_s × C_a) + S_r]. Drift loads at steps and parapets can be 2-3 times the uniform roof snow.
Snow loading is the dominant gravity load for steel roofs across most of Canada. Unlike the US where snow loads govern regionally, nearly every Canadian structure must consider significant snow accumulation. The NBCC snow provisions account for Canada's unique climate — deep snowpacks, freeze-thaw cycles, and wind-redistribution of snow.
NBCC 2020 Snow Load Equation
The specified snow load on a roof per NBCC 2020 Clause 4.1.6.2:
S = I_S × [S_s × (C_b × C_w × C_s × C_a) + S_r]
Where:
| Symbol | Description | Typical Value |
|---|---|---|
| I_S | Importance factor for snow | 0.80 to 1.25 |
| S_s | 1-in-50-year ground snow load (kPa) | 0.5 to 5.0+ kPa |
| S_r | 1-in-50-year associated rain load (kPa) | 0.1 to 1.5 kPa |
| C_b | Basic roof snow factor | 0.7 (most roofs) |
| C_w | Wind exposure factor | 0.75 or 1.0 |
| C_s | Slope factor | 0.0 to 1.0 |
| C_a | Accumulation factor | 1.0 to 2.5+ |
Ground Snow Load S_s (NBCC Appendix C)
The 1-in-50-year ground snow load varies dramatically across Canada. Values are from NBCC 2020 Appendix C (Climatic Data):
| Province / Region | City | S_s (kPa) | S_r (kPa) | Snow Zone |
|---|---|---|---|---|
| British Columbia | Vancouver | 0.5 | 1.5 | Low |
| British Columbia | Prince George | 2.8 | 0.6 | Moderate-High |
| Alberta | Calgary | 1.2 | 0.1 | Moderate |
| Alberta | Edmonton | 1.8 | 0.3 | Moderate |
| Alberta | Fort McMurray | 2.2 | 0.2 | Moderate |
| Saskatchewan | Regina | 1.4 | 0.2 | Moderate |
| Saskatchewan | Saskatoon | 1.5 | 0.2 | Moderate |
| Manitoba | Winnipeg | 2.0 | 0.3 | Moderate-High |
| Ontario | Toronto | 1.0 | 0.4 | Moderate |
| Ontario | Ottawa | 2.1 | 0.5 | High |
| Ontario | Thunder Bay | 2.7 | 0.5 | High |
| Ontario | Sudbury | 2.9 | 0.5 | High |
| Quebec | Montreal | 2.5 | 0.6 | High |
| Quebec | Quebec City | 3.5 | 0.7 | Very High |
| Quebec | Saguenay | 4.0 | 0.6 | Very High |
| New Brunswick | Fredericton | 2.3 | 0.3 | High |
| Nova Scotia | Halifax | 1.7 | 0.7 | Moderate |
| Prince Edward Is. | Charlottetown | 2.0 | 0.4 | High |
| Newfoundland | St. John's | 2.8 | 1.0 | High |
| Newfoundland | Labrador City | 3.5 | 0.8 | Very High |
| Yukon | Whitehorse | 2.0 | 0.3 | High |
| NWT | Yellowknife | 2.5 | 0.2 | High |
| Nunavut | Iqaluit | 3.2 | 0.3 | Very High |
Rain component S_r is significant in coastal regions (Vancouver S_r = 1.5 kPa, St. John's 1.0 kPa) where rain-on-snow events occur. The total ground snow load is S_s + S_r for design purposes.
Roof Snow Factors
Basic Roof Snow Factor C_b
C_b converts the ground snow load to the uniform roof snow load:
- C_b = 0.7 for most roofs (the basic value)
- C_b = 0.6 for roofs in exposed areas (large roofs with no obstructions)
- C_b = 0.8 for roofs in sheltered areas (surrounded by trees or higher buildings)
The 0.7 factor accounts for the lower density and redistribution of snow on roofs compared to ground. It reflects the fact that roof snow is typically less than ground snow due to wind scouring, melting, and sliding.
Wind Exposure Factor C_w
| Exposure Condition | C_w | Typical Application |
|---|---|---|
| Sheltered — roof in a forest clearing or surrounded by higher buildings | 1.0 | Urban roof below adjacent buildings |
| Normal — typical suburban or urban roof | 0.75 | Most Canadian conditions |
| Exposed — roof in open terrain with no upwind obstructions | 0.5 | Rural buildings, airport terminals |
Wind scouring reduces roof snow loads by removing snow from exposed roofs and depositing it on leeward roofs or in drifts. The lower C_w values in exposed conditions reflect this. However, C_w = 0.5 is combined with higher C_a for drift accumulation areas.
Slope Factor C_s
The roof slope factor accounts for snow sliding off pitched roofs:
| Roof Slope | C_s (slippery surface) | C_s (non-slippery surface) |
|---|---|---|
| Flat to 10° | 1.0 | 1.0 |
| 15° | 0.9 | 1.0 |
| 20° | 0.7 | 1.0 |
| 30° | 0.4 | 0.8 |
| 40° | 0.2 | 0.5 |
| 50°+ | 0.0 | 0.2 |
"Slippery surfaces" include uncoated steel roofing, standing seam metal roofs, and smooth membrane roofing. Non-slippery surfaces include gravel-surfaced built-up roofing, rough tiles, and roofs with snow guards.
For slope > 60°, C_s = 0 only if sliding does not create a hazard for lower roofs, occupied areas, or exits. Otherwise, use the non-slippery value or provide snow guards.
Accumulation Factor C_a
C_a accounts for non-uniform snow accumulation due to drifting, sliding, or building geometry:
| Accumulation Condition | C_a | Notes |
|---|---|---|
| Uniform snow (no drift) | 1.0 | Basic case |
| Drift at roof step (upper roof windward) | 1.0 | Upper roof scoured |
| Drift at roof step (lower roof drift) | 1.5 to 3.0 | Based on S_s and step height |
| Parapet wall drift | 1.25 to 2.0 | Based on parapet height |
| Valley drift (intersecting roofs) | 1.5 to 2.5 | Triangular load distribution |
| Leeward drift (obstruction) | 1.5 to 2.0 | Width of drift = 4h_d |
| Snow sliding from upper to lower | 1.5 to 2.5 | C_s = 0 on upper if sliding |
Drift loads are specified as triangular or trapezoidal distributed loads acting on the lower roof adjacent to the step, parapet, or obstruction. The total drift load width is typically 4 to 6 times the drift height, which is a function of the ground snow load and step height.
Drift Loads at Steps and Parapets
Drift loads per NBCC 2020 Clause 4.1.6.5 are a critical consideration for steel roof design:
Drift Height
h_d = d × (S_s)^(0.5) - 0.5
Where:
- h_d = drift height (m)
- d = snow depth on upper roof (m) = S_s / (3.0 kN/m³ × density factor)
- For typical snow density of 1.5 kN/m³: h_d ≈ 0.8 to 2.0 m
Drift Load Magnitude
The peak drift pressure: p_d = γ × h_d Where γ = density of drift snow = 3.0 kN/m³ (typical drifted snow)
For S_s = 2.0 kPa (Winnipeg), h_d ≈ 1.2 m, p_d = 3.0 × 1.2 = 3.6 kPa — compared to the uniform roof snow S = 1.0 × [2.0 × (0.7 × 0.75 × 1.0 × 1.0) + 0.3] = 1.35 kPa. The drift load is 2.7 times the uniform load.
Drift Load Distribution
The drift load is applied as a triangular distribution:
- Maximum intensity (p_d) at the step/parapet
- Decreasing linearly to zero at distance 4 × h_d from the step
- The drift load is IN ADDITION to the uniform roof snow load
For a roof with a 1.2 m parapet, S_s = 2.0 kPa:
- Uniform load: S_u = 1.0 × [2.0 × 0.7 × 0.75 × 1.0 × 1.0 + 0.3] = 1.35 kPa
- Drift peak load: p_d = 3.6 kPa over a width of 4 × h_d = 4.8 m
- Steel roof girders within the drift zone must be designed for the total load S_u + p_d (triangular) = 1.35 + 3.6 = 4.95 kPa peak
Unbalanced Snow Loads
NBCC 2020 also requires consideration of unbalanced snow loads:
For flat roofs: Consider 100% of the uniform snow load on one half and 50% on the other half. This accounts for wind redistribution during a storm.
For gable roofs (pitch > 10°): Consider full snow load on the leeward side, reduced snow on the windward side. The unbalanced load pattern depends on the roof slope and wind exposure.
Unbalanced snow loads govern the design of:
- Purlins and girts (individual roof members)
- Roof truss diagonals (diagonal members in tension/compression reversal)
- Roof beam bracing (lateral restraint at support points)
- Eave connections (uplift at the windward eave)
Worked Example: Snow Load on a Steel Roof
Problem: Calculate the snow load on a flat steel roof in Ottawa for a Normal importance office building. The roof has a 1.5 m parapet, is in suburban terrain (normal exposure), has a non-slippery membrane roof, and the building is rectangular 40 m × 25 m.
Given:
- Location: Ottawa, ON
- S_s = 2.1 kPa, S_r = 0.5 kPa (NBCC Appendix C)
- I_S = 1.0 (Normal importance)
- C_b = 0.7 (basic roof factor)
- C_w = 0.75 (normal exposure)
- C_s = 1.0 (flat roof)
- C_a = 1.0 (uniform — will add drift separately)
- Parapet height: 1.5 m
Step 1 — Uniform roof snow load:
S_uniform = I_S × [S_s × (C_b × C_w × C_s × C_a) + S_r] = 1.0 × [2.1 × (0.7 × 0.75 × 1.0 × 1.0) + 0.5] = 1.0 × [2.1 × 0.525 + 0.5] = 1.0 × [1.103 + 0.5] = 1.603 kPa
Step 2 — Check if S_minimum applies:
S_min = 1.0 × [2.1 × 0.5 × 1.0 + 0.5] = 1.55 kPa (S_s × 0.5 is the minimum roof load check) Since 1.603 > 1.55, use S_uniform = 1.603 kPa.
Step 3 — Drift load at parapet:
S_s = 2.1 kPa → snow density for drift calculation γ_snow = 3.0 kN/m³
Drift height h_d calculation: First, d = S_s / γ_snow = 2.1 / 3.0 = 0.7 m (snow depth on adjacent area) h_d = d × (S_s)^(0.5) - 0.5 = 0.7 × sqrt(2.1) - 0.5 = 0.7 × 1.449 - 0.5 = 1.014 - 0.5 = 0.514 m
But h_d cannot exceed the parapet height (1.5 m), so h_d = 0.514 m.
Peak drift pressure: p_d = γ_snow × h_d = 3.0 × 0.514 = 1.543 kPa
Drift load width: w_d = 4 × h_d = 4 × 0.514 = 2.06 m from the parapet
Step 4 — Total load on roof (interior zone):
Interior zone (beyond 2.06 m from parapet): total load = 1.603 kPa
Edge zone (within 2.06 m of parapet): total load varies from 1.603 + 1.543 = 3.146 kPa at the parapet to 1.603 kPa at 2.06 m away.
Step 5 — Apply to steel roof beams:
For a roof beam at 3 m spacing, 8 m span (simple), interior zone: w_uniform = 1.603 × 3.0 = 4.81 kN/m M_max = 4.81 × 8.0² / 8 = 38.5 kN·m
For a roof beam at 3 m spacing, 8 m span, within 2.06 m of parapet: w_max = 3.146 × 3.0 = 9.44 kN/m (at parapet end) w_min = 1.603 × 3.0 = 4.81 kN/m (at 2.06 m from parapet)
The beam closest to the parapet must be checked for this trapezoidal loading.
Step 6 — Combined worst case for ULS:
Using NBCC ULS Comb. 4 (Snow principal): 1.25 × D + 1.5 × S
If roof dead load = 1.0 kPa (0.5 kPa deck + insulation + 0.5 kPa mechanical): D_factor = 1.25 × 1.0 × 3.0 = 3.75 kN/m S_factor = 1.5 × 4.81 = 7.22 kN/m (interior) or 1.5 × 9.44 = 14.16 kN/m (drift zone)
Total w_f = 3.75 + 7.22 = 10.97 kN/m (interior) Total w_f = 3.75 + 14.16 = 17.91 kN/m max (at parapet)
This governs over all other load combos for this roof beam.
Rain-on-Snow Events
The S_r component in the NBCC snow load equation accounts for rain-on-snow events, which are common in Canadian coastal and southern regions:
- Vancouver (S_r = 1.5 kPa): Heavy rain on deep snowpack is a real concern. The 1.5 kPa rain component essentially doubles the total snow load from 1.1 kPa (S_s × factors) to 2.6 kPa.
- St. John's (S_r = 1.0 kPa): Nor'easters bring sequential snow and rain, saturating the snowpack to near-water density.
- Interior regions (S_r = 0.1-0.3 kPa): Rain component is minimal and typically does not govern.
For steel roofs, the rain-on-snow condition produces a high-density saturated snow load. Roof drains and scuppers must be designed for the rain-on-snow meltwater volume. Blocked drains add hydrostatic load that may exceed the specified snow load.
Related Pages
- Canada CSA S16 Steel Design Guide — Full CSA S16 design reference
- CSA S16 Load Combinations — NBCC ULS & SLS — Canadian load combination guide
- Canadian Wind Load — NBCC & CSA S16 Reference — Wind load calculation guide
- Canadian Seismic Design — CSA S16 Clause 27 — Seismic design provisions
- Canadian Steel Beam Sizes — W Shapes, HSS — Complete section tables
- Canadian Steel Grades — G40.21 300W to 480W — Material properties
- BEAM Capacity Calculator — Free multi-code beam calculator
- Snow Load Calculator — Free snow load calculator
Frequently Asked Questions
What is the minimum roof snow load per NBCC 2020?
NBCC 2020 Clause 4.1.6.2 requires a minimum roof snow load of S_min = I_S × [0.5 × S_s + S_r]. This applies when the calculated roof snow load C_b × C_w × C_s × C_a is less than 0.5. For example, if S_s = 1.0 kPa and S_r = 0.4 kPa: S_min = 1.0 × [0.5 × 1.0 + 0.4] = 0.9 kPa. This ensures that even roofs with high slope or exposure that would theoretically carry very little snow still have a minimum load for design. The minimum load applies regardless of the slope factor C_s.
How do drift loads affect steel roof beam design?
Drift loads create non-uniform loading patterns that can govern: (1) beams within 4 × h_d of a step or parapet see 2-3 times the uniform snow load intensity; (2) the triangular drift load produces higher shear near the step, potentially governing web shear or stiffener requirements; (3) unbalanced drift patterns can cause differential deflection between adjacent beams, stressing purlin connections; (4) drift loads emphasize the need for continuous load paths through the steel deck diaphragm. Engineers should consider drifts at every parapet, equipment screen, rooftop unit, and adjacent higher roof.
What is the difference between C_b and C_a in the NBCC snow equation?
C_b (basic roof snow factor) accounts for the overall conversion from ground snow to roof snow — it reflects that roof snow is generally less than ground snow. C_a (accumulation factor) accounts for local increases in snow depth due to drifting or sliding. C_b applies uniformly to the entire roof, while C_a applies only to specific zones (drift areas). The basic equation S_u = I_S × [S_s × C_b × C_w × C_s × S_r] gives the uniform roof snow. Drift loads are then superimposed: S_total = S_u + drift load where the drift load uses C_a values of 1.5 to 3.0.
When should snow guards be specified on Canadian steel roofs?
Snow guards (snow retention devices) should be specified when: (1) the roof slope exceeds 1:12 (approximately 5°) and snow sliding would create a hazard for building entrances, walkways, or lower roofs; (2) the roof drains into a valley that could be blocked by sliding snow; (3) sliding snow could damage rooftop equipment or solar panels; (4) the steel roofing is a slippery surface (standing seam metal) and the slope exceeds 3:12. Snow guards are designed for the sliding snow load per NBCC 4.1.6.10, calculated as the component of the snow load parallel to the roof slope. They must be attached to the structural steel (not just the roof deck) for adequate pull-out resistance.
This page is for educational reference. Snow load provisions per NBCC 2020 Division B Clause 4.1.6. Verify ground snow loads against current NBCC Appendix C climatic data applicable to your specific site location. Provincial and territorial building codes may have amendments. Results are PRELIMINARY — NOT FOR CONSTRUCTION without independent P.Eng. verification.