Engineering ASCE 7-16, 7-22

ASCE 7-22 Snow Drift Loads: Leeward and Windward Roof Steps

How to calculate leeward and windward roof step snow drift loads under ASCE 7-22 Section 7.7.1, with W2, truncation, and a worked Kansas City example.

Published 10/15/2026

At a roof step, the drift surcharge is usually the largest snow load on the lower roof, and ASCE 7-22 changed how you find it. The drift height now depends on winter wind, and the windward drift has a different shape than the leeward one, so the old habit of comparing two heights and keeping the taller no longer picks the governing case.

The peak load at the base of a step routinely runs three to four times the balanced roof load, concentrated over the first 10 to 20 ft of the lower roof. That is exactly where joists, girders, and deck are sized, and it is often a light roof sitting against a heavier building. Get the drift too small and the members at the step carry load they were never designed for. Get it too large and you are buying steel the roof never needed.

Not all jurisdictions have adopted ASCE 7-22. Verify the edition in force before applying these provisions.

Two side-by-side elevations of a roof step. Left: wind blowing from the upper roof toward the lower roof forms a leeward drift against the base of the wall, height hd and width 4hd on a 1:4 slope, with the upwind fetch lu along the upper roof and the clear height hc above the balanced snow depth hb. Right: wind blowing across the lower roof toward the wall forms a flatter windward drift, height 0.75hd and width 8 times 0.75hd on a 1:8 slope, with lu along the lower roof.

How wind builds a roof step drift

Once wind passes roughly 10 mph, it picks up loose snow and carries it along the roof surface. At the edge of a step the airflow separates, and the pocket of slow air behind the step drops the snow it was carrying. How much ends up in the drift depends on three things: how much snow is available (), how long a roof the wind sweeps before it reaches the step (the fetch, ), and how often it is windy enough to move snow at all.

ASCE 7-22 added that third variable explicitly. , the winter wind parameter, is the fraction of time from October through April that the wind speed is at least 10 mph (ASCE 7-22 Section 7.1.2).[1,2] In a calm-winter climate, the same roof and the same snow produce a smaller drift than they do on the windy plains.

Wind can come from either side of a step, so there are two drifts to check:

  • Leeward drift. Wind blows from the upper roof toward the lower roof. Snow from the upper roof drops into the aerodynamic shade at the base of the wall. The fetch is the upper roof length.
  • Windward drift. Wind blows from the lower roof toward the wall. Snow from the lower roof piles against the wall face as a ramp. The fetch is the lower roof length, and the ramp is flatter.

Research behind the 7-22 change found that a windward drift traps nearly all of the incoming snow at first, then loses efficiency once the ramp grows tall enough for wind to carry snow over the wall.[3] The code simplifies that into a fixed height ratio and a fixed slope.

The ASCE 7-22 procedure

Step 1: Snow density and the lower roof balanced load

Drift density is unchanged from ASCE 7-16 (ASCE 7-22 Equation 7.7-1):[1]

7.7-1

The flat roof snow load on the lower roof (ASCE 7-22 Section 7.3) sets the balanced snow depth, . The importance factor is gone in ASCE 7-22, because is already a strength-level value for the Risk Category:

7.3-1

For a heated building with an unventilated roof, comes from ASCE 7-22 Table 7.3-3 using roof R-value and . It is no longer a default 1.0. The ASCE 7-22 snow load changes article covers that table in detail.

Step 2: Clear height

The clear height is the distance from the top of the balanced snow on the lower roof to the upper roof: the step height minus . If is less than 0.2, ASCE 7-22 Section 7.7.1 does not require drift loads.

Step 3: Drift height

ASCE 7-22 Equation 7.6-1 gives the drift height directly, with in psf, in ft, and in pcf:

7.6-1

For the leeward drift, is the length of the upper roof upwind of the step. For the windward drift, is the length of the lower roof, and the drift height is (ASCE 7-22 Section 7.7.1).[1]

Edition note: ASCE 7-16 read the drift height from Figure 7.6-1 using , , and , with no wind input and a 20 ft minimum fetch. ASCE 7-22 Commentary C7.7 notes that the new closed-form equation no longer needs that minimum. Depending on , the 7-22 drift can be larger or smaller than the 7-16 drift for the same roof.[4,2]

Step 4: Drift width and shape

Both drifts are right triangles with the tall side against the wall:

DriftHeightWidth, untruncatedSlope
Leeward1:4
Windward1:8

