Rooftop Solar Structural Loads

Dead load, snow, wind and seismic on a rooftop PV array: the ASCE 7-16 and 7-22 sections that govern each, and how the numbers get checked.

Picture of Douglas Avila
Douglas Avila

Owner & Editor

Workers install solar panels on a partially reconstructed residential roof
IN THIS ARTICLE

What does a structural load calculation for rooftop solar actually include?

A rooftop solar structural calculation resolves five separate load types acting on the array and the roof beneath it: dead load, roof live load, snow, wind and seismic. It combines them using the load combinations in the code edition the jurisdiction has adopted, then checks three things – the rafter or purlin, the attachment in withdrawal, and the components against their own rated capacities.

Key takeaways

  • Snow and wind are not live loads. Dead (D), live (L), roof live (Lr), snow (S), wind (W) and seismic (E) are distinct types carrying distinct factors.
  • Name the ASCE 7 edition every time. The 2021 IBC cycle references ASCE 7-16, the 2024 IBC references ASCE 7-22, and they give different numbers for the same roof.
  • Modules alone run about 2.3 psf. National simplified-permit criteria cap a residential array at under 4 lb/ft2 total.
  • Wind uplift is a roof-zone problem. ASCE 7-16 Section 29.4.4 routes flush arrays to the Chapter 30 component-and-cladding zones, so corner modules see higher pressure than interior ones.
  • Pull-out is a wood problem. Lag diameter, thread penetration and the member’s specific gravity set the withdrawal value.
  • Whether the calculation needs a PE seal is a separate question, answered by the AHJ rather than by the calculation.

Why calling snow and wind “live loads” is a correction waiting to happen

Live load means occupancy load. Snow, wind and seismic each have their own symbol, their own chapter in ASCE 7, and their own place in the load combinations. Collapsing them into “live load” is not a wording preference – it changes which combination you run and which number governs.

Seven symbols matter on a solar job. D is dead load, everything permanently attached. L is live load: people and movable contents. Lr is roof live load, the maintenance allowance on the roof surface. S is snow, R is rain, W is wind, E is seismic. Each carries a different factor, and some are mutually exclusive alternates rather than additive terms.

Get the labels wrong and the arithmetic follows. Roof live load and snow share a slot, so you take the larger, never the sum. Wind gets combinations of its own, including an uplift case where dead load is deliberately reduced. Snow rides with seismic at 20 percent. A calculation that files snow under “live load” has picked the wrong equation before computing anything – and to a plan checker, mislabeled loads read as a template rather than a site. It is the same class of avoidable finding behind most solar permit rejections.

How much dead load does a rooftop array add?

Start with the module. A Qcells Q.PEAK DUO BLK ML-G10+ measures 74 x 41.1 in. and weighs 48.5 lb – 21.1 ft2 of collector area carrying 2.3 lb/ft2. Racking, clamps, flashings, MLPE, conduit and wire management sit on top of that.

Those figures come off the Qcells module specification, and the arithmetic is worth redoing for whatever module you stock. The Detailed Structural Commentary for the National Simplified Residential PV and Energy Storage Permit Guidelines sets the eligibility line for streamlined review at a PV array dead load of “less than 4 lbs/ft2.” Where ballast replaces penetrations it counts too – Portland’s building department states that “the self-weight of the photovoltaic panels and modules and ballast (if any) shall be treated as dead load.”

Distributed psf is a convenience. The roof gets point loads.

An array does not press evenly on a roof – it hands its load to a finite number of attachments. With attachments 4 ft on center along a rail and rails 4 ft apart, each lag carries 16 ft2 of tributary area. At 3 psf dead plus 25 psf design snow, that one fastener transfers roughly 450 lb.

Nothing is subtracted, either. The array lands on top of existing roofing dead load, and a roof already carrying a second comp layer, or tile over comp, has spent margin the calculation cannot recover. That history belongs on the site survey, not in an assumption – it is one of the framing inputs every permit-ready plan set depends on.

