How the Ember Index is computed

A transparent composite, not a black box.

The Ember Index is a weighted composite of eleven factors — seven static parcel attributes and four live-condition inputs — normalized to a 0–100 scale. Static factors set the parcel baseline. Live factors decide how much today's conditions push the score above or below that baseline. Scoring covers California addresses; the labels and weights below are exactly the ones the app applies to a California parcel.

The formula

Each factor is normalized to a 0–100 value, then combined by weighted mean:

ember_index = Σ (factor.value × factor.weight)
              ─────────────────────────────────
                    Σ factor.weight

baseline = same formula using only the 7 static factors
live_delta = ember_index − baseline

Static factors sum to 0.60; live factors sum to 0.40. A parcel with a poor baseline (Very High FHSZ, steep S-facing slope, cured fuel) will read high even on a calm day. A moderate parcel can jump 20+ points during a Red Flag / dry downslope wind event.

Normalization

Each factor is scaled into a 0–100 value using a domain-specific curve tied to the underlying physics or agency rating — not a percentile rank across parcels. FHSZ classes map to fixed anchor points (Moderate → 40, High → 65, Very High → 90). Slope is converted via the Rothermel rate-of-spread multiplier and clamped to 0–100. NDVI is linearly rescaled between 0.50 (green, → 0) and 0.15 (cured, → 100). Wind blends gust (0 mph → 0, 60+ mph → 100) with the dry-downslope-wind score and an RH penalty. Active-fire and hotspot factors combine proximity, wind alignment, size, and containment into a 0–100 composite. The upshot: a "70" on fuel state or wind means the same physical condition in Malibu as in Altadena.

How weights were set

Static weights reflect each factor's established role in fire-agency and insurer risk models. CAL FIRE FHSZ carries the largest static weight (0.15) because it is the only authoritative fuel/terrain hazard rating. CPUC HFTD (0.09) captures utility-driven ignition risk, which recent postmortems (Camp, Kincade, Woolsey) have shown to be a leading real-world ignition source independent of fuel/terrain hazard. Slope, fuel state, and ember drift take mid-weights (0.07–0.10) because they materially change fire behavior but are inferred from remote-sensing and terrain data. Live weights concentrate on wind/RH (0.15) and active-fire proximity (0.12), since those inputs drive the fastest short-term swings in real risk. A self-reported home-hardening credit of up to 32 points is subtracted from both the baseline and the live composite, and the whole result is clamped to 0–100. The weights are engineering choices, not fitted coefficients — they are chosen to keep any single factor from dominating and to keep live conditions capable of moving the score by 20+ points without overwhelming the baseline.

The eleven factors

These labels, weights, and static/live types match the in-app factor breakdown line for line. One caveat: utility ignition risk requires a real CPUC High Fire Threat District reading. Outside California the CPUC has no equivalent map, so that factor is omitted rather than guessed and its 0.09 weight is redistributed across the remaining ten by the weight-sum normalization above.