If the drift height exceeds , the drift is truncated: its height is capped at and the width grows to carry the same snow. For the leeward drift, ASCE 7-22 Section 7.7.1 sets , not to exceed .

Edition note: ASCE 7-16 used a 1:4 slope for both drifts, so comparing heights was enough to find the governing one. ASCE 7-22 flattened the windward drift to 1:8 and requires the two drifts to be checked independently for each member.[1,3]

Step 5: Surcharge and superposition

The peak drift surcharge at the wall is , or when truncated. It sits on top of the balanced load , so the peak load at the wall is , tapering linearly to at the end of the drift.

Worked example: one-story addition in Kansas City

A one-story office addition is built against the side of an existing two-story building in Kansas City, Missouri. Both roofs are flat, the addition's joists run perpendicular to the step, and the building is Risk Category II.

Given:

  • Ground snow load, : 30 psf (ASCE 7 Hazard Tool, Risk Category II)[5]
  • Winter wind parameter, : 0.55 (ASCE 7 Hazard Tool)
  • Exposure factor, : 1.0 (partially exposed, Surface Roughness C)
  • Lower roof: heated, unventilated, R-30
  • Upper roof length (leeward fetch): 100 ft
  • Lower roof length (windward fetch): 40 ft
  • Step height, : 10 ft

Step 1: Snow density (ASCE 7-22 Section 7.7.1)

7.7-1

Step 2: Thermal factor and flat roof load (ASCE 7-22 Section 7.3)

from Table 7.3-3 for R-30 at psf.

7.3-1

On this roof the minimum roof snow load governs the uniform case: psf for Risk Category II (ASCE 7-22 Section 7.3.3 and Table 7.3-4) exceeds psf. That is a separate uniform load case, not combined with drift, so the drift below still sits on .

Step 3: Balanced depth and clear height (ASCE 7-22 Section 7.7.1)

, well above 0.2, so drift loads apply.

Step 4: Leeward drift, = 100 ft (ASCE 7-22 Section 7.7.1)

7.6-1

is less than , so the drift is not truncated:

Step 5: Windward drift, = 40 ft (ASCE 7-22 Section 7.7.1)

7.6-1

Also less than , so untruncated:

Step 6: Peak load at the wall (ASCE 7-22 Section 7.7.1)


QuantityLeewardWindward
Fetch, 100 ft40 ft
Drift height3.76 ft2.05 ft
Drift width, 15.1 ft16.4 ft
Surcharge at wall, 67.4 psf36.7 psf
Total at wall, 91.3 psf60.6 psf
Drift load per foot of wall507 plf300 plf

Result: Leeward governs at the wall at 91.3 psf, tapering to 23.9 psf at 15.1 ft. Windward peaks at psf and extends to 16.4 ft.

The leeward drift carries 69% more snow per foot of wall. The windward drift reaches 1.3 ft farther, but only about 3 psf remains at the point where the leeward drift ends, so it does not govern any member on this roof. Flip the geometry to a short upper roof over a long lower roof and the result can reverse.

Load diagram on the lower roof in elevation: a uniform 23.9 psf balanced load across the lower roof, with a triangular leeward drift surcharge of 67.4 psf at the wall tapering to zero at 15.1 ft for a total of 91.3 psf at the wall. A dashed outline shows the windward drift surcharge for comparison, 36.7 psf at the wall tapering to zero at 16.4 ft.

moves the answer as much as does. Holding everything else fixed, here is the leeward drift on this roof across the range of winter wind typical of the Midwest:

(ft) at wall (psf)
0.352.5645.9
0.453.1756.8
0.553.7667.4
0.654.3477.6

Going from 0.45 to 0.65 raises the peak surcharge 37%. Read from the Hazard Tool for the actual site rather than off the map by eye.

Where engineers get this wrong

The fetches get swapped. The leeward drift uses the upper roof length and the windward drift uses the lower roof length. I've caught the reverse in review more than once, usually when the building width in the drift direction was carried into both checks. Draw the wind arrow for each case before you pick .

The governing drift is picked by height alone. Under ASCE 7-16 that worked, because both drifts had the same slope. Under ASCE 7-22 the windward drift is shorter and wider, and Section 7.7.1 requires the two to be checked independently for each member. On the same roof, the joist at the wall can be governed by the leeward drift while a member farther out is governed by the windward one.

The drift is stacked on the wrong base load. The drift surcharge sits on the balanced load , not on the minimum roof snow load . Mixing them up overstates the step load on low-snow roofs, and using the upper roof's to find skews the clear height. It shows up in plan check comments more than it should.