How is snow load calculated on a solar array?

Flat roof snow load under ASCE 7 Chapter 7 is pf = 0.7 Ce Ct Is pg: mapped ground snow load adjusted for wind exposure, roof thermal condition and risk category, with a further slope factor on pitched roofs. The array then changes how that snow behaves.

Drift is where arrays create work a bare roof does not. A drift surcharge is a triangular pile of density-times-height added on top of the balanced load across a defined width, generated by parapets, adjacent higher roofs and roof projections – and a tilted array on a flat roof is itself an obstruction. Sliding runs the other way: module glass sheds snow readily, so it piles at the array’s low edge, at the eave, or on a lower roof below, and snow sliding off an upper roof can land on the array.

Local amendments override the mapped numbers. Portland requires that “snow load on the photovoltaic panels shall not be taken less than 20 psf x Importance factor” under Oregon Structural Specialty Code sections 1608.2.3 and 1608.2.4 – a floor unrelated to the ground snow load, and one installers hit regularly on Oregon solar plan sets.

The streamlined path has snow limits of its own: eligibility stops at 60 psf ground snow, and metal roofs cap at a 15 psf design snow load. Edition matters here more than anywhere else. ASCE 7-22 rewrote the ground snow maps on a strength-design basis, organized by risk category, with an ASD conversion in 2024 IBC Section 1608.2.1 – see STRUCTURE magazine’s review of the 2024 IBC load changes. The same address can produce a different pg depending on which cycle the AHJ enforces.

How is wind uplift calculated by roof zone?

The 2021 IBC Section 1609.1.1 states that “wind loads on every building or structure shall be determined in accordance with Chapters 26 to 30 of ASCE 7.” For rooftop PV, ASCE 7-16 gives two procedures: Section 29.4.3 for tilted arrays on low-slope roofs, Section 29.4.4 for flush-mounted arrays.

Section 29.4.3 covers buildings of any height with flat roofs, or gable and hip slopes of 7 degrees or less. Design pressure is p = qh(GCrn), where the nominal net pressure coefficient comes from Figure 29.4-7 and is multiplied by a parapet factor, a panel-length factor and an array edge factor. Its applicability limits are specific, per ICC’s Significant Changes to the Minimum Design Load Provisions of ASCE 7-16:

  • h1 no greater than 2 ft and h2 no greater than 4 ft
  • Panel chord length Lp no greater than 6.7 ft, panel tilt no greater than 35 degrees
  • Minimum gap between panels of 0.25 in., with gap spacing no greater than 6.7 ft
  • Clear distance from the roof edge equal to the larger of 2(h2 – hpt) and 4 ft

The edge factor is the trap: an exposed uplift condition within 1.5 times the panel chord length of an array edge takes a factor of 1.5 against 1.0 elsewhere, so a row added late at the array perimeter is a 50 percent pressure increase on those attachments. Effective wind area is the tributary area of the element considered, except that its width need not be taken as less than one third of its length.

Section 29.4.4 handles the common residential case: panels parallel to the roof within a 2 degree tolerance, no more than 10 in. off the roof, set back at least 2h2 from the roof edge, a gable ridge or a hip ridge. Here p = qh(GCp) times an edge factor and a pressure equalization factor, with (GCp) taken from the Chapter 30 roof figures “with respective roof zoning.”

That clause is the whole point. Chapter 30 divides a roof into interior, edge and corner zones and the coefficient climbs sharply outward. ASCE 7-16 subdivided the low-slope edge and corner zones further; ASCE 7-22 consolidated gable and hip roofs back to three. A module in a corner zone can need tighter attachment spacing than an identical module 20 ft inboard on the same roof, which is why layout and structural design are one conversation.

