Roof Catchment Calculator
Rainfall is measured as a depth in millimetres, and 1 mm of rain falling on 1 m² of horizontal area is exactly 1 litre of water.
Enter Values
How to use this calculator
- Enter your roof's plan (footprint) area in m² — the area seen from directly above, not the length of the sloped surface. Use the Roof Area Calculator first if you only know the pitch and footprint.
- Enter the rainfall depth in mm for the period you care about — your annual average for yearly yield, or a single storm depth for one event.
- Optionally set a runoff coefficient (defaults to 0.85). Read off the harvestable litres, cubic metres and average daily supply.
How it works
Rainfall is measured as a depth in millimetres, and 1 mm of rain falling on 1 m² of horizontal area is exactly 1 litre of water. The harvestable volume is therefore Yield (L) = catchment area (m²) × rainfall (mm) × runoff coefficient. The catchment area is the roof's plan (footprint) area — the horizontal projection — because rain falls vertically, so a steep roof collects no more water than its footprint.
The runoff coefficient accounts for water that never reaches the tank: initial wetting of the surface, splash and wind loss, evaporation, gutter overflow in intense downpours, and first-flush diversion. Clean metal roofs are efficient, so 0.80–0.90 is typical; tiled, textured or debris-prone roofs collect less. Multiplying by the coefficient turns the theoretical maximum into a realistic estimate of what you can actually store.
Worked example
150 m² roof, 800 mm annual rainfall. A house with a 150 m² roof plan area in a region receiving 800 mm of rain a year, using a runoff coefficient of 0.85, could collect 150 × 800 × 0.85 = 102,000 L (102 m³) per year — an average of about 279 L per day. Sizing a tank to store even a few weeks of that supply lets you ride out dry spells between rain events.
Common mistakes
- Using the sloped (rafter) surface area instead of the plan footprint. Rain falls vertically, so only the horizontal projection catches water — using the longer sloped length overestimates the yield.
- Assuming a runoff coefficient of 1.0. In reality 10–20% of rain is lost to wetting, splash, evaporation and overflow, so a coefficient of about 0.85 gives a realistic figure.
- Confusing total annual yield with usable supply. Yield is only captured if your tank has room to store it — a tank that overflows in the wet season delivers far less than the annual total suggests.
Frequently asked questions
Should I use the flat footprint area or the sloped roof area?
Use the flat plan (footprint) area — the area you would see looking straight down. Rain falls vertically, so a pitched roof collects exactly the same volume as its horizontal projection; the extra length of the slope does not gather more water.
What runoff coefficient should I use?
For a clean, smooth metal (Colorbond-style) roof, 0.85 is a good default and this tool uses it if you leave the field blank. Smooth roofs can reach 0.90; tiled, rough or leaf-littered roofs collect less, so 0.75–0.80 is safer. The coefficient covers losses to wetting, splash, evaporation, overflow and first-flush diversion.
Is 1 mm of rain really 1 litre per square metre?
Yes. A depth of 1 mm over an area of 1 m² is 0.001 m × 1 m² = 0.001 m³, and 0.001 m³ is exactly 1 litre. That exact relationship is why rainfall depth in millimetres converts so cleanly to harvest volume.
Does this size my rainwater tank?
Not directly — it tells you the total harvestable volume over the period. Tank size depends on how evenly the rain falls, your daily demand and how long a dry spell you need to cover. Pair the yield here with the Water Tank Volume Calculator to match a tank to that supply.
Related tools
- Soakwell Volume Calculator
- Water Tank Volume Calculator
- Roof Area Calculator
- Rainwater Harvesting Calculator
- Tank Days Supply Calculator
- Pipe Flow Calculator
Explore more in HVAC, Plumbing, Water & Building Services.
Tip: Enter any known values to calculate the remaining results.
All calculations run in your browser. Your inputs are never saved or transmitted.



