# Solar Panel Roof Loads: Ballast, Uplift, and the Real Map

> Panels add 0.1-0.25 kPa; ballast can add ten times that at a corner. How solar arrays load a roof through weight, wind, snow drift, and point loads at the feet.

**Category:** Fundamentals  
**Author:** Elena Marchetti (Structural engineer · Founder)  
**Published:** 2026-08-08

---
Solar panels are light, and that is precisely why they cause structural trouble: an array's dead weight is small enough to tempt everyone into skipping the takedown, while its real demands, ballast blocks, wind uplift, snow redistribution, and point loads at the feet, land in patterns the original roof design never imagined. StructLoads handles the check honestly by treating the array as what it is, a set of patch and point loads on specific members, rather than a rounding error smeared across the plan. The panels themselves add only 0.10 to 0.25 kPa; a ballasted system can locally add ten times that; and the governing question is almost never "can the roof carry the panels" but "can this beam carry these four feet, and this roof resist this uplift."

## What a solar array actually weighs

Start with the honest inventory. A [photovoltaic module](https://en.wikipedia.org/wiki/Solar_panel) runs 10 to 15 kg/m² of panel area; racking, rails, and hardware add a few more; wiring, inverters, and walkway pavers add their share. For a flush-mounted pitched-roof system, 0.10 to 0.25 kPa over the covered area is the usual band, genuinely light, comparable to a second layer of roofing. Tilted flat-roof systems concentrate the same panels onto fewer support points, and the plan-area average hides the fact that each foot delivers a point load of a few hundred newtons to whatever lies beneath it, which matters on metal deck and on insulation boards long before it matters to the beams.

Ballasted systems are the heavyweight branch of the [mounting-system family](https://en.wikipedia.org/wiki/Photovoltaic_mounting_system): rather than penetrating the membrane, they hold the array down with concrete blocks, and the blocks obey wind, not electricity. Ballast quantities follow the uplift and sliding calculation, which means they cluster at array corners and edges where wind is worst: a tray that carries 20 kg of ballast mid-array may need 80 kg or more at the corner. The result is a dead load map that is anything but uniform, 0.3 kPa here, 1.5 kPa there, and the members under the heavy trays deserve to be found, not averaged over, the same zone-by-zone discipline that governs [green roof landscapes](/blogs/green-roof-loads-explained/).

## Wind: the load that sizes everything

Wind is the design event for the array and often for the roof under it. Panels are aerodynamic surfaces: tilted modules on a flat roof act as rows of small wings, and the code provisions for rooftop solar (ASCE 7's rooftop-panel figures and their Eurocode counterparts) assign them pressure coefficients that vary sharply with position, tilt, and row spacing, with the worst uplift at exposed corners and along array edges. Manufacturers translate those coefficients into ballast maps or attachment schedules, and the structural engineer's job splits in two: verify that the anchorage or ballast holds the panels down, and verify that the roof structure resists the reactions, uplift at attachment points, added dead load where ballast concentrates.

The uplift side inherits every rule of [roof uplift design](/blogs/wind-uplift-on-roofs-explained/): net upward forces at the feet must trace through deck, purlins, and connections that may have been detailed for downward load only, and where the panel anchor bolts to a purlin mid-span, it introduces a concentrated upward force in a member checked only for distributed snow. The stabilizing side has a trap worth naming: when ballast weight is what resists uplift, the dead load doing the resisting must be counted at its minimum credible value with the code's reduced dead-load factor, and nothing else on the roof may be borrowed for the purpose. A membrane's adhesion and an insulation board's compression strength are not hold-down systems.

| Load effect | Flush pitched-roof array | Ballasted flat-roof array |
| --- | --- | --- |
| Dead load | 0.10-0.25 kPa spread | 0.3-1.5+ kPa, corner-clustered |
| Wind uplift | anchors into rafters/purlins | resisted by ballast weight |
| Point loads | modest, at each standoff | high, at feet and ballast trays |
| Snow effect | slides and re-deposits | drifts between tilted rows |

## Snow, live load, and the loads that change because panels exist

Snow interacts with arrays in both directions. Tilted rows shade and shelter each other, and snow that slides off a warm panel re-deposits in the aisles and against the row behind, so a roof that saw uniform snow before the array sees ridges and valleys of it after, an unbalanced pattern the original [snow calculation](/blogs/snow-load-calculation-asce-7/) never produced. On pitched roofs, panels can hold snow on a slope that used to shed it, or shed it suddenly in a slab onto whatever is below. The code answer is to rerun the snow cases with the array present, drift and sliding included, rather than reusing the bare-roof numbers.

Roof live load moves the other way: several codes, ASCE 7 among them, allow the ordinary roof live load to be omitted from the area directly under a panel that is close enough to the surface for workers not to occupy it, a small honest relief that partially offsets the array's dead weight in the gravity cases. What may never be omitted is the maintenance reality around the array: walkway zones, service paths, and the [roof live load](/blogs/roof-live-load-vs-snow-load/) everywhere a person can still stand. The bookkeeping is fussy, minus live load here, plus dead load there, plus drift in the aisle, and it is exactly the kind of bookkeeping that rewards being written down per zone instead of held in one number.

## Pitched roofs: the rafter and the standoff

Residential pitched roofs concentrate the same physics into carpentry. A flush array mounts on rails, the rails on standoffs, and the standoffs bolt through the tiles into rafters, never battens, so the whole array reaches the structure at discrete points a rail-span apart. Each standoff delivers a modest downward load in the gravity cases and a sharper upward one in the wind cases, and the rafter receives both as point loads between its supports, a loading pattern the original roof, designed for distributed tile weight and snow, never contained. On a modern truss roof with generous margins this is usually absorbed quietly; on an older cut-timber roof with slender rafters and a century of notching, the standoff schedule deserves an actual check, and the fix is cheap at design time: more standoffs at closer spacing, each carrying less.

Two bookkeeping notes complete the pitched-roof picture. In-roof systems that replace the tiles can reduce net dead load, panels at 12 to 15 kg/m² standing in for tiles at 40 to 75 kg/m², a rare case where the array makes the roof lighter, provided the substitution is recorded honestly rather than both weights being kept. And the array's [system-level equipment](https://en.wikipedia.org/wiki/Photovoltaic_system), inverters, optimizers, and cable runs, belongs wherever it actually hangs: a wall-mounted inverter is a wall load, and a loft-floor battery bank is a floor load with a startlingly high local intensity, neither of which should vanish into the roof average, any more than [rooftop mechanical units](/blogs/rooftop-mechanical-unit-loads/) do.

## A worked example: ballasted array on an existing flat roof

Take a 30 m by 20 m flat roof, illustrative round numbers throughout, originally designed for 1.0 kPa superimposed dead and 1.0 kPa roof live load, with snow at 1.4 kPa governing the variable side. A ballasted array covers 400 m² in tilted rows: panels and racking at 0.15 kPa, average ballast at 0.35 kPa, but corner and edge trays ballasted to 1.2 kPa over roughly 60 m² where the wind maps demand it.

The averages look harmless: 0.5 kPa of new dead load against a roof that also sheds some live load under the modules. The distribution is the real check. The two edge beams under the heaviest ballast rows each pick up about 1.2 x 3.0 = 3.6 kN/m of new permanent line load on their worst 8 m, roughly a third of their original design loading, arriving decades after they were sized. The aisle drift case adds a snow ridge the bare-roof design never carried. And the deck itself must take each 250 kg corner tray on four small feet without crushing the insulation, a serviceability check that has nothing to do with the beams. Whether this roof accepts the array is decided member by member in the [takedown rerun](/blogs/multi-storey-load-takedown-explained/), StructLoads makes that a matter of drawing the ballast map as patch loads, and the answer here is typical: the field of the roof shrugs, two edge beams and a handful of deck panels need reinforcement or a re-balanced ballast layout.

That last option is worth remembering: ballast maps are negotiable. Moving from a purely ballasted corner to a few mechanical anchors, or spreading trays one bay wider, can shave the local peak below the existing capacity and turn a reinforcement project back into paperwork, but only the takedown can say so with numbers, and the negotiation goes best when the structural check happens before the ballast layout is frozen rather than after the trays are on the roof.

## Key takeaways: solar panel roof loads

Panels are light, arrays are not simple: 0.10 to 0.25 kPa of spread dead load on pitched roofs becomes a corner-clustered ballast map on flat ones, with point loads at every foot. Wind sizes the system, uplift at anchors or ballast at corners, and the resisting dead load counts at its minimum, while snow redistributes into drifts and slides the bare roof never saw, only partially offset by live load relief under the modules. Check the roof member by member against the real array map, in StructLoads or by hand, because the field average passing says nothing about the edge beam under the heavy trays.

## Quick answers

### How much load do solar panels add to a roof?

Flush-mounted panels with racking add 0.10 to 0.25 kPa over the covered area, genuinely light. Ballasted flat-roof systems add much more where it matters: 0.3 to 1.5 kPa or beyond under corner and edge trays where wind demands heavy ballast, delivered as point loads at feet and trays. The average is rarely the problem; the local peak on a specific beam or deck panel is, so the array belongs in the takedown as a real load map.

### Do solar panels increase the wind load on a roof?

Yes: tilted modules act as small wings, with code pressure coefficients that peak at array corners and edges, and the structure must resist the resulting uplift either through mechanical anchors, concentrated upward forces on rafters and purlins, or through ballast, whose resisting weight must be counted at its minimum credible value under the reduced dead-load factor. The anchorage path through deck, purlin, and connection deserves the same scrutiny as any uplift chain.

### How do solar panels change snow loads?

They redistribute them: snow slides off tilted modules and re-deposits in aisles and against neighbouring rows, creating ridges and unbalanced patterns the bare-roof snow design never produced, and panels on pitched roofs can hold snow on slopes that previously shed it. The correct response is rerunning the snow cases with the array present, drift and sliding included, not reusing the original uniform numbers.

### Can an existing roof carry solar panels without strengthening?

Often, but only the rerun takedown can say: gravel ballast being removed, live load omitted under modules, and unclaimed reserves frequently cover a light array, while corner ballast clusters and aisle drifts overload specific edge beams and deck panels even when the field average passes. Check member by member against the real ballast map, and remember the map is negotiable: anchors or wider tray spacing can shave the local peak.

### When should you not trust the plan-area average for a solar array?

Whenever the system is ballasted or tilted, which is most flat-roof arrays: wind-driven ballast maps cluster weight at corners and edges at several times the field rate, feet deliver point loads to deck and insulation, and drifts form in the aisles. The average flatters exactly the members carrying the peaks. Draw the array as patch and point loads at real intensities and let the takedown find which beams care.

## Sources

- [Wikipedia: Solar panel](https://en.wikipedia.org/wiki/Solar_panel)
- [Wikipedia: Photovoltaic mounting system](https://en.wikipedia.org/wiki/Photovoltaic_mounting_system)
- [Wikipedia: Photovoltaic system](https://en.wikipedia.org/wiki/Photovoltaic_system)