Snow Drift Loads on Roofs: The ASCE 7 Guide
How snow drift loads form at roof steps and parapets, the ASCE 7-22 formula to size them, and where they catch designers off guard.

- ›Drift surcharge loads form where wind deposits snow against a taller wall, parapet, or rooftop unit at a roof step, and they often govern the design of the lower roof.
- ›ASCE 7-22 section 7.7 sizes the leeward drift with hd = 0.43(Lu)^(1/3)(Pg+10)^(1/4) - 1.5 ft, then converts height to load with the snow density formula.
- ›The drift surcharge load stacks on top of the balanced snow load; it does not replace it.
- ›HVAC curbs, parapets on additions, and lower roofs next to taller neighboring sections are the most common places designers miss a required drift check.
- ›You can skip the drift check only when the clear height above the balanced snow is small relative to the balanced snow depth (hc/hb < 0.2).
A roof can pass its balanced snow load check with room to spare and still fail at a single spot: the corner where a lower roof meets a taller wall. Wind does not deposit snow evenly. It scours open, upper surfaces and dumps that snow against the first obstruction it meets, whether that is a parapet, a two-story wall, or a bank of rooftop HVAC units. ASCE 7-22 section 7.7 requires a drift surcharge check anywhere that pattern can happen, and the resulting load, concentrated in a triangular pile against the wall, is frequently larger than the balanced load spread across the rest of the roof. This guide covers how drifts form, how to size them, and where they most often catch designers off guard.
Where roof drifts actually form
Three conditions create a drift, and all three show up constantly in ordinary construction. The first is a roof step: a single-story wing or garage built against a two-story house, or a lower addition tacked onto an existing building. Wind sweeping across the taller upper roof picks up loose snow and drops it right where the roof drops in elevation. The second is a parapet wall, common on flat commercial roofs, which acts like a small dam and traps blowing snow along its inside face. The third is rooftop equipment: mechanical units, screens, and continuous curbs tall enough to disturb the wind stream create a wind shadow just like a parapet does, and a long bank of units can generate a surprisingly large drift along its downwind edge.
Any of these can occur on the same building at once, and ASCE 7 treats each qualifying condition as its own drift check. The upper surface feeding the drift does not have to be a roof at all; a taller adjacent wall or even a nearby structure can be the source, as long as it is close enough to the roof being checked.
How ASCE 7 sizes a drift
Section 7.7 gives a formula for the leeward drift height, the pile that forms downwind of the tall obstruction, since it is normally larger than the windward drift on the upwind side: hd = 0.43 x (Lu)^(1/3) x (Pg + 10)^(1/4) - 1.5 ft.
Lu is the length of the upper roof or wall that feeds the drift, in feet. Pg is the ground snow load, in psf. The formula grows slowly with Lu, since it is a cube root, but tracks the local snow climate more directly through Pg. Once you have the drift height, you need a density to turn it into a load, because a foot of drifted snow is denser than a foot of fresh powder; it has already been packed by wind. ASCE 7-22 uses gamma = 0.13 x Pg + 14, capped at 30 pcf, the same density formula used for the balanced snow load. Multiply the drift height by that density to get the drift surcharge load: pd = hd x gamma.
That surcharge sits directly on top of the balanced load Pf across the drift's footprint. It is not a substitute for the balanced case; the roof has to carry both at once, tapering from the full drift value at the wall down to the balanced load some distance away, per the geometry rules in 7.7.1.
Worked example: a garage roof against a two-story wall
Say a single-story garage addition sits against the two-story wall of an existing house in a location with a ground snow load Pg of 50 psf. The upper wall and roof feeding the drift run Lu = 40 ft. Plug those numbers into the leeward drift formula: hd = 0.43 x (40)^(1/3) x (50 + 10)^(1/4) - 1.5.
40^(1/3) is about 3.42, and 60^(1/4) is about 2.78. Multiplying through: 0.43 x 3.42 x 2.78 = 4.09, then subtract 1.5 to get hd = 2.6 ft. That is the height of the triangular drift measured from the lower roof surface.
Next, find the snow density: gamma = 0.13 x 50 + 14 = 20.5 pcf, well under the 30 pcf cap. The drift surcharge load is pd = 2.6 x 20.5, or about 53 psf.
That 53 psf load sits on top of whatever balanced flat-roof load the garage roof already carries, concentrated in a triangular strip against the house wall and tapering off toward the open edge of the garage roof. If the garage's balanced design load were, say, 35 psf, the peak combined load at the wall would run close to 88 psf, more than double what the rest of the roof sees. That difference is exactly why a drift check can drive rafter or truss sizing even when the balanced case looks comfortable.
Drift height across common Pg and Lu combinations
The two inputs that move the needle most are the ground snow load and the length of the upper roof or wall. Higher Pg means denser, heavier snow; longer Lu means more fetch for wind to collect snow before it drops. The table below runs the formula across a spread of realistic combinations, from a modest suburban roof step to a long commercial parapet run in a heavy snow region. Notice how the surcharge load pd climbs faster than the drift height alone, because higher Pg also raises the snow density used in the load calculation. A relatively short 20 ft upper roof in a 20 psf snow region produces a manageable 20 psf surcharge, while an 80 ft parapet run in a 90 psf region pushes past 110 psf, on top of the balanced load.
Where drifts catch designers off guard
Three spots account for most of the drift checks that get missed or underestimated. Rooftop HVAC curbs and screens are the biggest one: they are easy to treat as minor equipment rather than a wind obstruction, but a continuous curb or a row of packaged units running 20-30 ft can generate a drift height of several feet, loading the roof structure right where it is often thinnest, around a curb opening.
Parapets on additions are the second: when a new single-story wing goes up next to an existing taller building, the parapet or wall of the original structure becomes a drift source for the new roof, and it is easy to size the addition's framing off the balanced load alone. The third is lower roofs on multi-level houses and light-frame additions, where a garage, porch, or bump-out roof sits below a taller main roof. Homeowners rarely think of a garage roof as needing anything beyond standard rafter tables, but if it sits against a taller wall in real snow country, the drift case can govern its design. In all three cases, the fix is the same: identify every place a roof surface meets something taller, and run the section 7.7 check there, not just on the building's main roof planes.
Do I need to check drift on every roof?
Not every roof step needs a drift check. ASCE 7-22 allows you to skip it when the clear height above the balanced snow surface is small relative to the balanced snow depth, expressed as hc/hb < 0.2. In plain terms: if the step down to the lower roof is barely taller than the snow already sitting there, there is not enough clear height for a meaningful drift to form, and the balanced load governs on its own. Once that ratio climbs above 0.2, though, section 7.7 requires the check, and the drift almost always adds load rather than removes it. Given how easy the calculation is to run once you have Pg and Lu, most engineers check it by default on any roof with a step, parapet, or tall rooftop obstruction rather than trying to prove the exemption applies.
How is drift different from a balanced snow load?
A balanced load assumes snow sits evenly across the whole roof at a uniform depth, which is a reasonable approximation on a simple, unobstructed roof plane. A drift load assumes the opposite: wind has redistributed snow unevenly, stripping it from one area and piling it against another. Balanced loads are checked everywhere; drift loads are checked only at the specific locations, roof steps, parapets, and rooftop obstructions, where that redistribution can happen. The two are combined, not chosen between: at a drift location, the roof carries the balanced load everywhere the drift does not reach, and the balanced load plus the drift surcharge where it does. That is why drift checks tend to concentrate structural demand into small, specific areas rather than raising the load across an entire roof.
| Ground snow load Pg (psf) | Upper roof length Lu (ft) | Drift height hd (ft) | Snow density gamma (pcf) | Surcharge load pd (psf) |
|---|---|---|---|---|
| 20 | 20 | 1.2 | 16.6 | 20 |
| 30 | 30 | 1.9 | 17.9 | 33 |
| 50 | 40 | 2.6 | 20.5 | 53 |
| 70 | 60 | 3.5 | 23.1 | 82 |
| 90 | 80 | 4.4 | 25.7 | 112 |
Get your design roof snow load in seconds with the free ASCE 7-22 calculator.
Open the calculatorFrequently asked
01Does a drift check apply to a small HVAC curb?+
Yes, if the curb or unit is tall enough and long enough to create a wind shadow. ASCE 7-22 does not set a minimum size exemption for rooftop equipment; a continuous curb or a row of units running even 15-20 ft can be treated as the upper surface (Lu) feeding a drift onto the surrounding roof. Isolated small units create a smaller, more localized drift check under a separate provision, but they are not automatically exempt.
02Which direction does the drift form, upwind or downwind of the tall wall?+
The larger, governing drift almost always forms on the leeward (downwind) side of the taller surface, which is the case the hd formula above calculates. ASCE 7-22 also requires checking a smaller windward drift for wind blowing the opposite direction, since wind direction is not fixed. In practice the leeward case controls the design in most residential and light commercial situations.
03Does drift load replace the balanced snow load or add to it?+
It adds to it. The drift surcharge pd sits directly on top of the balanced load Pf at the drift location. The combined load tapers from full drift height at the wall down to just the balanced load over a horizontal run set by ASCE 7-22's drift width rules, typically several times the drift height.
04Can I estimate my own roof's drift risk without an engineer?+
You can get a solid planning estimate with the RoofHelm snow drift calculator, which runs the section 7.7 formulas for your ground snow load and roof geometry. For a permit-ready calculation, or if the drift interacts with an unusual roof shape, a licensed engineer should confirm the final numbers, since actual site wind exposure and roof geometry can vary the details.