About RiskMesh

Quiet seasons
deserve honest numbers.

RiskMesh is a compound climate-risk forecaster for four California regions. It predicts how fire, grid, and drought will interact over the coming days — calibrated, explainable, and never louder than the data warrants.

Calibrated, not loud.

Every score ships with an interval that says how unsure we are. Coverage is verified on held-out residuals, not asserted. If we don't know, we say so.

Compound, not single-hazard.

Fire, grid stress, and drought interact. RiskMesh trains a separate model for each component, then a fourth model for the way they overlap. The compound score is the one that matters when it matters.

Explainable, not magic.

Every prediction has receipts: which features moved the score, by how much, and what the inputs looked like. SHAP attributions, not vibes.

Honest about novelty.

If the inputs look unlike anything the model trained on, the OOD badge fires. The score still renders — but you know to be skeptical.

Stack

Built on open data and open source.

Models
XGBoost · gradient-boosted trees
Calibration
Split conformal · 80% & 90% intervals
OOD
Mahalanobis distance · 99th-pctile cutoff
Explainability
TreeSHAP · per-prediction attributions
Backend
FastAPI · Postgres · Railway
Frontend
Next.js 14 · React 18 · Vercel
Data
NOAA · USDM · FIRMS · EIA · Open-Meteo
Code
github.com/bdbb/riskmesh
How it works
01

Pull upstream feeds

Weather, vegetation, drought monitor, fire detections, and grid load from authoritative sources. Cached with TTLs that match each feed's update cadence.

02

Compute features per region

VPD, dry-day counts, soil moisture, wind anomalies, grid load deviation, drought category — about 40 features per component model.

03

Score with three component models

Fire, grid, drought — each its own XGBoost regressor. Conformal residuals from the last few thousand predictions become the interval.

04

Combine into compound

A fourth model takes the three component outputs and learns the interaction. The compound score is what fronts the dashboard.

05

Receipts

Top-3 SHAP features and raw inputs are stored alongside the score. Anyone can audit any prediction at /receipts/{id}.

Disclaimer

RiskMesh is a research project. Not for emergency response, evacuation, or operational decision-making. Calibration is verified statistically, not certified.