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.
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
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.
Compute features per region
VPD, dry-day counts, soil moisture, wind anomalies, grid load deviation, drought category — about 40 features per component model.
Score with three component models
Fire, grid, drought — each its own XGBoost regressor. Conformal residuals from the last few thousand predictions become the interval.
Combine into compound
A fourth model takes the three component outputs and learns the interaction. The compound score is what fronts the dashboard.
Receipts
Top-3 SHAP features and raw inputs are stored alongside the score. Anyone can audit any prediction at /receipts/{id}.
RiskMesh is a research project. Not for emergency response, evacuation, or operational decision-making. Calibration is verified statistically, not certified.