Configurations outside those envelopes need another route. Portland’s structural design requirements for solar installations accept three: the ASCE 7 sections above, wind tunnel testing per ASCE 49, or SEAOC Report PV2-2017 for low-profile arrays on flat roofs. One check also gets skipped routinely – the module has its own rating. The Qcells module above is listed at 4000 / 5400 Pa, roughly 84 and 113 lb/ft2, and demand above its rated pull is a module problem no racking selection fixes. Same discipline on commercial solar PV designs, where zones are larger and parapets change the parapet factor outright, and where commercial solar plan sets: what changes above residential covers the rest of what shifts once a project moves past a house.

What does seismic design look like for a ballasted array?

Ballasted arrays are the case where seismic governs, because nothing holds the array down except its own weight and friction. ASCE 7 Chapter 13 treats rooftop solar as a nonstructural component, and Section 13.6.12 sets the conditions unattached arrays must satisfy.

Portland states the requirement directly: rooftop solar arrays and their attachments “shall be designed for forces and displacements determined following section 13.3 of ASCE 7.” Displacement is the word to notice. A ballasted array is allowed to move; the design has to know how far, and the roof needs room for it without the array walking into a parapet, a curb or the roof edge.

The unattached provisions carry geometric limits. For low-profile configurations the center of mass may not sit higher than half the least panel support spacing, and in no case more than 3 ft above the roof. The array must also be interconnected well enough to distribute lateral force without deforming. ASCE 7-22 tightened this: panels are not to be treated as part of the load path resisting the interconnection force unless they have been evaluated or tested for that loading – closing a shortcut some ballasted layouts relied on.

There is a circularity worth naming. Ballast added to resist wind uplift is dead load, and dead load is seismic mass. Resolving that trade is engineering judgment, which is where a structural PE stamp usually enters scope – the same reasoning that drives foundation design on ground mount plan sets.

Which load combinations govern?

ASCE 7 Chapter 2 supplies both sets. Strength design factors the loads up; allowable stress design works at service level. For rooftop solar, two combinations decide almost everything: a gravity case that sizes the rafter and an uplift case that sizes the lag.

Strength design (LRFD)Allowable stress design (ASD)
1.4DD
1.2D + 1.6L + 0.5(Lr or S or R)D + L
1.2D + 1.6(Lr or S or R) + (L or 0.5W)D + (Lr or S or R)
1.2D + 1.0W + L + 0.5(Lr or S or R)D + 0.75L + 0.75(Lr or S or R)
0.9D + 1.0WD + 0.6W
Seismic combinations followD + 0.75L + 0.75(0.6W) + 0.75(Lr or S or R)
0.6D + 0.6W

Read the gravity line first: in snow country the rafter is sized by dead load plus snow, and because roof live load and snow share a slot you take the governing one rather than adding them. Read the uplift line second: the dead load coefficient drops to 0.9 in strength design and 0.6 in allowable stress design, deliberately, so the array’s own weight cannot be leaned on to hold it down. That is the combination the attachment has to survive. Snow also appears in the seismic combinations at 20 percent, which is why a snowy, seismically active region produces demands neither condition produces alone.

How do you check the rafter or purlin?

Once the combinations produce a governing load, the member gets checked for bending, shear, deflection and bearing. The inputs are species and grade, actual cross-section, spacing, clear span and physical condition – all from the survey, none from a default.

A 2×4 rafter at 24 in. on center spanning 14 ft is a different structure from a 2×8 at 16 in. on center spanning 10 ft, and the gap between them is section modulus and allowable bending stress, not intuition. Deflection often governs before stress does, particularly on long shallow spans.

The national simplified-permit criteria mark the edge of the prescriptive box. That path assumes wood rafters or trusses at no greater than 48 in. on center, sheathing of at least 7/16 in. plywood or OSB, roof height not greater than 40 ft for framing-attached systems and 30 ft for sheathing-attached, no sag beyond the rafter or ridge beam length in feet divided by 20, and no signs of alteration or significant deterioration. Fail any one and the project needs calculations rather than a checklist.

