A solar array in Minnesota or upstate New York does not fail from snow weight alone very often. It fails from decisions engineers make before the first snowfall: tilt angles picked for summer yield instead of winter shedding, row spacing that ignores a snow-covered front row blocking the row behind it, or a foundation sized off a generic load table instead of the site’s actual ground snow load. None of that shows up in a PVsyst yield report. It shows up in February.

Direct answer. Solar design for snow-load regions starts with the site-specific ground snow load from ASCE 7 (Chapter 7), converted to a roof or structural snow load using exposure, thermal, and slope factors. Row spacing needs extra margin beyond standard shading calculations because a snow-covered front row blocks low winter sun differently than a bare row. Steeper tilt angles shed snow faster but add wind load and cost. Racking and foundations near roof edges, parapets, and valleys need drift load checks, not just uniform snow load, because drift can be 2 to 4 times the flat-roof design value in a narrow band.

This guide is for engineers and EPCs sizing residential, commercial rooftop, and ground-mount arrays in cold-climate US states: Minnesota, Wisconsin, upstate New York, Massachusetts, Colorado, and similar. It does not give you a state-by-state snow load table, because those numbers change by county and even by site elevation. It gives you the calculation framework and the design decisions that actually change with snow load, so you know what to check and what to hand your structural engineer.

TL;DR
Ground snow load comes from ASCE 7 Chapter 7 site-specific maps or the online ASCE Hazard Tool, not a national average. Roof/flat snow load applies exposure (Ce), thermal (Ct), and importance (Is) factors to that ground value. Row spacing for cold climates should add margin beyond a standard shading study because snow accumulation on the front row edge changes the shading geometry it did not have in summer. Tilt angles above 30 to 35 degrees shed snow faster on module surfaces but increase wind load, so the tradeoff has to be checked, not assumed. Roof edges, parapets, and valleys carry drift loads well above the uniform design value and need separate calculation per ASCE 7 Section 7.7 and 7.8.

How ground snow load is determined under ASCE 7

ASCE 7-22, the American Society of Civil Engineers’ Minimum Design Loads and Associated Criteria for Buildings, sets snow load provisions in Chapter 7. Ground snow load (p_g) is a site-specific value taken from the ASCE 7 Hazard Tool or a state/county map, not a flat regional figure. Two sites 40 miles apart at different elevations can have meaningfully different p_g values.

From ground snow load, the code derives a flat-roof snow load using this general relationship:

p_f = 0.7 x Ce x Ct x Is x p_g

Where:

  • Ce (exposure factor) accounts for wind exposure of the site. Fully exposed sites get partial credit because wind scours snow off; sheltered sites get less credit.
  • Ct (thermal factor) accounts for how much heat loss through the roof melts snow from below. An unheated structure has a higher Ct than a heated building.
  • Is (importance factor) scales load based on the building’s risk category.

For sloped surfaces like tilted PV modules, a slope factor further reduces the load as tilt increases, because snow slides off a steeper surface faster than it does off a flat one. ASCE 7-22 also added PV-specific provisions covering arrays elevated above a roof deck, since the gap between the roof and the panel bottom changes how snow drifts and slides compared to a solid roof surface.

None of these factors are universal constants. A racking package stamped for a site in Duluth cannot be reused on a site in Denver even at the same nominal ground snow load, because exposure and thermal conditions differ. Every structural calculation report submitted to an AHJ needs to state the specific ASCE 7 edition, the ground snow load value used, and the source (map or site-specific study) it came from.

Row spacing: why standard shading math undersells the snow problem

Row spacing in most design software is calculated for worst-case winter sun angle shading, the classic December 21 solstice check. That math assumes a bare module surface at ground level. In snow regions, two things change that assumption:

  1. Snow accumulation raises the effective obstruction height. A front row with 8 to 12 inches of settled snow along its lower edge is a taller obstruction than the bare row the shading study modeled. On low-tilt ground-mount arrays with tight spacing, this can push shade onto the row behind further into the morning and afternoon than the model predicted.
  2. Snow reflectance changes near-field irradiance, not just shading geometry. Fresh snow has an albedo commonly cited in the 0.8 to 0.9 range versus roughly 0.2 for bare ground, according to NREL bifacial and albedo modeling guidance (2021). That is good news for bifacial gain on clear winter days, but it does not offset a shaded front-of-row losing production for days after a storm until it clears.

