Purpose & Methods
En español →Why This Exists
This is a citizen science project. We built it because the people who live in the path of western wildfires and droughts deserve access to the same data and analysis that federal agencies and insurance companies use to make decisions about their lives. for free, without a paywall, without a login, without asking permission.
Our prediction model. Firewatch, is a gradient-boosted decision tree model (XGBoost) trained on 37 million observations across the western fire corridor (11 states + BC). It draws on 26 years of daily climate at 4km resolution, about 900 SNOTEL stations, 9,800+ large-fire perimeters as prediction targets, 312,000 fires for cause classification, fuel maps, soil moisture, snow disappearance timing, and topography to identify where large fires are most likely to burn.
The 0.911 AUC-ROC and 10.4x lift previously shown here are withdrawn: the evaluation behind them allowed spatial memorization (the model could learn which cells tend to burn). The model is being re-validated with spatially and temporally blocked held-out testing. Results will be reported on the Scorecard as precision-recall, lift and top-decile capture against a climatology baseline, plus calibration, not AUC-ROC alone. The model targets where large fires (>1,000 acres) concentrate, not individual ignitions.
15. Snow disappearance date (new to v1.0, after Westerling et al. 2006)
| Dataset | Source | Coverage |
|---|---|---|
| Daily climate (VPD, fuel moisture, temp, precip, wind, BI) | gridMET (U of Idaho) | 2000–2025, 4km, 32–49°N |
| Wind direction (east wind frequency) | gridMET, 4km daily | 2000–2025, % summer easterly |
| Snowpack (daily SWE) | NRCS SNOTEL + SNODAS | about 900 stations, 11 states, 1981–2026 |
| Snow disappearance date | Computed from SNOTEL | 2000–2025 (novel feature) |
| Soil moisture (8-inch) | SNOTEL SMS sensors | 55 stations, summer 2000–2025 |
| Fire perimeters | NIFC WFIGS + MTBS | 6,853 perimeters, 11 states, 1992–2024 |
| Burn severity | USGS MTBS | 7,949 fires >1,000 ac, 1984–2024 |
| Fire cause | FPA-FOD | 312,000 fires, lightning vs human |
| Canadian fires | NFDB | 155,198 BC records + 1,878 polygons |
| Fuel type + canopy | LANDFIRE | FBFM40, EVT, canopy cover, 30m |
| Topography | GMTED2010 DEM | Elevation, slope, aspect, 250m |
| Climate indices | NOAA CPC | ENSO Niño 3.4, PDO, ENSO velocity |
| Reservoir storage | NRCS AWDB (BOR network), USBR RISE/HDB, CA DWR CDEC | Map: 39 major reservoirs; state totals: 328 reservoirs, 11 states (some monthly values) |
| Air quality (PM2.5) | EPA AQS + PurpleAir | ~700 EPA monitors (not re-verified) + ~10,700 PurpleAir sensors (EPA-corrected, 2026-10-01) |
| Summer temperature | NOAA NCEI | 131 years (1895–2025), 11 states |
| Smoke feedback | EPA AQS annual PM2.5 | Prior-year smoke as predictor (novel) |
| Version | AUC | Key change |
|---|---|---|
| v0.1–0.3 | 0.67–0.72 | PNW annual grid, added topography + LANDFIRE + fire cause |
| v0.4 | 0.841 | Monthly resolution (biggest single improvement) |
| v0.5–0.6 | 0.90–0.91 | Full western corridor, lag features, interaction terms, ensemble |
| v0.7 | 0.913* | SNODAS gridded SWE. *Leaked metric — test set used during tuning. |
| v0.8 | 0.901 | Proper 3-way split, ENSO/PDO, held-out test. |
| v0.9 | 0.909 | 11-state SNOTEL, SWE anomaly, VPD×SWE interaction. |
| v1.0 | 0.911 (withdrawn) | Snow disappearance, east wind, prior-year precip, reservoir anomaly, ENSO velocity, soil moisture, smoke feedback. 50 features. First public production release. |
Roadmap
Planned · Not yet in production
| Target | Component | Gap it closes |
|---|---|---|
| v1.1 | Live forecast + fire tracking | Daily 4km risk grids for 2026 fire season. VIIRS satellite hotspot detection (375m) for near-real-time active fire tracking. |
| v1.2 | Fuel + vegetation | LANDFIRE fuel loading maps and NDVI-derived live fuel moisture. Closes the biggest input gap in the current model. |
| v1.3 | Wind + smoke dispersion | Sub-daily HRRR winds to capture Diablo, Santa Ana, and east wind events. Atmospheric mixing height for real smoke transport modeling. Fuel-composition smoke toxicity. |
| v2.0 | Data quality + coverage | Resolve SWE measurement discontinuity at 2010 (SNOTEL station interpolation vs. SNODAS gridded). Expand Canadian coverage with ECCC station data and CFS reanalysis. |
| v2.1 | Consequence modeling | Fire behavior (rate of spread, flame length, spotting). WUI structure exposure mapping. Post-fire burn severity (dNBR) for damage assessment and model retraining. |
Station-level, no spatial prediction
25km global, monthly (GMD). Uses r not AUC-ROC,0.80 is approx.
Monte Carlo simulation
Daily, 375m, not public
Firewatch is not shown: its earlier 0.911 AUC-ROC was withdrawn pending spatially and temporally blocked re-validation (see Scorecard).
Known Limitations
This platform is free, independent, and updated daily. No paywalls, no ads, no sponsors to answer to. Just the data. If it’s useful to you, here’s how to get involved.
Fund the work
Your support covers hosting, data access, and the time it takes to maintain a platform that anyone can use. A coffee goes a long way.
Support PCSNSend a tip or correction
Spotted an error? Have a data source we should know about? Media inquiry or partnership proposal? We read everything and fix mistakes the same day.
Send a messageContribute expertise
We’re building a network of named expert contributors, scientists, modelers, and domain specialists who maintain specific components of the platform.
Get in touchSeason Severity Index (SSI)
The headline label on the home page (LOW / MODERATE / HIGH / VERY HIGH / EXTREME) and thecomposite_score in public/threat_level.json are produced by a documented weighted formula in scripts/build_threat_level.py, run daily by the public GitHub Actions workflow. No hand-editing.
| Component | Weight | Input | Scoring rule |
|---|---|---|---|
| Snowpack (amount)† | 0.20 | 11-state mean SWE % of normal | 100 − 0.7 × (% of normal), clamped |
| Early-season fires | 0.20 | WFIGS active incidents and acres (today, not year-to-date) | Intended: percentile rank vs historical full-year acres. Currently: hand-set bounds, saturates at 100 (see Known problems) |
| Drought / precip | 0.15 | Water-year precip % of 1991–2020 normal | Same as snowpack rule |
| VPD anomaly‡ | 0.15 | Annual VPD time series | 30 + 25 × z-score vs early baseline |
| ENSO state | 0.10 | NOAA Niño 3.4 annual anomaly | 20 + 40 × |anomaly|, clamped |
| Capacity loss | 0.10 | Qualitative (USFS workforce, budget) | Static config, reviewed monthly |
| Air quality | 0.05 | % PurpleAir sensors > AQI 100 | 10 + 4.5 × pct, clamped |
| Insurance stress | 0.05 | Qualitative (FAIR plan, non-renewals) | Static config, editorial judgment; monthly review cycle (overdue: last reviewed June 14, 2026) |
Composite = Σ (component score × weight). Weights sum to 1.00. Level mapping: 0–20 LOW, 21–40 MODERATE, 41–60 HIGH, 61–80 VERY HIGH, 81–100 EXTREME. These levels are PCSN’s own; they are not National Fire Danger Rating System (NFDRS) adjective ratings.
Known problems (October 1, 2026; under review, weights not yet changed). (1) The “early-season fires” component has no historical baseline wired in: hand-set bounds saturate at 100 (its unclamped value is far above 100), it counts prescribed burns and mostly contained fires, and by October it is not “early season”. Treat it as context, not a score. (2) Capacity loss and insurance stress are editorial judgments, and their review is overdue. (3) The snowpack component still uses the water-year 2026 snapshot from near April 1, 2026. (4) The air-quality component switched to EPA-corrected PurpleAir values on 2026-10-01, which are lower than the raw values used before (a break in the series). Because the weights are part of a published method, they are not changed silently; threat_level.json now also carries sensitivity versions of the composite without the judgment components and without the early-season-fires term, labelled as sensitivity analyses.
† On snowpack — amount vs. timing. This component scores snowpack amount (April–1 SWE % of normal). Recent science (NOAA NIDIS; Westerling et al. 2006/2016; Environ. Res. Lett. 2025) finds the stronger link to fire-season onset is snowmelt timing — how early the snow disappears — while snowpack amount relates more to burn severity. This is why a snow-amount-only correlation with area burned is weak (r = −0.16 in our historical record). Our forecast model already uses snow-disappearance timing; upgrading this composite component from amount to a melt-timing signal is a documented, planned change.
‡ On the VPD baseline. VPD is z-scored against an early (1979–early-2000s) reference period. Two cautions from recent literature (He et al. 2025, GRL; Zhuang & Fu 2026, GRL): (a) the absolute VPD value depends on formulation — computing it from daily Tmax/Tmin rather than mean temperature shifts it ~20% — though this has little effect on the annual VPD–area-burned relationship; and (b) because the climate has warmed against a fixed early baseline, this anomaly is partly a trend signal. Notably, VPD on fire-ignition days shows no significant trend even as regional VPD rises, meaning less extreme weather now suffices to start large fires — consistent with fire risk expanding into areas historically less prone to it. Re-baselining to a rolling reference is under review.
Computed components draw from public/*.json generated by the same daily workflow. Qualitative components live in scripts/threat_components_static.json; both files are in the public repo, history is auditable. Past hand-edited values for these have been retired.
PCSN is a single-contributor citizen science project. The site is researched, written, and maintained by one editor of record; errors of fact or interpretation are the editor’s. The site does not run an editorial board and does not claim institutional review.
Sourcing. Every numeric claim links to or names a primary federal, provincial, or peer-reviewed source: NOAA, NRCS, USGS, USFS, NIFC, MTBS, NSIDC, NRCan, FEMA, EPA, BLS, NDMC. Where a figure depends on the Firewatch model output, the model card and training period are linked. Hand-edited values are flagged in site_stats.json with a _last_reviewed date and a source citation.
Language. AUC-ROC is reported as AUC-ROC, not “accuracy.” The model predicts where fire is most likely, not where fire will occur. “Live” only describes data fetched at view time; static snapshots are labeled with their date. The Smoke layer on the dashboard map is a retrospective historical fit, not a forecast; for live smoke and AQI use fire.airnow.gov or NOAA HRRR-Smoke.
Life safety. This site is not an alert system and is not an operational tool for evacuation or fire-line decisions. Life-safety content (/emergency, /prepare, /lite) cites Ready.gov, EPA, CDC, NWS, and state emergency-management agencies and links directly to official sources. When the site’s data pipeline is stale or down, those pages still work.
Reproducibility. Every published artifact is generated by a script committed to the public repository. The daily data pipeline runs on GitHub Actions on a public schedule (13:00 UTC), and every commit by the pipeline bot is auditable in git history. Model code, training data specifications, and feature engineering live in a companion repository.
Corrections. If you find a factual error, broken citation, or methodological concern, email corrections@pnw-firemap.org with the URL and a description. The site keeps an updates timeline on the homepage; substantive corrections are dated and noted there.
Independence. PCSN is independent, not affiliated with any federal, state, tribal, provincial, or commercial agency. It accepts no advertising, no sponsored placement, and no undisclosed compensation. All data sources are public and itemized in the model card and the per-page source notes.
All data from publicly available federal, state, and provincial sources. Model trained on 2000–2019, validated on held-out test years 2020–2024 never seen during training.