FactorWeightTypeData source · cadence
CAL FIRE hazard zone
CAL FIRE Fire Hazard Severity Zone for the parcel (Moderate / High / Very High). Authoritative on classification. Measures fuel- and terrain-driven hazard — distinct from utility ignition risk (HFTD).
0.15Baseline
CAL FIRE FHSZ 2024 (SRA + LRA)
Reissued periodically by CAL FIRE
Slope × aspect
Rothermel rate-of-spread multiplier from parcel slope, with a 15% kicker for S/SW/W-facing aspects.
0.09Baseline
USGS 3DEP 10-m DEM
Static
Fuel state (NDVI + dryness)
Vegetation condition from Sentinel-2 NDVI (satellite greenness over the parcel) blended with fuel dryness derived from observed weather: vapour-pressure deficit, days since the last wetting rain (≥ 2.5 mm), and 30-day rainfall total. It counts toward the static baseline, and the row is flagged “Live” in-app when a fresh dryness reading is present.
0.10Baseline
Copernicus Sentinel-2 NDVI (satellite) blended with observed weather (Open-Meteo / NWS)
NDVI ~5-day revisit, weather-derived dryness hourly
Ember drift potential
Static estimate of firebrand transport potential using an Albini spotting model over upwind fuels/terrain.
0.07Baseline
Albini (1979) spotting model over LANDFIRE fuels
Static
Defensible-space gap
Shortfall against PRC 4291 Zone 0-2 compliance derived from parcel geometry and vegetation.
0.07Baseline
County assessor parcel geometry + Sentinel-2 NDVI
Static, updated on parcel change
Fire response time
Drive-time proxy to the nearest engine company. In LA County, sourced from LACoFD + LAFD eGIS; elsewhere in California, from CAL FIRE's statewide fire-station directory with a Direct Protection Area drive-time fallback where station-level GIS is unavailable.
0.03Baseline
LACoFD / LAFD eGIS · CAL FIRE statewide fire-station directory · DPA drive-time fallback
Static
Utility ignition risk (HFTD)
CPUC High Fire Threat District tier (Tier 2 Elevated / Tier 3 Extreme / non-HFTD), sharpened by a bounded ±8 modifier for proximity to mapped transmission corridors. FHSZ measures fuel and terrain-driven hazard; this factor measures ignition risk from utility infrastructure — a parcel can score low on one and high on the other. Gas pipelines are shown as map context only and never enter the score.
0.09Baseline
CPUC High Fire Threat District maps · HIFLD/EIA transmission lines
Updated periodically by CPUC
Wind · Santa Ana / Sundowner / Diablo · RH
Peak-gust and relative-humidity contribution, weighted 55% gusts + 35% dry-downslope-wind score, with an RH penalty below 25%. The factor label in-app is named for the local California regime — Santa Ana or Sundowner in Southern California, Diablo in Northern California.
0.15Live
NOAA HRRR (3-km)
Hourly
NWS Red Flag / Fire Wx
Active Red Flag Warnings, Fire Weather Watches, High Wind Advisories at the parcel.
0.08Live
NWS CAP alerts
Continuous
Active fires (prox · wind)
Distance, size, containment, and wind-alignment of active WFIGS incidents within 50 mi.
0.12Live
NIFC WFIGS
Every 5 minutes
Thermal signatures (24h)
VIIRS thermal detections ≤ 15 mi, with a structure-fire flag for urban-signature hotspots. The map additionally shows unscored GOES geostationary heat clusters (~10-min refresh) as early, unconfirmed detections.
0.05Live
NASA FIRMS VIIRS 375-m + NOAA GOES ABI
Multiple passes/day + every ~10 min

Bands

Low
0–34
Moderate
35–54
Elevated
55–69
High
70–84
Extreme
85–100

Limitations

  • The Ember Index is a modeled composite, not a certification.
  • Only CAL FIRE FHSZ status is authoritative. All other factors are best-effort estimates from public data.
  • Not a substitute for on-site inspection by a licensed fire protection engineer or WUI-qualified inspector.
  • Not an insurance underwriting decision. Carriers make their own determinations.
  • Data availability varies by region — Sentinel-2 requires cloud-free passes; VIIRS depends on satellite overpass timing.
  • The Index reflects a moment in time. A Red Flag Warning or dry downslope wind event can move a parcel two bands in hours.
  • Fuel state and defensible-space gap both draw on Sentinel-2 vegetation data, so they are not fully independent signals — the composite treats this as an accepted simplification rather than double-counting risk.
  • CPUC HFTD tiers reflect utility-designated zones and may lag real-world vegetation/infrastructure changes between update cycles.
  • Fuel dryness is derived from gridded weather observations (roughly 10 km resolution), not from field-sampled fuel moisture. The National Fuel Moisture Database publishes no open API, so we do not claim station-sampled moisture readings.
  • Fire response time estimates may be less precise outside Los Angeles County where detailed station-level GIS data is unavailable; in these cases the Index falls back to CAL FIRE statewide station data and broader Direct Protection Area drive-time estimates.