Key takeaways
- Our 18-module example weighs 1,068 lb, or 2.82 psf, using a 0.6 psf rack placeholder. At 48 in spacing the busiest interior attachment carries 31.9 lb of dead load.
- Spacing sets the point load: 15.9 lb at 24 in and 47.8 lb at 72 in. One AHJ’s no-calculation list caps a support at 40 lb and spacing at 48 in.
- Raising the rack placeholder from 0.6 to 1.5 psf lifts the busiest attachment to 42.1 lb, over the 40 lb cap.
- The lag screw allowable depends on the rafter species. IronRidge’s FlashFoot2 letter lists 951 lb uplift for Douglas Fir-Larch. It lists 732 lb for Spruce-Pine-Fir.
- Ballast can multiply roof dead load. In our flat-roof illustration, 10 psf of net uplift needs 226 lb per module. That puts 13.6 psf on the roof.
To size spans and attachments in software, see the best solar mounting structure design software.
Structural loads at a glance
A PV array adds five load types to its support structure. You can work out dead load yourself. Wind, snow and seismic values come from the adopted code and an engineer.
| Item | Detail |
|---|---|
| Load types | Dead (weight), live (roof live load), snow (including drift the array creates), wind (mostly uplift), seismic. |
| Our formulas | Dead load per attachment = array psf × spacing × half the module row height. Uplift per attachment = net pressure × the same tributary area. |
| Where it matters | Attachment spacing, roof framing checks, ballast, the permit’s structural sheet and the engineer’s letter. |
| Standard or edition | Varies by AHJ. On 1 February 2026, LA County replaced its 2023 list, which cited ASCE 7-16. The new list keeps the same thresholds but prints no ASCE edition, so confirm the current one with your AHJ. Portland’s page says "latest edition" with no year. IronRidge’s Design Assistant followed ASCE 7-22 from a 7 November 2024 release. |
| In software | Manufacturer tools size spans and attachments to the code criteria. Design tools mostly hand the layout over. |
Why do structural loads matter for installers?
Loads decide where you can drill. They decide how many attachments you need. They also decide whether the permit needs an engineer. A roof that cannot carry the array stops the job or forces repairs. One AHJ list, from LA County, waives calculations only at 4 psf or less, 40 lb per support and 48 in spacing.
Panel weight reaches the roof as point loads at the mounts, not as an even layer. A SEAU article (Utah engineers, 2020) makes the same point. Mounting on every other truss could double the load at those points.
Existing framing is the other risk. Portland’s engineered-permit page says analysis must consider point loads due to snow, dead and wind loads at the point of attachment of the standoffs. It also says you must replace or alter any gravity-load member with an increase of more than five percent. LA County’s list says the same. It cites E503.3.
Figure 1. Doubling attachment spacing from 24 in to 48 in doubles the dead load on one interior attachment (15.9 to 31.9 lb) and halves the uniform uplift its lag can carry (168 to 84 psf in Douglas Fir-Larch).
How is each load handled?
The AHJ documents share a pattern. Show the dead load. Check the roof. Take wind and snow from the adopted code. Seismic gets little attention for attached arrays.
| Load | What the sources say |
|---|---|
| Dead | Portland counts modules, racking, ballast and support point loads as dead load. LA County and Portland both want the PV dead load on the plans. SEAU calls about 3 psf typical. |
| Live | Portland says roof live load need not be considered where panels cover the roof with 24 in or less of clear space. |
| Snow | Portland and SEAU both say to check the drift the array creates. Portland sets snow by its state code, with no edition year. |
| Wind | SEAU calls wind the biggest concern. It describes two ASCE 7-16 methods, one for low-slope roofs and one for arrays parallel to the roof. |
| Seismic | SEAU counts panels, supports and ballast as seismic weight. Portland, San José and LA County single out ballasted arrays for seismic rules. |
- Live load: LA County says roof members must still carry live load where panels are absent. On non-residential roofs it also applies where clear space is above 24 in.
- Wind: Portland and LA County cite SEAOC PV2-2017 for low-profile or ballasted arrays. Portland requires independent peer review for wind-tunnel designs.
- Seismic: SEAU’s northern Utah house example puts the additional seismic load of 25 panels at "maybe around 300 pounds" and calls it minimal. The 2013 Minnesota report does not address seismic.
Two AHJs cite different SEAOC seismic reports. San José cites PV1-2012 and LA County cites PV1-2017. Check which one your AHJ means. The 2013 Minnesota tables assume hand-framed rafters. They do not apply to metal-plate trusses.
Worked example: dead load and attachments on an 18-module roof
The example array weighs 1,068 lb and needs 36 attachments at 48 in. The busiest interior attachment carries 31.9 lb of dead load. This is not a structural calculation. It is no substitute for a PE.
| Input | Value and source |
|---|---|
| Module | Qcells Q.TRON BLK M-G2+ 425, 46.7 lb, 1722 × 1134 mm (North American datasheet Rev06, 2025-03, distributor-hosted copy). Area 21.02 ft². |
| Array | Assumed: 18 modules, 3 rows of 6, portrait, 2 rails per row, flush on a pitched roof. 378.3 ft² of modules. |
| Rack and hardware | Placeholder: 0.6 psf of module area, 227 lb. Not a company figure. Use the weight in your manufacturer’s report. |
| Rafters | Assumed: 24 in on centre. Attachments on every second rafter. |
| Overhang rule | IronRidge XR rails: cantilever up to 40% of the allowable span, measured from rail end to hardware centre. |
| Lag allowable | IronRidge FlashFoot2 letter, 5 September 2019, Table 1: uplift 951 lb (Douglas Fir-Larch, SG 0.50) or 732 lb (Spruce-Pine-Fir, SG 0.42). |
| Net uplift pressure | Illustrative input of 50 psf, not a code value. Real pressure varies by zone and comes from the engineer. |
- Overhang: the tech tip says most rail brands limit it to about 33% (IronRidge Tech Tip v1.01, 2022). The calculator applies 40% of the chosen attachment spacing, so at 24 in the first attachment sits up to 9.6 in from the rail end. The rail line is taken as 6 modules wide, 267.9 in, with clamp gaps ignored.
- Lag conditions: the letter needs a 2×4 rafter or larger, a lag in the centre third and 2.5 in end distance. It uses a safety factor of 3.0 on test loads.
Dead load first. Modules weigh 841 lb. With the rack placeholder the total is 1,068 lb, which is 2.82 psf. At 48 in there are 6 attachments per rail line and 36 in all. The mean is 29.7 lb each. An interior attachment’s tributary area is 48 in × 33.9 in, or 11.3 ft². So it carries 31.9 lb.
| Spacing | Attachments | Dead load, interior attachment | LA County conditions: 4 psf, 40 lb, 48 in |
|---|---|---|---|
| 24 in | 72 | 15.9 lb | Met |
| 48 in | 36 | 31.9 lb | Met |
| 72 in | 24 | 47.8 lb | Not met (over 40 lb and 48 in) |
Only the widest spacing fails the LA County conditions.
The LA County list, updated 1 February 2026, waives structural calculations for one- and two-family roofs. It does so only if every condition holds. The conditions include wood or asphalt shingle or rolled/torch-down roofing (two layers maximum). They also include panels within 18 in of the roof. Our table checks only three. These are 4 psf or less, supports of 40 lb or less, and spacing within 48 in. Other AHJs differ. The placeholder matters. The 40 lb cap is reached at 1.32 psf of rack. The 4 psf cap comes later, at 1.78 psf.
Now the uplift check. Each row multiplies a net pressure by the 11.3 ft² tributary area. It then compares the result with the lag allowable.
| Species | Allowable | Net uplift | Uplift per attachment | Share of allowable |
|---|---|---|---|---|
| Douglas Fir-Larch | 951 lb | 50 psf | 565 lb | 59% |
| Spruce-Pine-Fir | 732 lb | 50 psf | 565 lb | 77% |
Both species pass at 48 in, using 59% and 77% of the allowable. Douglas Fir-Larch has a load limit of 81 in and Spruce-Pine-Fir 62 in, so both are capped at 48 in and need 36 attachments. The example does not model edge and corner zones, rail and clamp limits or the load combination.
Flat-roof ballast. A 2013 City of Chicago guideline sizes ballast per panel as (area × uplift pressure − panel dead load) × 1.5. It is for flat roofs and dates from the ASCE 7-05 era. Per module of 21.02 ft², using the 0.6 psf rack placeholder, the dead load is 59.3 lb. With illustrative uplift of 5 psf the result is 69 lb of ballast. With illustrative uplift of 10 psf it is 226 lb. The roof then carries 6.1 and 13.6 psf, far above the 4 psf in the LA list. That is why ballast needs a roof check. LA County also asks for an ASTM G115 friction test report.
Dead load and attachment calculator
Enter your array and the pressure and allowable load from your engineer’s letter. The first example reproduces the table above. It is an illustration, not a design tool. For rail lengths, splices and clamps, see racking and mounting design.
How solar software handles structural loads
Of the four tools below, K2 Base and Unirac U-Builder say Yes to calculating or reporting structural loads, and IronRidge and Aurora Solar only Partly. Partly: the page names load inputs or plan sheets but does not say the tool outputs a load report. None of them replaces an engineer’s judgement.
| Software | Calculates or reports structural loads? | Source read (October 2026) |
|---|---|---|
| IronRidge Design Assistant | Partly | Release note dated 7 November 2024. Page updated since |
| Unirac U-Builder | Yes | unirac.com/u-builder, copyright 2026, no update date |
| K2 Base | Yes | K2 Systems US page, undated |
| Aurora Solar | Partly | Plan Sets help page, updated 22 July 2025 |
- IronRidge Design Assistant: Standardised to ASCE 7-22. Help text says snow and wind values depend on the selected ASCE code and should be confirmed with your building authority. Span must not exceed the rail’s maximum. Page does not say it outputs a load report.
- Unirac U-Builder: Uses code-specific criteria by zip code. Engineering report includes a ballast map, racking weight and design load calculations. Exports state certification letters. Page does not name wind, snow, seismic or a code edition.
- K2 Base: "Automatic determination of wind and snow loads" and automatic roof and counterweight fastener calculation. Names no standard or region.
- Aurora Solar: Plan sets list an attachment plan sheet and a mount and structural sheet, with engineer stamps as an add-on. The page does not mention dead, wind or snow loads.
For racking tools that return site loads across the wider field, see the best solar mounting structure design software.
Common mistakes with structural loads
FAQs
Do solar panels need a structural calculation?
Not always. The AHJ decides. LA County’s current list, updated 1 February 2026, waives calculations for qualifying one- and two-family roofs, including a 4 psf limit. Portland’s engineered-permit page requires structural drawings stamped by an Oregon-registered engineer. Ask your AHJ before you design.
When does a solar permit need a PE stamp?
When the AHJ asks for engineered drawings. Portland’s engineered-permit page requires structural drawings stamped by an Oregon-registered engineer. See PE stamp.
How much do solar panels weigh per square foot?
About 2.82 psf in the example, with a 0.6 psf rack placeholder, or 2.22 psf for modules alone. A SEAU article calls about 3 psf typical. The real figure depends on the module and the rack.
Who decides the wind and snow loads?
The adopted building code and the site decide them. The engineer or the manufacturer’s tool applies them. IronRidge’s help text says to confirm wind and snow values with your local building authority.
Does a ballasted array need a roof check?
Yes, in every source here that covers ballast. Chicago requires stamped calculations. LA County asks for ballast, friction and deflection checks. San José’s note covers wind and seismic design for ballasted arrays.
Related terms
- Racking and mounting design: rails, splices, attachments and clamps.
- Permit plan set: the drawings that carry the structural sheet.
- PE stamp: an engineer’s seal on drawings or letters.
- Ground-mount design: row pitch and foundations.
- Carport solar design: modules on a raised frame.
- Rooftop solar: PV fixed to a roof.
Next step: pick a racking tool that returns site loads from the best solar mounting structure design software, then confirm what your AHJ requires.
Sources
- County of Los Angeles Public Works, 2026 Solar PV System Plan Review List v1.0, dated 1 February 2026, which replaces the 2023 v1.0 edition cited in an earlier pass. The waiver thresholds (4 psf, 40 lb, 48 in) are unchanged (checked November 2026).
- City of Portland, Structural Design Requirements for Solar Installations and engineered-system guidelines, undated (checked October 2026).
- City of San José Building Division, Note #30, ballasted systems, 1 February 2023 (checked October 2026).
- City of Chicago, Photovoltaic Panel Permitting Guidelines, 28 June 2013 (checked October 2026).
- Braun Intertec for the Minnesota Department of Commerce, Standardized Load Tables, June 2013 (checked October 2026).
- SEAU, Will Your Roof Support Solar Panels?, 10 July 2020 (checked October 2026).
- IronRidge, FlashFoot2 certification letter, 5 September 2019. Tech Tip v1.01, 2022. Installation manual v5.2 (checked October 2026).
- Qcells, Q.TRON BLK M-G2+ datasheet Rev06 NA, distributor copy (checked October 2026).
- Software: IronRidge release notes. Unirac U-Builder. K2 Base. Aurora Plan Sets help (checked October 2026).
- SEAOC store, Wind Design for Solar Arrays (PV-2): description only (checked October 2026). The ASCE 7, IBC and NDS texts are not quoted on this page.
Last updated 30 October 2026. Next scheduled review: 30 January 2027.