# Hazard-map lanes: river flood, coastal flood and wildfire

Three model-lab lanes answer from **published hazard maps** instead of an
event set: for each of your places they read the mapped flood depth at
every published return period, or the mapped annual burn probability, and
say what that means for the value you send. They are fast (seconds for a
schedule of thousands of places) and they are only as good as the maps.
This page says which maps, how a depth becomes a loss, how the average
annual loss is built from return periods, and what these lanes cannot tell
you. How to submit a run is in [the agent walk](agents.md); the metrics
block shared by every lane is in [Lab metrics](lab-metrics.md). Every lab
model is an open model, run as its authors published it on fixed inputs.
Craton has not validated it.

| Lane | Spec `model` | Version | Map | Where |
|---|---|---|---|---|
| River flood | `river-flood` | `jrc-glofas-2.1.2-r1` | JRC/CEMS-GloFAS global river flood hazard maps v2.1.2, about 90 m | Contiguous US, Puerto Rico, Dhaka, Manila, Jakarta, Lagos, Sao Paulo, Tokyo |
| Coastal flood | `coastal-flood` | `aqueduct-floods-2-r1` | WRI Aqueduct Floods v2, coastal, 2010 baseline, about 1 km | Worldwide |
| Wildfire | `wildfire` | `usfs-fsim-2023-r1` | USFS FSim burn probability and flame length, RDS-2016-0034-3, 270 m | Contiguous US, Alaska, Hawaii |

Every figure is **ground-up**: the loss to the buildings before any
deductible, limit or reinsurance. `https://lab.oncraton.com/models` lists
each lane's version, pinned inputs, coverage and caps (5,000 places a run).

## River flood

```json
{"model": "river-flood", "sector": "residential", "exposure": {"points": [
  {"lat": 29.688, "lon": -95.46, "value": 1000000},
  {"lat": 38.64, "lon": -121.52, "value": 1000000},
  {"lat": 23.8223, "lon": 90.3654, "value": 250000}
]}}
```

The lane reads the JRC/CEMS-GloFAS global river flood hazard maps, version
2.1.2: water depth in meters at 3 arc seconds (about 90 m) for floods of
return period 10, 20, 50, 75, 100, 200 and 500 years. The lab holds 24 of
the 271 map tiles, each 10 by 10 degrees: the contiguous United States,
Puerto Rico, and the tiles around Dhaka, Manila, Jakarta, Lagos, Sao Paulo
and Tokyo (`footprint.tiles` on `/models` gives their corners). A place
outside them comes back `unmodeled`, as does a place in a cell JRC flags
for unreliable depths (depths over 10 m in small channels, plus 2 km around
them) or in a permanent river or lake cell, where the map holds the river's
own depth rather than a flood.

`sector` picks the depth-damage curve: `residential` (the default),
`commercial` or `industrial`.

## Coastal flood

```json
{"model": "coastal-flood", "sector": "residential", "exposure": {"points": [
  {"lat": 30.005, "lon": -90.1, "value": 1000000},
  {"lat": 14.62, "lon": 120.965, "value": 250000}
]}}
```

The lane reads WRI's Aqueduct Floods v2 coastal inundation depth, historical
baseline: sea level as of 2010 with no subsidence, 30 arc seconds (about
1 km), return periods 2, 5, 10, 25, 50, 100, 250, 500 and 1,000 years,
worldwide. A place inland of any mapped coastal flooding is modeled and
dry. A waterfront place whose 1 km cell is sea takes the nearest land cell
within about 2 km (`snapped_to_land` on the place, and a warning); with no
land that close it comes back `unmodeled`.

## From depth to loss

Both flood lanes turn a depth into a damage ratio with the JRC global
depth-damage functions (Huizinga, de Moel and Szewczyk 2017): one curve per
continent and sector, from 0 to 6 m of water. The place's continent comes
from its country (Natural Earth outlines) by UN region: **North America**
means the United States and Canada, and Mexico, Central America, the
Caribbean and South America use the **Central and South America** curve,
which is how the curves' own sources were grouped. Where the workbook
publishes no curve for a continent and sector (commercial buildings in
Africa, industrial buildings in Oceania) the published global curve for
the sector applies, and a warning says so.

