HomeHome Energy & Electrical › Rainwater Harvesting Calculator

Rainwater Harvesting Calculator

Computes the rainwater a roof can collect per year from its horizontal area, the annual rainfall and a runoff coefficient, the litres captured per millimetre of rain, and, given a daily demand and tank size, the days of supply a full tank covers and the share of demand the yield meets.

When to use

You are sizing a rain barrel or cistern, or want to know how much garden or toilet-flushing water a roof can supply.

Do not use when: You need a month-by-month storage simulation with overflow and dry spells, or potable-water treatment sizing; the yield is an annual average and ignores first-flush diversion and evaporation beyond the coefficient.

Formula

annual_yield_liters = roof_area_m2 × annual_rainfall_mm × runoff_coefficient; yield_per_mm_liters = roof_area_m2 × runoff_coefficient; days_of_supply = tank_size_liters / daily_usage_liters; fraction_of_demand_percent = min(100, annual_yield_liters / (daily_usage_liters × 365) × 100)

Standard catchment formula (yield = area × rainfall × runoff coefficient), 1 mm of rain on 1 m² = 1 litre. Actual capture depends on rainfall timing and tank overflow, so a tank sized for 2–4 weeks of demand is a common starting point.

Inputs

ParameterTypeUnitRequiredDescription
roof_area_m2numberyesHorizontal (plan) area of the roof draining to the tank, in square metres; slope does not change the catchment. Range: > 0, ≤ 1000000
annual_rainfall_mmnumbermmyesAverage yearly precipitation at the site in millimetres (1 mm = 1 L/m²). Range: ≥ 0, ≤ 15000
runoff_coefficientnumberdefault 0.8Fraction of rain that reaches the tank after evaporation, splash, gutter overflow and first flush: 0.8–0.9 metal or tile, 0.7–0.8 asphalt shingle, 0.5–0.6 green roof. Range: > 0, ≤ 1
daily_usage_litersnumberL/daynoOptional daily demand the rainwater should cover (e.g. 200 L for garden and toilets). Range: > 0, ≤ 1000000
tank_size_litersnumberLnoOptional storage volume, to report how many days of use a full tank covers. Range: > 0, ≤ 100000000

Outputs

OutputTypeUnitDescription
annual_yield_litersnumberLroof_area_m2 × annual_rainfall_mm × runoff_coefficient.
annual_yield_m3numberannual_yield_liters / 1000.
annual_yield_gallonsnumbergalannual_yield_liters / 3.785411784.
yield_per_mm_litersnumberL/mmroof_area_m2 × runoff_coefficient: litres collected per millimetre of rainfall.
monthly_average_yield_litersnumberLannual_yield_liters / 12.
days_of_supplynumberdaystank_size_liters / daily_usage_liters; only when both are given.
fraction_of_demand_percentnumber%annual_yield_liters / (daily_usage_liters × 365) × 100, capped at 100; only when daily usage is given.

Example

100 m² roof, 600 mm/year, 0.8, 200 L/day, 5,000 L tank: {"roof_area_m2":100,"annual_rainfall_mm":600,"runoff_coefficient":0.8,"daily_usage_liters":200,"tank_size_liters":5000}{"annual_yield_liters":48000,"annual_yield_m3":48,"yield_per_mm_liters":80,"days_of_supply":25,"fraction_of_demand_percent":65.75}

150 m² metal roof, 1,200 mm/year, 0.9: {"roof_area_m2":150,"annual_rainfall_mm":1200,"runoff_coefficient":0.9}{"annual_yield_liters":162000,"annual_yield_m3":162,"yield_per_mm_liters":135,"annual_yield_gallons":42796}

GET https://tttkmbb.com/api/v1/calculate/rainwater-harvesting?roof_area_m2=100&annual_rainfall_mm=600&runoff_coefficient=0.8&daily_usage_liters=200&tank_size_liters=5000

Machine access

Sources

FAQ

Do I use the sloped roof area or the footprint?

The horizontal footprint: rain falls vertically, so a sloped roof catches the same amount as its plan area.

Which runoff coefficient should I use?

0.8–0.9 for smooth metal or glazed tile, 0.7–0.8 for asphalt shingles or concrete tile, 0.5–0.6 for green roofs; subtract about 0.05 if a first-flush diverter is fitted.

How big should the tank be?

Enough for 2–4 weeks of demand is a typical rule; larger tanks help in climates with long dry spells but overflow unused capacity in wet ones.

Related calculators