The practical fix is not a universal spacing multiplier, because ground slope, tilt angle, and local snow depth all vary by site. What we do on cold-climate ground-mount projects is model the shading study with an added snow-height buffer at the front-row lower edge, typically informed by the site’s historical snow depth data, then re-run the loss calculation at that adjusted geometry. If the added row spacing pushes ground coverage ratio (GCR) low enough to hurt the project economics, the alternative is a steeper tilt angle that sheds faster, discussed next, rather than accepting the yield loss silently.

Tilt angle: shedding speed versus wind and cost

Tilt angle in a snow region is a three-way tradeoff between shedding speed, wind load, and racking cost.

  • Shallow tilt (10 to 20 degrees): Common for ground coverage ratio optimization in fixed-tilt utility arrays. Snow sheds more slowly and can sit on the array for days after a storm, especially wet, heavy snow that clings to a low-angle surface. This is the tilt range where the extra row-spacing buffer discussed above matters most.
  • Moderate tilt (25 to 35 degrees): The most common range for residential and commercial rooftop in northern states, and it balances shedding speed against wind uplift reasonably well.
  • Steep tilt (above 35 degrees): Sheds snow fastest once the module surface warms slightly above freezing or gets enough direct sun to loosen the bond, but a steeper array presents more surface area to wind, which raises uplift and racking cost per ASCE 7 Chapter 29 and 30 wind provisions. On tracker systems, some designs use a steep stow angle specifically as a snow-shedding position between operating cycles, though the stow-position wind load still has to be checked under the Tracker Load Envelope framework.

There is no universal “correct” tilt for snow shedding. The right answer depends on the specific site’s snow load, wind exposure, and whether the project is optimizing for annual yield or for minimizing snow-related downtime. A rooftop residential system in Massachusetts with limited roof space is going to prioritize yield-optimized tilt and accept some snow downtime; a utility-scale array in a heavy snow belt may accept a yield penalty from steeper tilt to cut the number of snow-loss days per season.

Racking and foundation sizing for snow load

Racking and foundation design in a snow region has to carry both the uniform flat-roof or ground-mount snow load and, where applicable, drift load. A few points that come up repeatedly in structural review comments on cold-climate projects:

  • Dead load path. The snow load calculated per ASCE 7 Chapter 7 adds directly to the racking’s structural dead and live load path, same as it would for a building roof. For rooftop arrays, this load stacks on top of the existing roof structure’s design capacity, so the structural review has to confirm the roof was designed (or can be verified) to carry the added weight, not just the racking itself.
  • Ground-mount pile embedment. For pile-foundation ground-mount systems, snow load adds to the vertical and, on tilted arrays, the overturning moment the pile has to resist. In heavy snow belt sites, this can be a meaningful fraction of total structural load, not a minor addition, particularly on lower-tilt fixed arrays where snow can accumulate along a long module edge.
  • Ballasted rooftop systems. Ballasted racking depends on dead weight for wind resistance, but that same dead weight has to be checked against the roof’s total load capacity once snow load is added. A ballast layout sized purely for wind uplift without rechecking total roof dead load under snow conditions is a common source of plan review rejections in northern jurisdictions.

Drift loading near roof edges and parapets

Uniform snow load is only part of the calculation. ASCE 7 Section 7.7 (roof step drift) and 7.8 (parapet drift) require a separate check anywhere snow can pile up against an obstruction: a parapet wall, an adjacent taller roof section, or an HVAC unit near the array. Drift loads in these zones can run substantially higher than the uniform flat-roof value, because wind deposits snow in a concentrated band rather than spreading it evenly.

For rooftop arrays, this matters directly if racking rows sit close to a parapet or a roof step. A row of panels installed in a drift zone without an adjusted local load check is carrying a structural risk the general roof calculation did not cover. The fix is straightforward on paper: identify drift-prone zones during the site survey, pull them out of the uniform load calculation, and apply the drift-specific provisions to that zone’s racking and attachment points. It gets missed in practice when the structural calc is done off a satellite image and roof plan without a site walk that flags parapet height and step locations.