- A dry cell does no damage. The curve's 0 m value applies from 5 cm of
  water, as in CLIMADA Petals, and damage stays at its 6 m value beyond
  6 m.
- The North American curves start at 20% (residential) at ground level
  because their sources include buildings with basements. Shallow water at
  a slab-on-grade building likely shows too much loss.
- The damage ratio applies to the whole value you send for the place.

`metrics.damage_curve` names the curves applied and to how many places;
`metrics.damage_curve_sensitivity` runs the same depths through all three
sectors' curves.

## Average annual loss from return periods

A hazard map gives, at each place, the loss at each published return
period. The **average annual loss** (`aal`) is the area under that loss
plotted against annual exceedance probability (1 / return period), with
straight lines between the published return periods:

- floods more frequent than the first return period (1 in 10 for river
  flood, 1 in 2 for coastal) add no loss, which makes the AAL low on that
  side for places that flood often;
- floods rarer than the last (1 in 500, or 1 in 1,000) cause the last
  return period's loss; `metrics.aal_method.rarer_share_of_aal` says how
  much of the AAL that tail is, and a warning appears when it passes a
  quarter.

For one place losing $1,000 at every return period, the river AAL is
$1,000 / 10 = $100. The portfolio AAL is the sum of the places' AALs, which
is exact whatever the correlation between places.

`metrics.ep` lists `{return_period, loss}` at each published return period:
the sum over places of **each place's own 1-in-N loss**. These are
single-site hazard-curve losses, not an OEP or AEP from an event set. For
one place they are its 1-in-N loss; for places far apart they overstate the
portfolio's 1-in-N loss, because the places do not all flood in the same
year. There is no standard deviation, TVaR or block spread: a map has no
simulated years to count.

## Wildfire

```json
{"model": "wildfire", "exposure": {"points": [
  {"lat": 39.999, "lon": -105.293, "value": 1000000},
  {"lat": 39.7596, "lon": -121.6219, "value": 500000}
]}}
```

The lane reads the USFS national FSim wildfire hazard (Dillon et al. 2023,
RDS-2016-0034-3): for each 270 m cell of the contiguous United States,
Alaska and Hawaii, the **annual burn probability** and, if the cell burns,
the probability of six flame-length classes (under 2 ft, 2 to 4, 4 to 6,
6 to 8, 8 to 12, and 12 ft or more), for fuels and fire management at the
end of 2020. Places outside the three maps come back `unmodeled`.

No open, calibrated US wildfire damage function exists, so this lane gives
**no average annual loss**. Its one loss figure is a **ceiling**:
`aal_ceiling`, burn probability times value, the average annual loss if any
fire that reached a place destroyed all of it. Real losses are lower by
however much construction, defensible space and firefighting save.

The map treats developed land, water, farmland and bare ground as
non-burnable, so a town-center address often reads a burn probability of 0
and a ceiling of 0. That is a property of the map, not a sign of safety:
fire reaches towns through embers from nearby vegetation. Each place
therefore also carries `nearby_burn_probability_max`, the highest burn
probability among cells within 1 km, and `aal_ceiling_nearby`, the ceiling
at that probability; a warning names every place in a non-burnable cell.

## Worked numbers

From the lab's proof runs of 2026-09-24 (each identical when repeated;
the full documents are the lab's fixtures). Residential curve, $1,000,000 a
place in the US and $250,000 in Dhaka and Manila.

| Place | Lane | Mapped depth | AAL |
|---|---|---|---|
| Houston, Meyerland | River | Dry at 1 in 10; 0.12 m at 1 in 20 to 0.22 m at 1 in 500 | $19,014 (1.9%) |
| Houston: downtown, Kingwood, Energy Corridor | River | Dry in every map | $0 |
| Sacramento, Natomas | River | 2.28 m at 1 in 10 to 3.12 m at 1 in 500, levees not modeled | $82,329 (8.2%) |
| Dhaka, Uttara | River | 2.38 m at 1 in 10 to 4.62 m at 1 in 500 | $21,624 (8.6%) |
| New Orleans, Lower Ninth Ward | Coastal | Dry to 1 in 5; 0.35 m at 1 in 10 to 2.13 m at 1 in 1,000 | $68,010 (6.8%) |
| Miami: downtown, Miami Beach, Key Biscayne | Coastal | Dry in every map at 1 km | $0 |
| Manila, North Harbor waterfront | Coastal | 1.21 m at 1 in 2 to 2.50 m at 1 in 1,000 | $75,337 (30.1%) |

