Snow drift on a lower roof at a step, NBC 2020
The step between a high roof and a low one is where snow loads stop being a lookup and start being a derivation. NBC 2020 Division B, 4.1.6.5 gives you a triangular surcharge whose peak and length both fall out of the geometry, and the parts people get wrong are almost always the source area and the number of wind directions they checked.
What the clause is actually asking for
The balanced load of 4.1.6.2 covers a roof the wind treats uniformly. A step does not qualify. Wind coming over the upper roof drops its load in the lee of the step, and the accumulation factor Ca stops being a single number and becomes a function of distance from the step.
So 4.1.6.5 does not hand you a load. It hands you a shape: a triangle with a peak at the step, falling linearly to the balanced load at a distance xd. Everything in the clause exists to fix those two numbers.
S(x) = Is [ Ss (Cb Cw Cs Ca(x)) + Sr ]
That is the same specified-load expression as the balanced case. The only thing 4.1.6.5 changes is Ca.
Step 1: the snow density
Drift volume has to come from somewhere, so the clause needs a density to convert a depth of accumulated snow into a load. It is a function of the ground snow load alone:
gamma = 0.43 Ss + 2.2, not more than 4.0 kN/m3
Ss comes from NBC Appendix C for the site, not from a nearby city that felt close enough. The cap matters in heavy-snow regions: past roughly Ss = 4.2 kPa, gamma stops climbing and the drift stops getting proportionally heavier.
Step 2: the source area, which is where the mistakes are
The drift is fed by snow blown off an upper surface, so the clause needs to know how much surface is feeding it. That is the characteristic length of the source area:
lcs = 2w - w2 / l
w and l are the width and length of the upper roof measured in the direction the wind is coming from. Two things follow, and both are routinely missed.
- The source area is the roof that sheds the snow, not the roof that receives it. Measuring the lower roof gives a confidently wrong answer.
- w and l swap when the wind direction changes. A rectangular upper roof has two source-area cases, and they do not give the same drift.
Step 3: the peak accumulation factor
The peak is the lesser of two limits: how much snow the step can physically hold, and how much the source area can plausibly deliver.
F = 0.35 beta sqrt( gamma lcs / Ss ) + Cb, not more than 5
Ca(0) = lesser of [ beta gamma h / (Cb Ss) ] and [ F / Cb ], not less than 1.0
The first term is the geometric limit: h is the height of the step, and a drift cannot be deeper than the step it is piling against. The second is the supply limit built from the source area. Whichever runs out first controls.
The floor of 1.0 is not a formality. On a small step with a small upper roof, both limits can land below the balanced case, and the answer is simply that there is no surcharge to add.
| Symbol | What it is | Where it comes from |
|---|---|---|
| Ss | Ground snow load | NBC Appendix C, by location |
| gamma | Snow density | Derived from Ss |
| h | Height of the step | Project geometry |
| lcs | Source area characteristic length | Upper roof w and l, per wind direction |
| Cb | Basic roof snow load factor | Taken as 0.8 for the drift case |
| beta | Source-area coefficient | 1.0, reduced only for a separated higher building |
Step 4: how far the drift runs
xd = 5 Cb Ss ( Ca(0) - 1 ) / gamma
Between the step and xd, Ca falls linearly from Ca(0) to 1.0. Past xd the roof is back to its balanced load. This is the number that decides whether the drift is a local problem at one joist or a load case across half a bay, and it is the one worth sketching before sizing anything.
What this does not cover
Clause 4.1.6.5 as described here is the leeward drift at a step. It is not the whole snow picture for a stepped roof, and the following need their own treatment:
- Snow sliding off the upper roof onto the lower one, which is a separate accumulation and can coincide with the drift.
- The balanced load on the upper roof itself.
- Drifting against parapets, obstructions, and in valleys.
- Unbalanced and partial load cases required elsewhere in 4.1.6.
Cw also deserves a second look. Reduced wind exposure is only available where the clause allows it, and a sheltered lower roof at a step frequently does not qualify.
A short checklist
- Pull Ss and Sr for the actual site from Appendix C.
- Identify the upper roof as the source area, and measure w and l on it.
- Run both wind directions and keep the governing case.
- Confirm the step height h against the architectural section, not the plan.
- Compute Ca(0) and check whether the geometric or the supply limit governed, because that tells you which input to sanity check.
- Compute xd and compare it to the lower roof dimension before you distribute the load.
- Confirm Cw eligibility, then hand the S(x) distribution to the member design.
Common questions
Which roof is the source area, the upper one or the lower one?
The upper roof. It is the surface the wind strips snow from, and w and l in the lcs expression are its dimensions measured in the direction the wind is blowing. Using the lower roof is the single most common error in this calculation.
Do I have to check more than one wind direction?
Yes. A rectangular upper roof presents a different source area to each wind direction, which changes lcs, which changes Ca(0). Evaluate the cases and design for the governing one.
What value of Cb applies to the drift case?
Cb is taken as 0.8 in the drift expressions. Note that this is the basic factor used inside the Ca(0) and xd formulas, and it is not a substitute for confirming the balanced-load factors separately.
Does the drift load act at the same time as the balanced load?
The drift is expressed as an accumulation factor Ca(x) that already includes the balanced case at its tail, where Ca goes to 1.0. You apply the resulting S(x) distribution, not the balanced load plus a separate surcharge on top of it.
What if the lower roof is shorter than the drift length xd?
The triangular distribution is cut off at the roof edge. The load at that edge is Ca(x) evaluated there, which is higher than the balanced load, so the supporting member at the edge sees more than a balanced-load check would suggest.
The tools behind this
CoLateral runs these checks so the arithmetic above is not done by hand each time.
Snow Drift - Lower Roof at a Step
NBC 2020 4.1.6.5 snow drift on a lower roof at a step - peak Ca(0), drift length xd, and the triangular S(x) distribution with code-style visuals.
ToolRoof Snow Load
Computes specified roof snow load per NBC 2020 4.1.6.2 with a full factor-by-factor breakdown.
ToolClimatic Data Map - Canada
Interactive map lookup of NBC 2020 Appendix C climatic and Site Class C seismic values for major Canadian cities.
Keep reading
Web crippling and when you need a bearing stiffener
CSA S16-19 Cl. 14.3.2 web yielding and crippling at reactions and point loads, the N+10t dispersion, and the Cl. 14.4 stiffener screen.
Lateral designStorey drift limits in NBC 2020, and what they protect
The 1, 2 and 2.5 percent interstorey drift limits in NBC 2020 4.1.8.13, the RdRo/IE amplification, and why wind drift is a different question.
Keep the check with the project
CoLateral runs these checks inside a workspace that holds the drawing, the assumption, and the review note that go with them, so the number can still be explained six months later.
Everything here is a design aid. Confirm the governing provisions against the code itself, and have a qualified engineer review the result.