is left at 1.0. For a heated, unventilated roof, ASCE 7-22 Table 7.3-3 gives values from 1.00 to 1.20 depending on R-value and . A higher raises , which raises and shrinks . On a short step that can be the difference between a full drift and a truncated one.

Truncation is applied halfway. When exceeds , cap the height at and widen the drift to (not more than ). Leaving the full in place overloads the step. Capping the height without widening the drift drops snow the code says is there.

A 7-16 workflow carries over. Reading off the ASCE 7-16 figure, applying , or using a 7-16 ground snow load with the 7-22 equation all produce a number that looks plausible and is wrong. Keep , , and the drift equation on the same edition.

Nearby structures are skipped. A lower roof on a separate building close to a taller one can still collect a drift. ASCE 7-22 Section 7.7.2 covers adjacent structures, and parapets, rooftop units, and screen walls on the same roof use the same drift equation under Section 7.8. Engineers I've talked to run into these more often than the simple roof step.

The bottom line

At every roof step, run two drifts: leeward with the upper roof fetch and windward with the lower roof fetch at 0.75 times the height and a 1:8 slope. Use from the Hazard Tool, truncate at the clear height when you need to, superimpose each drift on , and check each member against both. That's the load path the members at the step actually see, and getting it right keeps the roof both safe and economical. If you want that done consistently across every step, parapet, and rooftop unit on a project, that's what Prose is built to do.

Frequently Asked Questions

How do you calculate snow drift height in ASCE 7-22?
ASCE 7-22 Equation (7.6-1) gives hd = 1.5 √(pg0.74 lu0.70 W21.7 / γ), with pg in psf, lu in ft, and the snow density γ = 0.13pg + 14 pcf, not more than 30 pcf. For a leeward roof step drift, lu is the upper roof length. For a windward drift, it is the lower roof length and the height is 0.75hd.
What is the difference between a leeward and a windward snow drift?
A leeward drift forms when wind blows from the upper roof toward the lower roof and drops snow at the base of the step. A windward drift forms when wind blows across the lower roof toward the wall and piles snow against it. Under ASCE 7-22 Section 7.7.1 the leeward drift has height hd and a 1:4 slope, and the windward drift has height 0.75hd from the lower roof fetch and a 1:8 slope.
Which roof step drift governs under ASCE 7-22?
Neither one automatically. ASCE 7-22 Section 7.7.1 requires the leeward and windward drifts to be checked independently for each member. Because the windward drift is flatter and wider, a member at the wall can be governed by the leeward drift while a member farther out is governed by the windward drift.
Where do I find the winter wind parameter W2?
The ASCE 7 Hazard Tool reports W2 alongside the ground snow load for ASCE 7-22. It is the fraction of time from October through April that the wind speed is at least 10 mph. Values in the lower 48 states run from about 0.25 to 0.65.

If you read this provision differently or have run into it applied another way on a real project, reach out at support@prose-eng.com. I'm a practicing engineer, not an infallible one.

Sample report

See a real loads package, fully cited

Wind, snow, seismic, rain — generated across ASCE 7-10/16/22 with every step traced to code.

Review a sample report

References

  1. American Society of Civil Engineers. Minimum Design Loads and Associated Criteria for Buildings and Other Structures(ASCE/SEI 7-22), Selected provisions and commentary. Reston, VA:ASCE, 2022.
  2. O'Rourke, M.(2022). “Snow and Rain Loads in ASCE 7-22, Part 1.” STRUCTURE Magazine. https://www.structuremag.org/article/snow-and-rain-loads-in-asce-7-22/ Background on the winter wind parameter W2 and the ASCE 7-22 drift height equation.
  3. O'Rourke, M.(2022). “Snow and Rain Loads in ASCE 7-22, Part 2.” STRUCTURE Magazine. https://www.structuremag.org/?p=19947 Windward drift trapping efficiency, the 1:8 windward slope, and per-member drift checks.
  4. American Society of Civil Engineers. Minimum Design Loads and Associated Criteria for Buildings and Other Structures(ASCE/SEI 7-16), Selected provisions and commentary. Reston, VA:ASCE, 2016.
  5. American Society of Civil Engineers. ASCE 7 Hazard Tool. https://asce7hazardtool.online/ Design rainfall intensities for 15-min duration storms at applicable return periods by location.
Prose Logo © 2026 Prose Engineering™. All Rights Reserved.