Houston's Meyerland place shows the North American curve's start: 12 cm
of water is already a 24% loss. Sacramento shows what undefended means:
the Natomas basin sits behind levees, and the map floods it at 1 in 10.
The Miami and Manila city places are dry on the 1 km coastal map; the
Manila waterfront cell, chosen because the map floods it, is wet every
other year.

| Place | Burn probability | Flame length if it burns | Ceiling on $1,000,000 |
|---|---|---|---|
| Boulder, Table Mesa foothills | 0.0122 a year (1 in 82) | 88% 2 to 4 ft | $12,167 |
| Boulder, Sunshine Canyon | 0.0150 a year (1 in 67) | 22% 12 ft or more | $15,033 |
| Boulder, downtown | 0 (non-burnable cell); 0.0002 within 1 km | none | $0 |
| Lahaina, town | 0 (non-burnable cell); 0.0077 within 1 km | none | $0 ($7,750 at the nearby figure) |
| Paradise, town | 0 (non-burnable cell); 0.0004 within 1 km | none | $0 |

## What these lanes cannot tell you

- **Defenses.** The flood maps are undefended: levees, sea walls and pumps
  are not modeled, so protected places show the flooding they would see
  without them.
- **The building.** Each place takes the value of the map cell it sits in
  (90 m, 1 km or 270 m). Ground and floor height, construction and
  basements at the building itself are unknown to the map.
- **Other water.** River flood has no rainfall flooding away from rivers
  and no storm surge; coastal flood has no river or rainfall flooding and
  no waves.
- **Change.** Coastal depths are for the 2010 sea level; the wildfire maps
  are the 2020 landscape. Neither is a forecast.
- **Correlation.** Return-period losses add places' own 1-in-N losses, as
  above.

## Sources and licenses

- River flood maps: Baugh, Colonese, D'Angelo, Dottori, Neal, Prudhomme and
  Salamon (2024), Modelled flood inundation for different return period
  scenarios at the global scale, European Commission, Joint Research Centre
  (Copernicus Emergency Management Service), version 2.1.2. (c) European
  Union 1995-2026, licensed CC BY 4.0. The lab reads the published depths
  unchanged and applies JRC's spurious-depth and permanent water layers.
  https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/CEMS-GLOFAS/flood_hazard/
- Coastal flood maps: Ward et al. (2020), Aqueduct Floods, World Resources
  Institute, historical coastal inundation, no subsidence. Available without
  restriction; attribution requested.
  [Aqueduct Floods hazard maps](https://www.wri.org/data/aqueduct-floods-hazard-maps)
- Depth-damage curves: Huizinga, de Moel and Szewczyk (2017), Global flood
  depth-damage functions: methodology and the database with guidelines,
  EUR 28552 EN, JRC105688, doi:10.2760/16510.
- Country outlines: Natural Earth 1:10m admin 0, version 5.1.2, public
  domain.
- Wildfire: Dillon, Scott, Jaffe, Olszewski, Vogler, Finney, Short, Riley,
  Grenfell, Jolly and Brittain (2023), Spatial datasets of probabilistic
  wildfire risk components for the United States (270m), 3rd edition,
  Forest Service Research Data Archive,
  https://doi.org/10.2737/RDS-2016-0034-3. Free to use without additional
  permissions or fees.

Every file each lane reads is pinned by sha256 in a manifest the lab
publishes the digest of (`inputs.manifest` on `/models` and on every run).
JRC regenerates its tiles in place, so the lab keeps the bytes it pinned on
2026-09-24 rather than following the upstream.