Trusses deserve separate treatment. A truss is an engineered assembly sized for a specific load case; adding a point load at a panel point is not the same as adding it mid-chord, and field-sistering a chord is a modification of an engineered component, not a repair. Capturing truss geometry at survey saves a round trip – the same information gap that produces most rework in outsourced solar drafting.

What sets attachment spacing and pull-out capacity?

Withdrawal capacity depends on three variables: fastener diameter, length of thread embedded in the main member, and the specific gravity of the wood. That is the NDS withdrawal relationship, and it means the same lag in Douglas fir and in a softer species are different fasteners for design purposes.

Manufacturer certification gives real numbers to work from. IronRidge’s FlashFoot2 certification letter reports a 5/16 in. lag bolt 4.75 in. long, tested to a peak uplift of 3,203 lb and published at an allowable uplift of 1,067 lb after a safety factor of 3.0, at a wood specific gravity of 0.54. Allowable lateral capacity is 412 lb, the pilot hole is 1/4 in., and the letter adjusts for other species by specific gravity using the National Design Specification withdrawal equation.

All of that assumes the lag is in the rafter. The field failure mode is almost never fastener strength – it is a lag that missed the centerline and is gripping the corner of a member, or one that is in sheathing only. No calculation catches that; the layout, the detail on the drawing and the crew do.

Spacing follows from capacity. Under the simplified guidelines, maximum spacing between adjacent attachment points is 48 in., with rows staggered where rafters are 24 in. on center or less. The 72 in. option exists only in the low-demand case: design wind speed of 120 mph or less and snow load of 10 psf or less. Eligibility caps at a 150 mph design wind speed for framing-attached systems, and at 120 mph Exposure C or 140 mph Exposure B for sheathing-attached. Standoff height matters too – the guidelines cap the array at 10 in. off the roof to control uplift pressure, the same h2 limit that keeps a flush array inside ASCE 7-16 Section 29.4.4. Attachment detail is a recurring item in what to avoid when making solar plans.

When does the existing structure need reinforcement?

When a check fails. Reinforcement is not a judgment call about roof age or appearance – it is what happens when the governing combination exceeds the member’s capacity, the attachment’s withdrawal value, or the deflection limit.

  • Undersized members on long clear spans, especially 2×4 rafters over 12 ft
  • Prior re-roofs that already consumed dead-load margin – a second comp layer, or tile over comp
  • Members cut, notched or drilled near midspan for a previous trade
  • Drift or sliding-snow surcharge landing under the array footprint
  • Ballasted commercial roofs where array plus ballast exceeds the deck’s reserve
  • Modules pushed into a corner wind zone, where required spacing falls below what the framing offers

The remedies are ordinary: tighten attachment spacing so each lag carries less, sister or add framing members, add blocking or purlins to shorten effective span, shift the array out of the corner zone, or reduce module count. Sometimes the answer is that the roof does not take the array as laid out – considerably cheaper on paper than discovered by an inspector, or by weather. This is also where a stamped structural review usually enters the picture, alongside the other permitting nuances that catch installers out.

Does a structural load calculation need a PE stamp?

Separate question, separate answer – and it is not “always.” There is no single national threshold. The authority having jurisdiction decides, and plenty of AHJs accept unstamped plans for standard residential retrofits.

Streamlined pathways exist precisely to avoid a stamp on routine work. California’s AB 2188 requires cities and counties to adopt an expedited checklist for solar energy systems no larger than 10 kW ac on single-family and duplex dwellings, substantially conforming to the California Solar Permitting Guidebook, which notes that project-specific structural calculations may not be required for systems meeting the expedited criteria. NREL’s SolarAPP+ automates review for standard residential systems inside a defined compliance envelope; projects outside it route to conventional plan check.

The triggers that do produce a stamp requirement are covered in when a solar project needs a PE stamp. This post is about what the engineer computes; that one is about when you need the engineer.


FAQ

