Rainwater harvesting transforms a roof from a passive drainage surface into an active water supply infrastructure. The potential yield depends on three factors you can measure: roof plan area, local rainfall, and the efficiency of the collection surface. This chapter explains how to calculate that yield and how to use it in system design.
The theoretical volume of rainwater collectible from a roof is:
V = A × R × C
Where:
This formula applies for any time period: a single storm, a month, or a year. Use consistent units.
Example: 80 m² roof, 60 mm of monthly rainfall, metal roof (C = 0.90)
V = 80 × 60 × 0.90 = 4,320 L = 4.32 m³
The plan area is the horizontal footprint of the roof, not the area of the sloped roof surface. Rainfall is measured vertically, so it is the horizontal projection that determines how much rain intercepts the roof.
For a simple gable roof with a 30° pitch and a ground footprint of 10 m × 8 m:
In practice, measure the external perimeter of the building at ground level. Overhanging eaves should be included since they intercept rain and direct it to the gutters.
Partial roof collection: If only part of the roof drains to the collection system (e.g., one slope feeds the tank), calculate only that slope’s plan area.
Not all rainfall that lands on a roof reaches the tank. Losses occur through:
These losses are captured in the runoff coefficient C:
| Roof Material | Runoff Coefficient (C) | Notes |
|---|---|---|
| Metal (zinc, steel, aluminium) | 0.90–0.95 | Best collection efficiency |
| Vitrified clay tile | 0.80–0.90 | Common in Europe |
| Concrete tile | 0.75–0.85 | Slightly more absorptive |
| Slate | 0.80–0.90 | Good efficiency |
| Bituminous felt / EPDM (flat) | 0.70–0.80 | Some absorption, algae risk |
| Concrete/asphalt (flat) | 0.65–0.75 | Higher absorption, contamination risk |
| Green roof (extensive) | 0.15–0.40 | Depends on saturation level |
| Green roof (intensive) | 0.05–0.25 | Very high retention |
For design purposes, use the lower end of the C range for conservatism. A system sized for C = 0.80 that achieves C = 0.85 in practice will simply have more overflow — not a failure. A system sized for C = 0.90 on a concrete tile roof will fall short.
The reliability of a collection estimate is only as good as the rainfall data used. Key sources:
| Region | Source |
|---|---|
| UK | Met Office (metoffice.gov.uk), Environment Agency |
| France | Météo-France, DRIAS portal |
| Germany | DWD (Deutscher Wetterdienst) |
| Australia | Bureau of Meteorology (bom.gov.au) |
| USA | NOAA National Centers for Environmental Information |
| EU (general) | Copernicus Climate Change Service, ERA5 reanalysis |
For design, use at least 10 years of monthly rainfall data from the nearest reliable weather station. Calculate the monthly mean and, ideally, the 10th percentile (dry year scenario) for storage sizing purposes.
Units note: Rainfall is reported in mm (depth). 1 mm of rainfall = 1 L/m². 1 m of rainfall = 1 m³/m².
A monthly yield table is the essential tool for storage sizing (Chapter 4). It shows how supply varies through the year against demand.
Example: Bordeaux, France — 80 m² metal roof (C = 0.90)
| Month | Rainfall (mm) | Collected (L) |
|---|---|---|
| Jan | 74 | 5,328 |
| Feb | 62 | 4,464 |
| Mar | 60 | 4,320 |
| Apr | 72 | 5,184 |
| May | 71 | 5,112 |
| Jun | 52 | 3,744 |
| Jul | 34 | 2,448 |
| Aug | 43 | 3,096 |
| Sep | 69 | 4,968 |
| Oct | 88 | 6,336 |
| Nov | 82 | 5,904 |
| Dec | 85 | 6,120 |
| Annual | 792 | 57,024 L = 57 m³ |
# Monthly collection yield calculator
def monthly_yield(area_m2, monthly_rainfall_mm, runoff_coeff):
return [area_m2 * r * runoff_coeff for r in monthly_rainfall_mm]
area = 80 # m²
rainfall_mm = [74, 62, 60, 72, 71, 52, 34, 43, 69, 88, 82, 85]
C = 0.90
yield_L = monthly_yield(area, rainfall_mm, C)
print(f"Annual yield: {sum(yield_L)/1000:.1f} m³")
After a dry period, the first rainfall washes accumulated debris, bird droppings, atmospheric pollutants, and dissolved roof material into the gutters. This “first flush” is disproportionately contaminated. A first-flush diverter captures and discards this initial volume before routing cleaner water to the tank.
Sizing: The standard recommendation is to divert the first 0.5–1 L per m² of roof plan area after each dry period (typically >48 hours without rain).
For an 80 m² roof:
80 × 0.5 = 40 L80 × 1.0 = 80 LFirst-flush diverters are self-emptying over 12–24 hours (via a small orifice) so they are ready for the next rain event.
Effect on collection efficiency: The first-flush loss is significant for frequent light rain events but negligible for large storm events. In regions with low-intensity, frequent drizzle (e.g., Atlantic Europe), first-flush losses can reduce the effective runoff coefficient by 5–10 percentage points.
Roof material affects not just collection efficiency but water quality:
| Material | Quality concern | Mitigation |
|---|---|---|
| Zinc-coated steel (galvanised) | Zinc leaching, especially acidic rain | Not recommended for potable without testing; fine for toilet/garden |
| Lead flashing | Lead contamination at joints | Replace lead with aluminium or lead-free alternatives |
| Bituminous felt | Volatile organic compounds, especially when new | Wait 12 months before collecting from new felt; use activated carbon |
| Clay/concrete tile | Algae and moss growth, biological contamination | First-flush diverter essential; UV or chlorine for any potable use |
| EPDM rubber | Generally inert; some plasticizer leaching | Test before potable use |
| Metal (stainless, aluminium) | Minimal contamination; best for potable | Suitable with basic filtration |
| Green roof | Biological load, organic matter | Not suitable for potable; fine for subsurface irrigation |
Moss and algae: Common on older tiles and felt. Regular cleaning (every 2–3 years) and the application of biocidal wash significantly improve collection quality.
Working backwards: given a monthly demand, how much roof area is needed to meet it from rainfall?
A = D / (R × C)
Where D is monthly demand in liters, R is monthly rainfall in mm, and C is the runoff coefficient.
Example: You want rainwater to supply toilet flushing (300 L/day = 9,300 L/month). Rainfall in the driest month is 34 mm. C = 0.85.
A = 9,300 / (34 × 0.85) = 9,300 / 28.9 ≈ 322 m²
A 322 m² roof plan area would be required to supply toilet flushing from the driest month alone, without storage. This is far larger than most houses — which is exactly why storage is essential: you bank wet-season surpluses to cover dry-season deficits. Chapter 4 addresses this directly.
A first cut at feasibility compares annual supply with annual demand:
| Item | Value |
|---|---|
| Annual collection (Bordeaux, 80 m²) | 57 m³ |
| Annual non-potable demand (4 persons) | ~83 m³ |
| Supply/demand ratio | 69% |
With this roof and this rainfall, the system can theoretically supply 69% of non-potable demand annually — but distribution is uneven. July supply is only 2.5 m³ while demand remains ~7 m³/month. Storage bridges this gap.
Supply/demand ratio interpretation:
Climate projections for most mid-latitude regions suggest:
For design resilience, consider two scenarios:
Systems designed only around historical averages will underperform in drier-than-average years that are becoming more frequent.
V = A × R × C, where 1 mm of rain = 1 L per m² of roofPrevious: Chapter 2 — Water Demand Assessment
Next: Chapter 4 — Holding the Water: Tank Sizing and Storage Engineering