Storm Risk Modelling
A postcode-level storm-impact model fusing satellite, radar, and historical claims data to score damage risk 72 hours ahead — contributing to £1.5M in avoided insurance claims.
What the model does
The model predicts storm damage severity at postcode level, 72 hours ahead, so insurers can prepare claims teams, route field assessors, and warn policyholders. It fuses satellite and radar imagery with historical claims outcomes to learn where general weather translates into actual damage.
Why weather models weren't enough
A wind-speed forecast isn't a damage forecast — the same storm causes very different losses across terrain, building stock, and exposure. Existing models gave coarse regional warnings; insurers needed spatially-resolved severity tied to what actually drives claims.
System architecture
Ingestion pipelines clean and spatially align 2TB+/month of climate data; a CNN fuses imagery with engineered geo-features, trained against historical claims as ground truth; outputs are rendered as a postcode risk map driving insurer alerts.
Data fusion & validation
The signal is in the fusion: imagery alone predicts weather, not damage. Joining historical claims as labels teaches the model where weather becomes loss. Forecasts are validated on held-out storm events before informing pricing.
def score_postcode(pc: Postcode, t0: datetime) -> RiskScore:
imagery = align(satellite.at(pc, t0), radar.at(pc, t0)) # spatial alignment
geo = geo_features(pc) # terrain, exposure
# CNN trained on historical claims as ground truth
return cnn.predict(stack(imagery, geo), horizon="72h") Architecture decision records
Train on claims, not weather severity
Decision: use historical claims as labels rather than predicting weather intensity.
Consequence: the model predicts damage — the quantity insurers actually price — capturing terrain and exposure effects a weather model misses.
Postcode granularity over regional
Decision: resolve risk to postcode rather than region.
Consequence: actionable routing of assessors and targeted policyholder warnings, at the cost of heavier geo-feature engineering.