Technical guide · Ballast

How much ballast does a flat roof solar array need?

The answer is arithmetic, not guesswork — and it comes out of two numbers you can count on site. Here is the method, a worked example, and the figure your structural engineer will ask for.

DINGXIU SOLAR engineering Published 9 November 2026 6 min read

The short answer

In a water-ballast system the ballast is the structure. The support and the weight are one part: a sealed tank that is empty when it ships and full of water when it is installed. That makes the calculation straightforward:

  • Filled weight per unit: ≈120 kg of clean water (empty weight 6.3 kg)
  • Supports per row = modules in that row + 1

A row of ten modules uses eleven tanks, so 1,320 kg of water. An array of twenty modules in two rows of ten uses twenty-two tanks, so 2,640 kg.

Turned into the number a structural engineer actually works with, a 5° portrait layout at this density comes out at roughly 45 kg per square metre of roof footprint — or about 50 kg/m² of panel area. Both figures are averages; the local figure at each support is far higher, and that is covered below.

Why this matters commercially

Twenty-two supports weigh 139 kg when they leave the factory and 2,640 kg once filled on the roof. That ratio — about 19 to 1 — is the entire argument for water ballast over concrete blocks. You ship the structure, not the mass. It is also why the same array fits a container that concrete blocks would not.

Why "how much ballast" is the second question

The first question is how much uplift the roof will see, and that depends on four things that have nothing to do with your panel count: the local wind zone, the building height, the exposure around the building, and where in the array a given unit sits.

Ballast is the answer to that question, not an input. This is why two identical arrays in two different cities do not carry the same weight, and why a supplier who quotes one fixed kilogram-per-kilowatt figure for every project is doing one of two things: oversizing, so you pay for water you do not need and load a roof that did not have to be loaded; or undersizing, which nobody discovers until the first storm.

What follows is the counting method. The wind verification itself is a per-project step, and we come back to it at the end.

Step 1 — Count the supports

Work row by row, not array by array. Every row gets one support for each module it carries, plus one at the end of the row:

supports per row = modules in that row + 1
total supports = Σ (modules per row + 1) across all rows

example: 3 rows of 12 modules
  → (12 + 1) × 3 = 39 supports

That trailing +1 is not a rounding allowance. The end of a row is where the array is most exposed and where uplift concentrates, so the extra unit sits exactly where the load is highest. If you are costing a ballast system and your supplier's drawing does not show a unit at every row end, the count is wrong before it reaches the roof.

Step 2 — Multiply by the filled weight

Thirty-nine supports at 120 kg each is 4,680 kg of water. That is the number for the crane, the load schedule, and any conversation about whether the roof can take it.

Note what is not in that number: the modules, the clamps, the cable tray. Ballast is one line in the load schedule, not the whole of it.

Step 3 — Convert to roof load, two different numbers

Installers and structural engineers mean different things by "roof load", and mixing them up is where projects go wrong. Both matter:

Local bearing pressure at each support

One filled unit is 120 kg standing on a base of 1.45 × 0.41 m, which is 0.59 m². That is roughly 200 kg/m² at that one point. It acts on a small patch of membrane or screed, and it is the figure that decides whether you need a load-spreading mat on a soft or single-ply roof.

Distributed load across the array

Spread over the whole footprint, the same water becomes an even, low figure. Worked example — twenty 580 Wp modules, portrait, 1.134 × 2.278 m each, two rows of ten, row pitch about 2.57 m:

Worked example — 11.6 kWp array, two rows of ten modules
QuantityWorkingResult
Supports(10 + 1) × 2 rows22
Ballast, filled22 × 120 kg2,640 kg
Panel area20 × 2.583 m²51.7 m²
Roof footprint20 × 1.134 × 2.57 m58.3 m²
Distributed ballast2,640 ÷ 58.345 kg/m²
Local bearing pressure120 ÷ 0.59 m²≈200 kg/m²

