CoLateral
Snow loads

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.

5 min read

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.

The factors in Ca(0), and where each one comes from
SymbolWhat it isWhere it comes from
SsGround snow loadNBC Appendix C, by location
gammaSnow densityDerived from Ss
hHeight of the stepProject geometry
lcsSource area characteristic lengthUpper roof w and l, per wind direction
CbBasic roof snow load factorTaken as 0.8 for the drift case
betaSource-area coefficient1.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

  1. Pull Ss and Sr for the actual site from Appendix C.
  2. Identify the upper roof as the source area, and measure w and l on it.
  3. Run both wind directions and keep the governing case.
  4. Confirm the step height h against the architectural section, not the plan.
  5. Compute Ca(0) and check whether the geometric or the supply limit governed, because that tells you which input to sanity check.
  6. Compute xd and compare it to the lower roof dimension before you distribute the load.
  7. 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.

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.