Urban flooding happens exactly where rainfall outpaces the combined capacity of drainage infrastructure and absorptive green surfaces to handle it.
flood_depth = max(0, rainfall - drainage_capacity - green_absorption)
- City grid size — city blocks tracked for stormwater accumulation.
- Drainage capacity — share of blocks with adequate stormwater drainage infrastructure.
- Rainfall intensity — storm event size, increasingly extreme under climate change.
- Green-infrastructure absorption — how much rain gardens and permeable surfaces soak up before it becomes runoff.
Cities that upgraded drainage capacity and added absorptive green infrastructure after major flood events have cut repeat-flood damage by more than half in follow-up storms.