Calculator
PV Roof Load and Ballast Calculator
The structural question about a rooftop array is not usually whether the roof can hold the modules — it can, easily — but whether it can hold them down. Dead load from a pitched-roof system is around 15 kg/m²; ballast to resist uplift on a flat roof can be five times that.
This calculator separates the two loads and compares them with typical structural capacities.
Enter the array and roof
From the Eurocode EN 1991-1-4 site calculation.
Array area
32 m²
Module load
11.5 kg/m²
Dead load including mounting
15.5 kg/m²
Within the allowance entered
Average load per fixing point
15.5 kg
Dead load only; uplift reverses the sign
Wind uplift on the array
886 N/m²
Equivalent to 90.3 kg/m² of hold-down
Ballast required (unattached system)
120 kg/m²
Includes a 1.5 safety factor
Total load with ballast
135.5 kg/m²
Exceeds the allowance — use a mechanically fixed system
How the calculation works
Dead load is straightforward: module mass divided by module area, plus the mounting system's mass per square metre. Framed crystalline modules run 11 to 13 kg/m², and rail systems add 3 to 6 kg/m² depending on span and tilt.
Wind uplift is the difficult part. A tilted array on a flat roof behaves as an aerofoil, and the suction on the underside can lift the whole assembly. Eurocode EN 1991-1-4 gives the peak velocity pressure for the site, and the array's shape coefficient converts that into uplift.
An unattached ballasted system resists uplift with mass alone, so ballast must exceed the uplift with a safety factor after crediting the array's own weight. Corners and edges of a roof see far higher suction than the field, which is why real ballast layouts are heavier at the perimeter.
The formula
q_dead = m_module / A_module + m_mounting F_fixing = q_dead × A_array / N_fixings p_uplift = q_peak × c_shape(β) m_ballast = p_uplift × γ / g − q_dead q_total = q_dead + m_ballast γ safety factor · g 9.81 m/s² · β array tilt
Assumptions behind the numbers
- This is a screening calculation, not a structural design. Any roof installation requires verification by a qualified structural engineer against the national annex to the Eurocodes.
- A simplified shape coefficient based on tilt is used. Real designs use wind-tunnel-derived coefficients supplied by the mounting manufacturer, which vary across the roof.
- Perimeter and corner zones are not treated separately; those areas typically need 1.5 to 3 times the field ballast.
- Snow load is not included and must be added for sites above roughly 500 m or in northern climates, per EN 1991-1-3.
- Roof allowance is the residual capacity after existing finishes, services and imposed loads, which only the structural drawings or an engineer can establish.
How to read the result
A pitched-roof system adding 15 to 18 kg/m² is normally trivial for a timber roof designed for tiles at 45 kg/m². The exception is a roof already at capacity from a heavy covering or a previous conversion.
On a flat roof, if the ballast requirement pushes total load beyond the allowance, the answer is a mechanically fixed system with penetrations, an aerodynamic low-tilt design that generates less uplift, or a lighter east-west layout.
Point loads matter as much as distributed load. A ballast block concentrated over a deck span between purlins can fail locally even when the average load looks acceptable.
Worked example
Sixteen modules of 23 kg and 2.0 m² each, on a 4 kg/m² flat-roof frame at 10° tilt, on a site with 900 N/m² peak uplift pressure, with 32 fixing points and a 75 kg/m² roof allowance.
Array area is 32 m². Module load is 11.5 kg/m², so dead load is 15.5 kg/m² and each fixing carries about 15.5 kg. Uplift is 900 × cos 10° = 886 N/m², equivalent to 90 kg/m² of hold-down before factors.
With a 1.5 safety factor the requirement is 135 kg/m², less the 15.5 kg/m² already present, giving 120 kg/m² of ballast and a total of 135 kg/m² — well beyond the 75 kg/m² allowance. This roof needs mechanical fixing or a lower-uplift layout, and the ballasted approach must be abandoned.
Mistakes that skew the answer
- Treating the manufacturer's generic ballast plan as valid without a site-specific wind calculation.
- Using field-zone ballast at the roof perimeter, where suction is much higher and where ballasted arrays most often fail.
- Ignoring the roof membrane. Ballast blocks and rail feet concentrate load and can puncture single-ply membranes without slip sheets.
- Forgetting snow load, which combines with dead load and, in some load cases, with wind.
- Assuming a pitched roof is fine because the array is light — old purlins, previous conversions and rot change that judgement.
Questions readers ask
- How much weight do solar panels add to a roof?
- A framed crystalline array with rails adds roughly 15 to 18 kg/m² over the covered area. For comparison, concrete roof tiles weigh 45 to 55 kg/m², so a pitched tiled roof in sound condition has ample capacity.
- Will my flat roof take a ballasted system?
- It depends on the wind zone far more than the modules. Ballast requirements range from about 40 kg/m² in sheltered inland sites at low tilt to well over 120 kg/m² at exposed coastal locations, which many flat roofs cannot accept.
- Is mechanical fixing better than ballast?
- Structurally, yes: it transfers uplift into the structure rather than resisting it with mass. The cost is roof penetrations, each of which must be detailed and warranted by the roofing contractor. On membrane roofs still under warranty, that is often the deciding factor.
- Do I need a structural engineer?
- For any flat-roof or commercial installation, yes, and most national regimes require it. For a domestic pitched roof in good condition, many jurisdictions accept an installer assessment, but a written structural check remains good practice on older or altered roofs.
- What about snow?
- Snow load per EN 1991-1-3 can exceed 100 kg/m² in alpine regions and combines with the array dead load. Arrays also change how snow accumulates, creating drifts at the array edge that the original roof design did not anticipate.