What most EPCs get wrong on snow-region projects

The most common mistake we see is treating snow load as a single number pulled from a national map and applied uniformly across a project. Ground snow load is site-specific, exposure and thermal factors change it further, and drift loads near edges and parapets can be several times higher than the field average. A structural package that applies one flat snow load value across an entire roof or site, without checking edge and drift conditions separately, is the kind of shortcut that produces an AHJ rejection or, worse, an underdesigned racking section that never gets caught in review at all.

The second common miss is optimizing tilt angle purely for annual kWh yield without modeling snow-related production loss. A tilt angle that adds 2 percent annual yield on paper can lose more than that in downtime after a single heavy storm if the array sheds slowly. The right approach models both the yield curve and a snow-loss estimate side by side before locking the tilt angle, not after.

Practical checklist before you finalize a cold-climate design

  1. Pull the site-specific ground snow load (p_g) from the ASCE 7 Hazard Tool or the adopted state/local map, not a rounded regional estimate.
  2. Confirm exposure (Ce), thermal (Ct), and importance (Is) factors match the actual site and building conditions, and document the ASCE 7 edition used.
  3. Add a snow-accumulation buffer to the standard row-spacing shading study on low-tilt fixed arrays in heavy snow belt locations.
  4. Model tilt angle tradeoffs (shedding speed versus wind load and cost) rather than defaulting to a yield-optimized angle.
  5. Flag drift-prone zones (parapets, roof steps, adjacent structures) during the site survey and calculate them separately under ASCE 7 Section 7.7 and 7.8.
  6. Verify ballasted rooftop dead load, once snow load is added, still sits within the roof’s total load capacity.

If you want to see how this calculation flow looks in a finished package, our sample design package includes a structural calculation example. For a project in a specific snow belt jurisdiction, our team can review the site conditions and confirm which load path decisions actually move your racking cost.

Frequently asked questions

What is ground snow load versus roof snow load? Ground snow load (p_g) is the baseline value from ASCE 7 site-specific maps or the Hazard Tool. Roof or flat snow load (p_f) applies exposure, thermal, and importance factors to that baseline, and a further slope factor applies for tilted surfaces like PV modules.

Does a steeper tilt angle always mean less snow-related downtime? Generally yes for shedding speed, but steeper tilt increases wind uplift load and racking cost, and the actual benefit depends on snow type. Wet, heavy snow can cling to a steep surface almost as long as a shallow one until it warms.

Do bifacial modules perform better in snow regions? Fresh snow’s high albedo (commonly cited around 0.8 to 0.9 versus roughly 0.2 for bare ground) can boost rear-side gain on clear days once the ground around the array is snow-covered, according to NREL bifacial modeling research. That benefit only applies once the array itself has shed snow and is producing.

Do I need a separate drift load calculation for every rooftop project? Only where an obstruction exists that can cause snow to pile up unevenly, such as a parapet, roof step, or adjacent taller structure. A flat, unobstructed roof with no parapet above roof level typically only needs the uniform flat-roof snow load, but the site survey should confirm that before assuming it.

Can I reuse a structural calculation package from one snow-region site on another? No. Ground snow load, exposure, and thermal factors are site-specific. A package stamped for one site’s conditions is not valid for another site even within the same state, and reusing one is a common cause of AHJ plan review rejections.

How does snow load interact with wind load in the same design? ASCE 7 requires checking multiple load combinations, and snow plus wind is one of them. In most cold-climate cases, wind uplift governs summer and shoulder-season conditions while snow governs winter dead load, but the racking has to be sized for whichever combination produces the controlling case at that specific site. Our ASCE 7-22 wind load guide covers the wind side of that combination in detail.

What ASCE 7 edition should I use for a snow load calculation today? Use whichever edition the local jurisdiction’s adopted building code references, since AHJs are still mid-transition between ASCE 7-16 and ASCE 7-22 in many states as of 2026. Confirm the edition with the AHJ before finalizing the structural calc, and state the edition explicitly in the stamped package.