A rainwater harvesting system without adequate storage is like a bucket without a bottom — collection is useless if you cannot hold the water until you need it. Storage is usually the largest capital cost and the component most sensitive to under- or over-sizing. This chapter covers the methods for sizing storage correctly and the technical characteristics of each tank type.
The fundamental tool for storage sizing is a monthly mass balance. Each month, water enters the tank (from collection) and leaves the tank (to meet demand). The tank must bridge the gap between supply and demand.
The mass balance equation:
S(t) = S(t-1) + Inflow(t) - Demand(t)
With constraints:
S(t) ≥ 0 (tank cannot go negative — deficit means mains backup kicks in)S(t) ≤ Tank_Capacity (excess overflows)Running this equation month by month across a full year reveals:
Inputs:
| Month | Supply (L) | Demand (L) | Net (L) | Cumulative net (L) |
|---|---|---|---|---|
| Jan | 5,328 | 7,000 | −1,672 | −1,672 |
| Feb | 4,464 | 7,000 | −2,536 | −4,208 |
| Mar | 4,320 | 7,000 | −2,680 | −6,888 |
| Apr | 5,184 | 7,000 | −1,816 | −8,704 |
| May | 5,112 | 7,000 | −1,888 | −10,592 |
| Jun | 3,744 | 7,000 | −3,256 | −13,848 |
| Jul | 2,448 | 7,000 | −4,552 | −18,400 |
| Aug | 3,096 | 7,000 | −3,904 | −22,304 |
| Sep | 4,968 | 7,000 | −2,032 | −24,336 |
| Oct | 6,336 | 7,000 | −664 | −25,000 |
| Nov | 5,904 | 7,000 | −1,096 | −26,096 |
| Dec | 6,120 | 7,000 | −880 | −26,976 |
| Annual | 57,024 | 84,000 | −26,976 |
In this Bordeaux example, annual supply (57 m³) is less than annual demand (84 m³). The system can only supply 68% of non-potable demand annually — mains backup covers the rest. Storage is still valuable, but no tank size can achieve 100% autonomy with this roof.
For a wetter location (e.g., Bergen, Norway — 2,000 mm/year), the same roof would yield 144 m³/year — far exceeding demand. Here, storage sizing is driven by bridging the seasonal dry gap.
The Rippl Method (for surplus-on-average systems):
The Rippl method finds the minimum tank size needed to ensure continuous supply when annual supply ≥ annual demand. Track cumulative supply and cumulative demand. The required storage is the maximum vertical gap between the two curves.
def rippl_tank_size(monthly_supply, monthly_demand):
"""
Rippl method: find minimum tank size.
Assumes annual supply >= annual demand.
Returns required tank size in same units as inputs.
"""
cumulative_supply = 0
cumulative_demand = 0
max_deficit = 0
for s, d in zip(monthly_supply, monthly_demand):
cumulative_supply += s
cumulative_demand += d
deficit = cumulative_demand - cumulative_supply
if deficit > max_deficit:
max_deficit = deficit
return max(0, max_deficit)
For most practical designs, a month-by-month simulation is more reliable than the Rippl method. It handles cases where annual demand exceeds annual supply, and allows modeling of mains backup top-up logic.
def simulate_tank(monthly_supply, monthly_demand, tank_capacity, initial_level=None):
if initial_level is None:
initial_level = tank_capacity / 2
level = initial_level
mains_backup = []
overflow = []
levels = []
for s, d in zip(monthly_supply, monthly_demand):
level = min(level + s, tank_capacity) # add supply, cap at max
actual_demand = min(level, d) # only draw what's available
shortfall = d - actual_demand
level -= actual_demand
mains_backup.append(shortfall)
levels.append(level)
return levels, mains_backup
Running this simulation for various tank capacities lets you plot autonomy vs. tank size and identify the point of diminishing returns.
Typical autonomy vs. tank size (Bordeaux, 80 m² roof, 7,000 L/month demand):
| Tank size (L) | Annual autonomy (%) |
|---|---|
| 2,000 | 52% |
| 5,000 | 61% |
| 10,000 | 66% |
| 20,000 | 68% |
| 50,000 | 68% |
Beyond ~10,000 L, the curve flattens because the binding constraint is annual supply, not storage capacity. Adding more tank does not increase autonomy when you have already captured all available rain.
For early-stage planning before running a full simulation:
Small supplemental system: 2–4 weeks of average demand
Tank = 7,000 L/month × 3 weeks / 4.3 = ~5,000 L
Full-coverage system in moderate rainfall: 6–10 weeks of average demand
Off-grid system in variable climate: 3–6 months of average demand for the driest months
Apply a safety factor of 1.2–1.3 to account for uncertainty in rainfall data and demand variation.
The most common choice for residential rainwater storage.
| Property | Detail |
|---|---|
| Material | High-density polyethylene |
| Typical sizes | 500 L to 30,000 L |
| Installation | Above-ground or underground (specific underground-rated models) |
| Food grade | Food-grade PE is BPA-free and safe for water storage |
| UV resistance | Black or dark green tanks inhibit algal growth; UV-stabilised |
| Lifespan | 20–40 years |
| Cost | Moderate; decreases per-liter as size increases |
| Maintenance | Easy to inspect and clean; lid access |
Watch out for: Standard above-ground PE tanks degrade with direct UV exposure over time; choose UV-stabilised formulations or shade the tank.
A low-cost, durable option suited to large volumes and site-built construction.
| Property | Detail |
|---|---|
| Construction | Wire mesh reinforcement, layered cement mortar |
| Typical sizes | 2,000 L to 50,000 L+ |
| Installation | Site-built, usually cylindrical |
| Lifespan | 30–50+ years |
| Cost | Low material cost; higher labour cost |
| Maintenance | Inspect for cracks every 2–3 years; re-render if needed |
Used in situations where above-ground space is constrained or frost protection is needed.
| Property | Detail |
|---|---|
| Material | Reinforced concrete, cast in-situ or precast |
| Typical sizes | 5,000 L to 100,000 L |
| Depth | 1.5–4 m to tank base |
| Structural | Must account for soil pressure, water table, traffic loading |
| Water quality | Slightly alkaline pH from lime leaching; monitor and adjust |
| Access | Inspection hatch essential; confined space entry procedures required |
Important: Underground tanks require structural design if under driveways or vehicular areas.
IBCs are 1,000 L plastic containers in a steel cage, originally designed for industrial bulk liquid transport. They are widely repurposed for rainwater storage.
| Property | Detail |
|---|---|
| Volume | 1,000 L per unit; can be manifolded |
| Cost | Very low (second-hand IBCs readily available) |
| Quality | Use only IBCs previously containing food-grade or water products — never chemical IBCs |
| UV | Susceptible; wrap or shade |
| Lifespan | 10–15 years for repurposed food IBCs |
Risk: IBCs that previously contained chemicals can leach contaminants even after cleaning. Only use food-grade or water-certified IBCs.
Flexible tanks for space-constrained applications (loft spaces, underfloor voids).
| Consideration | Above-Ground | Underground |
|---|---|---|
| Cost | Lower | Higher (excavation) |
| Gravity feed | Possible with raised mounting | Requires pump to pressurize |
| Frost risk | High in cold climates | Insulated by soil below frost line |
| Algal growth risk | Higher (light exposure) | Lower (dark, cool) |
| Space requirement | Significant yard/garden space | Minimal above-grade footprint |
| Inspection/cleaning | Easy | Harder; confined space risks |
| Structural design | Simple | Required (soil and traffic loads) |
Gravity feed threshold: For 1 bar (100 kPa) of useful pressure, the water surface in the tank must be approximately 10 m above the point of use — impractical for most above-ground tanks. A pressure pump is therefore needed in most configurations (covered in Chapter 5).
Tanks connected in series — water fills Tank 1, overflows to Tank 2. The first tank acts as a settling chamber (collects sediment); the second remains cleaner.
Multiple tanks connected at base — fill and draw simultaneously, behaving as one large tank.
Mass (kg) = Volume (L) × 1 kg/L
A 10,000 L tank weighs 10 tonnes when full. This is a significant structural load:
For gravity-fed systems:
P (kPa) = ρ × g × h = 1000 × 9.81 × h / 1000 ≈ 9.81 × h
Where h is the height of the water surface above the outlet in meters.
1 meter of head ≈ 9.8 kPa ≈ 0.1 bar
For useful shower pressure (minimum ~1 bar = 10 m head), the tank surface would need to be 10 m above the shower head — not feasible in most homes without a pump.
| Component | Sizing rule |
|---|---|
| Inlet pipe | Size for maximum expected inflow rate (peak storm runoff) |
| Outlet pipe | Size for maximum pump flow rate + 50% margin |
| Overflow | At least as large as the inlet; direct to storm drain or soakaway |
| Vent | Insect-screened (0.5 mm mesh); sized to allow free filling/emptying |
| Sump outlet | 50–100 mm above tank floor to avoid drawing sediment |
Stagnant water is a mosquito breeding habitat. A properly designed tank has:
S(t) = S(t-1) + Inflow - Demand) is the primary sizing toolPrevious: Chapter 3 — Rainwater Harvesting Potential
Next: Chapter 5 — Moving Water: Pipes, Pumps, and Infrastructure