Add the panels and racking themselves — roughly 12 to 15 kg/m² for glass-aluminium modules — and the total added dead load is about 60 kg/m² of roof. That is the figure to hand over, not the 45.

The same calculation at four project sizes

Because the support-to-module ratio settles near 1.05, the distributed figure barely moves with project size. What changes is everything else — container count, crane time, fill time.

Ballast and roof load by project size, 580 Wp modules in portrait at 5°
Array sizeModulesRows × per rowSupportsWater ballastRoof footprintDistributed20GP
10 kWp182 × 9202.4 t52 m²46 kg/m²0.1
50 kWp888 × 119611.5 t256 m²45 kg/m²0.5
100 kWp17611 × 1618722.4 t513 m²44 kg/m²1.0
1 MWp1,72086 × 201,806217 t5,012 m²43 kg/m²9.2

One megawatt of water ballast is 217 tonnes — and it still fits in nine 20GP containers, because none of that weight exists during transport. The supports ship at roughly 6.3 kg each, about 11 tonnes for the whole megawatt.

Why you cannot average the wind and be done

It is tempting to take the array's rated design uplift, divide by the distributed ballast, and declare the job safe. That calculation is meaningless, because neither side of it is uniform.

Wind uplift on a low-tilt array is not evenly spread. Corner zones see multiples of the interior pressure, edge zones sit somewhere in between, and the interior is comparatively sheltered once several rows are packed together. Ballast distribution has to follow that pattern — which is precisely why every row carries an extra unit at its end, and why the layout drawing matters more than the kilowatt figure.

The one thing that is not arithmetic

Whether a given roof can carry the arrangement is a structural question about that building — slab thickness, existing layers, membrane, previous penetrations, snow zone. We supply the ballast layout and the unit weights. The capacity check and its sign-off belong to the project's structural engineer, and no supplier's brochure substitutes for it.

What this method does not cover

  • Snow. A roof that passes in summer may not in a snow zone; snow load adds to the same slab.
  • Seismic. Water mass behaves differently under lateral acceleration than a fixed block, and some jurisdictions treat it separately.
  • Membrane point resistance. 200 kg/m² on a small patch is fine on concrete screed and may not be on aged single-ply. Load-spreading mats exist for this reason.
  • Drainage paths. A dense array redirects rainwater; check the roof still drains where it used to.
  • Roof structure itself. As above — engineer's check, per building.

Quick answers

How much does one water ballast unit weigh?

6.3 kg empty and approximately 120 kg filled with water. That is the whole payload — no concrete, no gravel, no crane on the roof.

How many supports does a 20-module array need?

Twenty-two, if the modules are in two rows of ten: (10 + 1) × 2. Row count matters more than total count — the same twenty modules in one long row of twenty would need twenty-one.

What roof load should I expect?

About 45 kg/m² of footprint for the ballast at 5° portrait, plus 12 to 15 kg/m² for modules and racking — call it 60 kg/m² added dead load. Confirm the local point load of roughly 200 kg/m² at each support separately.

Will this work on a metal roof?

Usually not without reinforcement. 60 kg/m² is a lot for light steel purlins designed for a roof and nothing else. Where a metal roof does carry ballast, the purlin span and fixing pattern decide it, not the panel count. Send us the roof build-up and we will tell you honestly whether it is a ballast job or a different system.

Can the array be taken down and moved?

The supports are not fixed to the roof and can be drained, lifted and reinstalled — relevant if you lease the building. Clamps and modules are reusable; the tank is a sealed moulding with no serviceable parts.

Get the layout, not just the number

Send us four things and we will return a support count, a ballast schedule and a container estimate for your project: module size and wattage, rows and modules per row, roof type, and the wind speed your local code requires.

Have a roof and a module count?

We size the ballast layout and quote against it. No account needed, no catalogue download required first.

Send project details Try the sets calculator

Related: full product specification · technical datasheet · installed projects · all technical guides