Are snow and wind live loads?

No. Under ASCE 7 they are distinct load types with their own symbols and chapters: snow is S (Chapter 7), wind is W (Chapters 26 through 30). Live load (L) is occupancy load and roof live load (Lr) is the roof maintenance allowance. Roof live load and snow are alternates in the same combination slot, not additive terms.

How much weight does a rooftop solar array add?

Modules alone run around 2.3 lb/ft2 of collector area – a Qcells Q.PEAK DUO BLK ML-G10+ is 48.5 lb over 21.1 ft2. Racking, clamps, flashings, MLPE and conduit add to that. National simplified residential permit criteria set the streamlined-review line at a PV array dead load under 4 lb/ft2. Ballast counts as dead load too.

Which ASCE 7 edition applies to my project?

The one referenced by the code cycle the jurisdiction has adopted. The 2021 IBC cycle references ASCE 7-16; the 2024 IBC references ASCE 7-22. They are not interchangeable – ASCE 7-22 rewrote the ground snow maps on a strength-design basis and revised the component and cladding roof zones. Confirm the adopted cycle with the AHJ first.

What is the maximum spacing between solar attachment points?

Under the national simplified residential permit guidelines, maximum spacing between adjacent attachment points is 48 in., with rows staggered where rafters are 24 in. on center or less. A 72 in. spacing is allowed only where design wind speed is 120 mph or less and snow load is 10 psf or less. Otherwise spacing is set by calculation.

How is wind uplift on solar panels calculated?

For flush-mounted arrays, ASCE 7-16 Section 29.4.4 applies: velocity pressure times the component and cladding coefficient from the Chapter 30 roof figures, adjusted by an array edge factor and a pressure equalization factor. Because those coefficients are zoned, corner and edge locations see higher pressure than interior ones. Tilted arrays on low-slope roofs use Section 29.4.3.

What happens if the rafters cannot carry the array?

The design changes. Common remedies are tightening attachment spacing so each fastener carries less tributary load, sistering or adding framing members, adding blocking or purlins to shorten the effective span, moving the array out of a corner wind zone, or reducing module count. Occasionally the roof will not take the array as laid out.


Get the structural work off your desk

Every residential plan set we produce carries a roof framing plan, and the load work behind it is done against the code cycle the jurisdiction actually enforces – named on the sheet, not implied. Plans are designed to pass first-time review. Avila Solar Drafting produces the documents; you submit them.

Residential solar plan sets run 2-3 business days standard and 1-2 business days on Fast Roof — pricing depends on scope and complexity, with current figures on the solar plan sets page, and revisions free for six months after the order. Where a project needs a seal, Structural PE (roof mount) and Structural PE (ground mount) are available through engineering stamps, coordinated with PEs licensed in the project’s state; ground mount structural PE is quoted case by case, with current terms on the ground mount plan sets page.

Two things to check before sending a job. There are four jurisdictions we will not stamp into under any circumstances: APS and SRP territory in Arizona, the City of Peoria, the City of Phoenix, Los Angeles County (LABD) in California. And while we work with solar installation companies and EPCs, homeowner-direct projects are quoted with a separate development and consultancy fee on top (every business is exempt — the fee applies only to homeowners running their own project) — see current terms at signup, because the support they need is a different job.

Order a plan set and send the framing data with it – species, size, spacing, clear span, roof condition. For stamped structural reviews, call 971-410-0655; those are quoted per project. To see what a complete submission looks like first, start with the pre-submittal checklist.

SHARE:
Create A Free Account

Create an account to view all our services and see how your orders will be managed.

IN THIS ARTICLE
How an EPC or engineering firm should structure subcontracted PV design: where liability sits, who…
September 29, 2026
Roof geometry, framing allowance, conduit, busbar rating, equipment space: what architects specify at design stage…
September 22, 2026
An ESS permit package is more than a PV plan set: NEC 2023 Article 706,…
September 15, 2026