---
title: "What is Catastrophe Modeling? Cat Models Explained"
url: "https://wherobots.com/discover/catastrophe-modeling/"
description: "Catastrophe modeling estimates insured losses from hurricanes, floods, earthquakes and wildfires. The four modules, AAL, EP curves, vendors and an example."
published: "2026-09-29"
modified: "2026-10-21"
---

# What is Catastrophe Modeling? Cat Models Explained

Catastrophe modeling, or cat modeling, is the practice of estimating the financial losses that a portfolio of buildings and insurance policies could suffer from rare, severe natural events. They are hurricanes, earthquakes, floods, wildfires, and severe convective storms, the thunderstorms that bring hail, tornadoes, and damaging straight-line wind. A cat model is a [stochastic model](https://wherobots.com/discover/stochastic-modeling/), a model built on random simulation. It simulates tens of thousands of possible years of events and applies each event to every insured location. The output is a distribution of losses. Insurers use it to set prices, buy reinsurance, and hold capital.

## Key takeaways

- A catastrophe model chains four modules: hazard, exposure, vulnerability, and financial.
- The hazard module is an event set: thousands of simulated events, each with an annual rate and a map of its strength at each location.
- The main outputs are average annual loss (AAL), the exceedance probability (EP) curve, and probable maximum loss (PML) at chosen return periods.
- Commercial models date to 1987. After Hurricane Andrew in 1992, insurers and reinsurers adopted them across the industry.
- The Dresden walkthrough below joins 154,866 Overture buildings to Joint Research Centre (JRC) river flood depth maps and a published depth-damage curve in one WherobotsDB query.

## What is catastrophe modeling?

Catastrophe modeling answers one question: how much could a set of insured properties lose from natural disasters, and how often? Claims history is too short to answer it for a 1-in-250 year hurricane. In insurance shorthand a "cat" is a single event with large insured losses across many policyholders. In the United States, [Property Claim Services](https://www.casact.org/sites/default/files/presentation/reinsure_2013_handouts_paper_2254_handout_1030_0.pdf) designates an event a catastrophe at $25 million or more in insured property damage. The term is unrelated to catastrophe theory, René Thom's branch of mathematics.

Cat models cover five main perils: hurricane, earthquake, flood, wildfire, and severe convective storm.

| Peril | Hazard intensity in the footprint | Main vulnerability drivers |
| --- | --- | --- |
| Hurricane (tropical cyclone) | Peak gust wind speed, storm surge depth | Roof type, construction, year built, openings |
| Earthquake | Ground shaking (spectral acceleration), soil amplification | Structural system, height, building code era |
| Flood | Water depth and duration | Occupancy, number of floors, basement, first-floor height |
| Wildfire | Burn probability, flame length, ember exposure | Roof and vent materials, defensible space |
| Severe convective storm | Hail size, tornado and straight-line wind speed | Roof covering, roof age, cladding |

Actuarial pricing projects losses from past claims, which works for frequent, independent events such as auto accidents. Cat modeling generates losses from physics and engineering. It covers the rare, large losses that the claims record lacks.

## How catastrophe modeling works

Catastrophe modeling runs every simulated event through four modules: hazard, exposure, vulnerability, and financial. [Grossi and Kunreuther's *Catastrophe Modeling: A New Approach to Managing Risk*](https://doi.org/10.1007/b100669) (Springer, 2005) set out this structure.

![Diagram of the four modules of a catastrophe model as four cards from left to right. Hazard: the event set (where, how strong, how often). Exposure: insured assets (location, construction, occupancy, value). Vulnerability: a damage function from intensity to mean damage ratio. Financial: deductibles, limits, reinsurance. A bar below lists the outputs: AAL, EP curve and PML. Each card notes what the Dresden walkthrough uses: JRC river flood depth, Overture buildings, the Huizinga et al. 2017 Europe residential curve, and no financial terms.](https://wherobots.com/wp-content/themes/wherobots/assets/img/discover/catastrophe-modeling-four-modules.webp)

*The four modules of a catastrophe model, after Grossi and Kunreuther (2005). The Dresden walkthrough in this article runs the first three in one WherobotsDB query and reports damage ratios.*

### Hazard, exposure, vulnerability, and financial modules

The **hazard module** describes where events happen, how strong they are, and how often. For a hurricane model that means storm tracks, wind fields, and surge; for an earthquake model, faults, magnitudes, and ground motion. Each event leaves a footprint: an intensity value at every location it touches, usually stored as a raster grid.

The **exposure module** holds the insured property: the coordinates of each building or policy, with construction class, occupancy, height, year built, and replacement value. Errors in exposure data change every result. A building located at its ZIP code's center point, or a wood frame home coded as masonry, changes the modeled loss.

The **vulnerability module** converts intensity into damage with a damage function, also called a vulnerability or fragility curve. A flood depth-damage curve, for example, maps water depth at a building to a mean damage ratio, the share of replacement value lost. Each construction class gets its own curve, with uncertainty around the mean.

The **financial module** applies policy terms: deductibles, limits, coinsurance, and the reinsurance layers above them. It turns ground-up damage, the loss before any policy terms apply, into gross and net insured loss for each event.

Joining exposure to hazard, the largest computation in the chain, is a [spatial join](https://wherobots.com/discover/spatial-join/): each building is matched to the hazard value at its location. Hazard footprints are [geospatial data](https://wherobots.com/discover/geospatial-data/) on a grid, sampled at every building for every event.

### Event sets and stochastic catalogs

The hazard module runs from an event set, also called a stochastic catalog. It is a list of simulated events, each with an annual rate of occurrence and a footprint. Developers fit statistical models to the historical record, such as decades of hurricane tracks or earthquake catalogs. They then sample tens of thousands of years of plausible activity, including events larger than any yet observed.

The [stochastic modeling](https://wherobots.com/discover/stochastic-modeling/) article runs a simulated catalog of this kind against a whole county.

### AAL, EP curve, and PML outputs

The losses of the simulated years give the model's main outputs:

- **Average annual loss (AAL)** is the mean loss per year across all simulated years. It is the pure premium: the long-run cost of the risk before expenses and profit.
- **The exceedance probability (EP) curve** gives the annual probability that loss exceeds each amount. The occurrence exceedance probability (OEP) curve ranks each year by its largest event. The aggregate exceedance probability (AEP) curve ranks each year by its total.
- **Probable maximum loss (PML)** is a point on the EP curve at a chosen return period, the average number of years between losses of that size. A 1% annual exceedance probability is the 1-in-100 year loss.

Insurers price the average year from AAL and size capital and reinsurance for a bad year from PML. The [probable maximum loss](https://wherobots.com/discover/probable-maximum-loss/) article covers return periods and reinsurance.

## Who uses catastrophe models

**Primary insurers** run their portfolios through hurricane, earthquake, and flood models to price policies. They use the results to limit how many policies sit in one wind zone. They also use them to set how much reinsurance to buy and at what attachment point, the loss level above which the reinsurer pays.

**Reinsurers** price treaties by running the exposure of the cedent, the insurer buying the cover, against their own view of the hazard.

**Rating agencies and regulators** read a carrier's modeled 1-in-100 and 1-in-250 year losses to judge capital adequacy. In Florida, the [Commission on Hurricane Loss Projection Methodology](https://content.naic.org/sites/default/files/jir-za-37-03-el-florida-market-hurricane.pdf), created in 1995 after Hurricane Andrew, sets standards for hurricane models and reviews them for use in ratemaking.

**Insurance-linked securities (ILS) investors** buy catastrophe bonds and other risk-linked securities. Their prices and triggers, the conditions that make a bond pay out, are set from modeled loss. [Cummins (2008)](https://doi.org/10.1111/j.1540-6296.2008.00127.x) reviews that market. The United Services Automobile Association (USAA) moved a layer of US hurricane risk to capital-market investors with its [Residential Re bond of 1997](https://www.businessinsurance.com/1997-risk-management-catastrophe-bonds-take-risk-financing-by-storm/).

After an event, analysts run the observed footprint through the same model for an early loss estimate, days before claims arrive.

The Casualty Actuarial Society's CAS Institute and the International Society of Catastrophe Managers offer [two credentials for the field](https://thecasinstitute.org/press_release/iscm-and-the-cas-institute-launch-new-education-and-credentialing-program-for-catastrophe-risk-professionals/). They are the Certified Specialist in Catastrophe Risk (CSCR) and the Certified Catastrophe Risk Management Professional (CCRMP).

## Catastrophe modeling software and vendors

The longest-established commercial vendors:

- **Verisk** traces to Applied Insurance Research (AIR), which Karen Clark founded in 1987. Insurance Services Office acquired AIR in 2002, and its models now carry the Verisk name.
- **Moody's RMS** began as a Stanford University spin-out in the late 1980s. Moody's [completed its acquisition of RMS](https://ir.moodys.com/press-releases/news-details/2021/Moodys-Completes-Acquisition-of-RMS/default.aspx) in September 2021.
- **[Karen Clark & Company](https://www.karenclarkandco.com/company/about-kcc)** (KCC) was founded by Clark in 2007 to build catastrophe models for insurers and reinsurers.
- **CoreLogic** entered the market when it [acquired EQECAT](https://www.insurancejournal.com/news/national/2013/12/29/315600.htm) in December 2013.
- **The [Oasis Loss Modelling Framework](https://oasislmf.org/)** is a not-for-profit company founded in 2012 and owned by insurers, reinsurers, and brokers. It [released its platform as open source](https://oasislmf.org/news/press-release-oasis-loss-modelling-framework-offered-open-source-and-free-charge) in 2018. Any developer's hazard and vulnerability modules can run on its one financial engine.

Public models such as [Hazus](https://www.fema.gov/flood-maps/products-tools/hazus), from the Federal Emergency Management Agency (FEMA), estimate losses for emergency planning.

## Catastrophe modeling examples

**Hurricane Andrew, 1992.** Andrew made landfall south of Miami on 24 August 1992. After landfall, AIR's model put the insured loss above $13 billion, a figure some of its reinsurance clients doubted. The final insured loss came to about [$15.5 billion in 1992 dollars](https://www.insurancejournal.com/magazines/mag-features/2022/06/20/672206.htm). [Eleven insurers became insolvent](https://content.naic.org/sites/default/files/jir-za-37-03-el-florida-market-hurricane.pdf). After Andrew, insurers and reinsurers adopted catastrophe models across the industry.

**Northridge earthquake, 1994.** The magnitude 6.7 earthquake under the San Fernando Valley caused [about $12.5 billion in insured losses](https://www.iii.org/article/the-northridge-ca-earthquake-20-years-after-facts-figures-and-perspectives). Insurers paid more in claims than they had collected in earthquake premiums over the previous 30 years. Most California home insurers stopped writing new homeowners policies, and the legislature created the California Earthquake Authority in 1996.

**The Elbe flood, 2002.** In August 2002 the Elbe reached [9.40 m at the Dresden gauge](https://gfzpublic.gfz.de/pubman/item/item_237051_2/component/file_237050/11474.pdf?mode=download), above the previous record of 8.77 m from 1845. It became one of the best-studied damage events in Europe.

## Catastrophe modeling in Wherobots

WherobotsDB runs the spatial half of a catastrophe model in SQL. It joins exposure to hazard footprints and applies damage functions at building scale. The example below illustrates the method in one city. It uses public river flood maps, one generic damage curve for every building, footprint area in place of replacement value, and no policy terms.

**Exposure.** Every [Overture building](https://wherobots.com/havasu/#buildings_building) whose bounding box falls inside a 22 km by 16 km box over Dresden. The [building footprint](https://wherobots.com/discover/building-footprint/) article describes Overture footprints.

**Hazard.** The JRC Global River Flood Hazard Maps v2.1 (Baugh and colleagues, 2024, [data DOI 10.2905/JRC.VD32YWG](https://data.europa.eu/doi/10.2905/JRC.VD32YWG)) give modeled water depth in meters at 90 m resolution. They cover return periods from 10 to 500 years. A hydrological model called LISFLOOD and an inundation model called LISFLOOD-FP produced them. A [cloud-optimized mirror on Source Cooperative](https://source.coop/nlebovits/jrc-glofas) puts each tile on public S3, so [RS_FromPath](https://docs.wherobots.com/reference/wherobots-db/raster-data/constructors/RS_FromPath) reads it in place. The [flood risk map](https://wherobots.com/discover/flood-risk-data/) article compares these maps with FEMA zones and finer commercial grids.

**Vulnerability.** The Europe residential depth-damage curve from [Huizinga, de Moel, and Szewczyk (2017)](https://doi.org/10.2760/16510), the JRC's global flood depth-damage function database. Its damage factors are 0, 0.25, 0.40, 0.50, 0.60, 0.75, 0.85, 0.95, and 1.0 at depths of 0, 0.5, 1, 1.5, 2, 3, 4, 5, and 6 m. Values between those depths are interpolated linearly.

| Source | Format | Size read | What the query read from it |
| --- | --- | --- | --- |
| Overture buildings (`wherobots_open_data.overture_maps_foundation.buildings_building`) | Iceberg table of vector building polygons | 154,866 buildings in the box | Centroid and footprint area of each building |
| JRC river flood depth maps, 10, 20, 50, 100, 200 and 500-year return periods | Six Cloud Optimized GeoTIFFs, 90 m cells, depth in meters | One tile per return period, clipped to the box | Depth in the cell under each building centroid |
| JRC permanent water mask | Cloud Optimized GeoTIFF, 90 m cells | One tile, clipped to the box | Whether a centroid falls in a river channel or lake cell |
| Huizinga et al. (2017) Europe residential curve | Nine depth and damage pairs, written into the SQL | 9 points | Damage ratio at each modeled depth |

The query below joins the vector table to all seven rasters. Raster and vector run in one engine; most stacks pick one.

The query clips each depth map to the box once with [RS_Clip](https://docs.wherobots.com/reference/wherobots-db/raster-data/operators/RS_Clip), copies the small clipped rasters to every worker, and reads the depth under each building centroid with [RS_Value](https://docs.wherobots.com/reference/wherobots-db/raster-data/operators/RS_Value). Out-of-database reads fetch only the parts of each Cloud Optimized GeoTIFF (COG) inside the box. A COG is laid out for partial reads over the web. The [out-of-database raster architecture post](https://wherobots.com/blog/raster-processing-at-scale-out-of-database-architecture-wherobotsdb/) explains the method.

```
-- Illustration only: Overture buildings in Dresden x JRC river flood depth x JRC Europe residential damage curve
WITH box AS (
  SELECT ST_PolygonFromEnvelope(13.60, 50.98, 13.92, 51.12) AS g        -- Dresden, about 22 km x 16 km
),
hazard AS (
  -- Hazard module: clip each JRC depth COG (90 m, metres, NoData -9999) to the box once
  SELECT RS_Clip(RS_FromPath('s3://us-west-2.opendata.source.coop/nlebovits/jrc-glofas/depth-rp10/ID121_N60_E10/ID121_N60_E10_RP10_depth.tif'),   1, k.g, false, -9999, true) AS r10,
         RS_Clip(RS_FromPath('s3://us-west-2.opendata.source.coop/nlebovits/jrc-glofas/depth-rp20/ID121_N60_E10/ID121_N60_E10_RP20_depth.tif'),   1, k.g, false, -9999, true) AS r20,
         RS_Clip(RS_FromPath('s3://us-west-2.opendata.source.coop/nlebovits/jrc-glofas/depth-rp50/ID121_N60_E10/ID121_N60_E10_RP50_depth.tif'),   1, k.g, false, -9999, true) AS r50,
         RS_Clip(RS_FromPath('s3://us-west-2.opendata.source.coop/nlebovits/jrc-glofas/depth-rp100/ID121_N60_E10/ID121_N60_E10_RP100_depth.tif'), 1, k.g, false, -9999, true) AS r100,
         RS_Clip(RS_FromPath('s3://us-west-2.opendata.source.coop/nlebovits/jrc-glofas/depth-rp200/ID121_N60_E10/ID121_N60_E10_RP200_depth.tif'), 1, k.g, false, -9999, true) AS r200,
         RS_Clip(RS_FromPath('s3://us-west-2.opendata.source.coop/nlebovits/jrc-glofas/depth-rp500/ID121_N60_E10/ID121_N60_E10_RP500_depth.tif'), 1, k.g, false, -9999, true) AS r500,
         -- JRC permanent water mask (1 = river channel or lake, NoData 255), to flag channel cells
         RS_Clip(RS_FromPath('s3://us-west-2.opendata.source.coop/nlebovits/jrc-glofas/permanent-water/ID121_N60_E10/ID121_N60_E10_permanent_water.tif'), 1, k.g, false, 255, true) AS pw
  FROM box k
),
exposure AS (
  -- Exposure module: every Overture building whose bounding box sits inside the box
  SELECT id, ST_Centroid(geometry) AS c, ST_AreaSpheroid(geometry) AS area_m2
  FROM wherobots_open_data.overture_maps_foundation.buildings_building
  WHERE bbox.xmin >= 13.60 AND bbox.xmax <= 13.92 AND bbox.ymin >= 50.98 AND bbox.ymax <= 51.12
),
depth AS (
  -- Modelled depth (m) in the 90 m cell under each building centroid; NoData means dry
  SELECT /*+ BROADCAST(h) */ e.id, e.area_m2,
         COALESCE(NULLIF(RS_Value(h.r10,  e.c), -9999), 0) AS d10,
         COALESCE(NULLIF(RS_Value(h.r20,  e.c), -9999), 0) AS d20,
         COALESCE(NULLIF(RS_Value(h.r50,  e.c), -9999), 0) AS d50,
         COALESCE(NULLIF(RS_Value(h.r100, e.c), -9999), 0) AS d100,
         COALESCE(NULLIF(RS_Value(h.r200, e.c), -9999), 0) AS d200,
         COALESCE(NULLIF(RS_Value(h.r500, e.c), -9999), 0) AS d500,
         COALESCE(NULLIF(RS_Value(h.pw,   e.c), 255), 0)   AS pw
  FROM exposure e CROSS JOIN hazard h
),
vuln AS (
  -- Vulnerability module: Huizinga et al. (2017) Europe residential curve, linear between 0, 0.5, 1, 1.5, 2, 3, 4, 5, 6 m
  SELECT id, area_m2, d100, pw,
         transform(array(d10, d20, d50, d100, d200, d500), d ->
           CASE WHEN d <= 0  THEN 0.0
                WHEN d < 0.5 THEN 0.00 + (d - 0.0) * 0.50
                WHEN d < 1.0 THEN 0.25 + (d - 0.5) * 0.30
                WHEN d < 1.5 THEN 0.40 + (d - 1.0) * 0.20
                WHEN d < 2.0 THEN 0.50 + (d - 1.5) * 0.20
                WHEN d < 3.0 THEN 0.60 + (d - 2.0) * 0.15
                WHEN d < 4.0 THEN 0.75 + (d - 3.0) * 0.10
                WHEN d < 5.0 THEN 0.85 + (d - 4.0) * 0.10
                WHEN d < 6.0 THEN 0.95 + (d - 5.0) * 0.05
                ELSE 1.0 END) AS dr        -- damage ratio at the 10, 20, 50, 100, 200, 500-year depth
  FROM depth
),
per_building AS (
  SELECT id, area_m2, d100, pw,
         dr[0] AS dr10, dr[1] AS dr20, dr[2] AS dr50, dr[3] AS dr100, dr[4] AS dr200, dr[5] AS dr500
  FROM vuln
),
annual AS (
  -- Expected annual damage ratio: trapezoids over annual exceedance probability, 10-year to 500-year maps only
  SELECT *,
         (0.10  - 0.05 ) * (dr10  + dr20 ) / 2 +
         (0.05  - 0.02 ) * (dr20  + dr50 ) / 2 +
         (0.02  - 0.01 ) * (dr50  + dr100) / 2 +
         (0.01  - 0.005) * (dr100 + dr200) / 2 +
         (0.005 - 0.002) * (dr200 + dr500) / 2 AS ead_ratio,
         CASE WHEN d100 = 0   THEN '0: dry at 100-year'
              WHEN d100 < 0.5 THEN '1: under 0.5 m'
              WHEN d100 < 1   THEN '2: 0.5 to 1 m'
              WHEN d100 < 2   THEN '3: 1 to 2 m'
              WHEN d100 < 4   THEN '4: 2 to 4 m'
              ELSE '5: 4 m or more' END AS band_100yr
  FROM per_building
)
-- One row per 100-year depth band, plus a total row (band_100yr is NULL)
SELECT band_100yr,
       COUNT(*)                                     AS buildings,
       SUM(CASE WHEN pw = 1 THEN 1 ELSE 0 END)      AS in_channel_cell,
       ROUND(AVG(d100), 2)                          AS mean_depth_100yr_m,
       ROUND(AVG(dr100), 4)                         AS mean_damage_ratio_100yr,
       ROUND(SUM(dr100 * area_m2) / SUM(area_m2), 4) AS area_weighted_dr_100yr,
       ROUND(SUM(dr100), 1)                         AS building_equivalents_100yr,
       ROUND(AVG(dr10), 5)  AS mdr10,  ROUND(AVG(dr20), 5)  AS mdr20,  ROUND(AVG(dr50), 5) AS mdr50,
       ROUND(AVG(dr200), 5) AS mdr200, ROUND(AVG(dr500), 5) AS mdr500,
       ROUND(AVG(ead_ratio), 6)                     AS mean_ead_ratio,
       ROUND(SUM(ead_ratio), 2)                     AS ead_building_equivalents
FROM annual
GROUP BY ROLLUP (band_100yr)
ORDER BY band_100yr
```

`EXPLAIN FORMATTED` shows no Cartesian product, the pairing of every row with every other row. The query returned in 287 seconds.

| 100-year depth band | Buildings | Mean depth (m) | Mean damage ratio at 100-year | Expected annual damage ratio |
| --- | --- | --- | --- | --- |
| Dry at 100-year | 147,934 | 0.00 | 0.0% | 0.003% |
| Under 0.5 m | 1,386 | 0.30 | 15.0% | 0.33% |
| 0.5 to 1 m | 1,696 | 0.75 | 32.4% | 0.75% |
| 1 to 2 m | 1,829 | 1.46 | 49.2% | 2.04% |
| 2 to 4 m | 1,555 | 2.72 | 70.0% | 4.87% |
| 4 m or more | 466 | 5.10 | 92.6% | 8.18% |
| **All buildings** | **154,866** | **0.07** | **2.05%** | **0.11%** |

The box holds 154,866 Overture buildings. At the 100-year depth, 6,932 of them (4.5%) stand in a wet cell, and 3,850 stand in a meter or more of water. The curve turns those depths into a mean damage ratio of 2.05% across all buildings. That equals 3,178.5 building equivalents: the sum of the damage ratios, or the number of buildings destroyed if the same damage were concentrated. Weighted by footprint area, the ratio is 1.28%. The damaged buildings are smaller on average than the city's building stock. Ninety buildings have a centroid inside a JRC permanent water cell, 49 of them in the deepest band. They sit on the riverbank, where a 90 m cell covers both land and channel. A production model would check them against a finer terrain grid.

![Map of a 22 by 16 km box over Dresden showing JRC modeled 100-year river flood depth along the Elbe in five blue depth bands. Permanent water is gray. A panel on the left gives 154,866 Overture buildings in the box and 6,932 wet at the 100-year depth. It also gives a mean damage ratio of 2.05 percent and 3,178.5 building equivalents destroyed. Bars show buildings per band: 1,386 under 0.5 m, 1,696 from 0.5 to 1 m, and 1,829 from 1 to 2 m. The last two bars show 1,555 from 2 to 4 m and 466 at 4 m or more.](https://wherobots.com/wp-content/themes/wherobots/assets/img/discover/catastrophe-modeling-dresden-flood-exposure.webp)

*JRC 100-year river flood depth over Dresden at 90 m, with Overture buildings counted by the depth under their centroid. 6,932 of 154,866 buildings are wet; the maps leave out flood defenses. Illustration only.*

Each band's mean damage ratio sits close to the curve at its mean depth. The deepest band sits a little below it: where the curve flattens, the mean of the damage ratios falls below the damage ratio at the mean depth.

![Line chart of the Huizinga et al. 2017 Europe residential depth-damage curve. It plots damage ratio from 0 to 100 percent against water depth from 0 to 7 m. The curve rises steeply to 50 percent at 1.5 m and reaches 100 percent at 6 m. Five dots mark the Dresden depth bands at their mean depth and mean damage ratio. They are 1,386 buildings at 0.3 m and 15.0 percent, 1,696 at 0.75 m and 32.4 percent, and 1,829 at 1.46 m and 49.2 percent. The last two are 1,555 at 2.72 m and 70.0 percent, and 466 at 5.1 m and 92.6 percent.](https://wherobots.com/wp-content/themes/wherobots/assets/img/discover/catastrophe-modeling-depth-damage-curve.webp)

*The vulnerability module in the Dresden query: the JRC Europe residential depth-damage curve (Huizinga et al., 2017). Each 100-year depth band sits at its mean depth and mean damage ratio, from 15.0% at 0.3 m to 92.6% at 5.1 m.*

Six return periods give six points on a curve of damage against annual exceedance probability. The mean damage ratio across all buildings rises from 0.56% at 1-in-10 to 2.05% at 1-in-100 and 4.02% at 1-in-500. The area under that curve is the expected annual damage ratio, the flood equivalent of AAL. It is 0.11% a year for the average building, with every building weighted equally, or 172.6 building equivalents a year. Dollar figures need building values, which the query does not read. The integral runs only between the 10-year and 500-year maps. The maps leave out Dresden's flood walls. The figure is a rough bound for an undefended city.

This shortcut works for AAL because an expected value adds up building by building: each building needs only its own hazard curve. It does not give the EP curve or PML. Those depend on which buildings flood in the same year. A 100-year flood at one end of the city and one at the other end are separate events. Only an event set with city-wide footprints shows how often they happen in the same year.

![Area chart of mean damage ratio across all 154,866 Dresden buildings against annual exceedance probability from 0 to 0.10. Points: 0.56 percent at 1-in-10, 0.90 percent at 1-in-20, 1.47 percent at 1-in-50, 2.05 percent at 1-in-100, 2.76 percent at 1-in-200 and 4.02 percent at 1-in-500. The shaded area under the curve is labeled as an expected annual damage ratio of 0.11 percent per year, or 172.6 building equivalents per year.](https://wherobots.com/wp-content/themes/wherobots/assets/img/discover/catastrophe-modeling-dresden-annual-damage.webp)

*Mean damage ratio at each JRC return period, from 0.56% at 1-in-10 to 4.02% at 1-in-500. The shaded area is the expected annual damage ratio for the 154,866 buildings: 0.11% per year, or 172.6 building equivalents.*

A production model also assigns a curve by occupancy and construction, adds uncertainty around each damage ratio, and applies deductibles and limits.

The [Wherobots Data Hub](https://docs.wherobots.com/tutorials/spatial-catalog/introduction) holds inputs for other perils. They include [US wildfire records](https://wherobots.com/havasu/#wild_fires), [National Oceanic and Atmospheric Administration (NOAA) severe weather records](https://docs.wherobots.com/tutorials/example-notebooks/noaa-swdi) for hail and tornadoes, and [land cover](https://wherobots.com/discover/land-cover-classification/) from the European Space Agency (ESA) [WorldCover](https://esa-worldcover.org/en) map. [RS_ZonalStats](https://docs.wherobots.com/reference/wherobots-db/raster-data/band-accessors/RS_ZonalStats) returns the maximum hazard inside each footprint. [RasterFlow](https://docs.wherobots.com/develop/rasterflow/index) (Public Preview) builds mosaics from imagery, runs computer vision inference on them, and writes the results as vectorized outputs on the same platform. [Getis-Ord Gi\* hotspot analysis](https://docs.wherobots.com/tutorials/example-notebooks/getis-ord-gi*) flags clusters of insured value larger than chance would produce.

Wherobots documents these patterns in its [Insurance & Risk use case](https://docs.wherobots.com/tutorials/use-cases/insurance), including a [California coastal flood exposure notebook](https://docs.wherobots.com/tutorials/example-notebooks/california-coastal-flood-risk-analysis) that intersects [parcels](https://wherobots.com/discover/parcel-data/) with FEMA zones and sums assessed value at risk. [How to score every building in a state for catastrophe risk](https://wherobots.com/blog/how-to-score-every-building-in-a-state-for-catastrophe-risk/) runs five perils across a whole state. Through the [Wherobots Model Context Protocol (MCP) Server](https://docs.wherobots.com/develop/mcp/mcp-server-overview), an analyst can ask Claude Code or another agent for exposure by peril in plain language.

## Catastrophe modeling research and what changes at scale

### From insurance research to commercial models

[Friedman (1984)](https://doi.org/10.1057/gpp.1984.4), writing from the Natural Hazard Research Program at Travelers, set out a framework for assessing natural hazard risk to an insurance program. [Clark (1986)](https://www.casact.org/sites/default/files/database/proceed_proceed86_86069.pdf), in the *Proceedings of the Casualty Actuarial Society*, proposed Monte Carlo simulation, repeated random sampling, of catastrophe losses to replace underwriting rules of thumb. Clark founded AIR the following year to sell it.

The hazard module's core calculation comes from seismology. [Cornell (1968)](https://doi.org/10.1785/BSSA0580051583) defined probabilistic seismic hazard analysis. It sums over every earthquake source, magnitude, and distance to get the annual rate at which a site exceeds each level of ground motion. Every hazard module still computes that quantity, a hazard curve per location.

[Mitchell-Wallace, Jones, Hillier, and Foote (2017)](https://doi.org/10.1002/9781118906057) wrote a practitioner's guide.

### Building the hazard event set

[Vickery, Skerlj, and Twisdale (2000)](https://doi.org/10.1061/%28ASCE%290733-9445%282000%29126:10%281222%29) simulated hurricane tracks basin-wide, from genesis to decay, with a track model fitted to the historical record. [Emanuel, Ravela, Vivant, and Risi (2006)](https://doi.org/10.1175/BAMS-87-3-299) generated synthetic tracks from statistics and ran a physics model of storm strength along each one.

[Finney and colleagues (2011)](https://doi.org/10.1007/s00477-011-0462-z) built a wildfire simulation model called FSim. It simulates thousands of fire seasons with random ignitions and weather. It spreads each fire over fuel and terrain grids to estimate burn probability across the continental United States. River flood maps come from hydrologic and hydraulic models such as LISFLOOD-FP, routed over a [digital elevation model](https://wherobots.com/discover/digital-elevation-model/).

### Damage functions in the vulnerability module

Damage functions are the least standardized module. For earthquakes, [Kircher, Nassar, Kustu, and Holmes (1997)](https://doi.org/10.1193/1.1585974) developed the building damage functions behind FEMA's HAZUS. Their fragility curves give the probability of each level of damage from how far the building sways in the shaking. [Scawthorn and colleagues (2006)](https://doi.org/10.1061/%28ASCE%291527-6988%282006%297:2%2872%29) documented the HAZUS-MH (HAZUS Multi-Hazard) flood methodology. It applies depth-damage curves by occupancy from the Federal Insurance Administration and the US Army Corps of Engineers.

European flood research moved from depth alone to many variables. After the 2002 Elbe flood, [Thieken and colleagues (2005)](https://doi.org/10.1029/2005WR004177) analyzed 1,697 household interviews. They found water level, flood duration, and contamination to be the most influential factors for building and contents damage. [Merz, Kreibich, Schwarze, and Thieken (2010)](https://doi.org/10.5194/nhess-10-1697-2010) reviewed the methods for assessing economic flood damage. [Huizinga, de Moel, and Szewczyk (2017)](https://doi.org/10.2760/16510) harmonized depth-damage curves for six continents and six sectors, with maximum damage values for 214 countries.

### Open problems in uncertainty and climate

Uncertainty is the first open problem. [Jongman and colleagues (2012)](https://doi.org/10.5194/nhess-12-3733-2012) ran seven flood damage models on the same past events in Germany and the United Kingdom and found results that differed widely. Hazard rates for the rarest events come from records of a century or less. Exposure data has its own errors in location, construction, and value.

Climate conditioning is the second. An event set calibrated to the historical record takes its event rates from the climate of that record. The World Meteorological Organization (WMO) assessment led by [Knutson and colleagues (2020)](https://doi.org/10.1175/BAMS-D-18-0194.1) projects higher tropical cyclone rainfall rates and a higher proportion of intense storms with warming. Climate-conditioned catalogs adjust event rates to a target climate. [Fiedler and colleagues (2021)](https://doi.org/10.1038/s41558-020-00984-6) warned that the climate analytics sold to businesses can overstate what global climate models resolve at the scale of a single asset.

### What changes at scale

Scale changes the exposure module most. A portfolio once described as aggregate values per ZIP code can now be described building by building from open footprints, roof attributes, and parcel records. A national exposure set then has one row per building. Each building must be tested against every event footprint that covers it. That test is a spatial join, repeated for every event, peril, and model version.

That workload needs [spatial partitioning](https://wherobots.com/discover/partitioning-tax/), which splits data into groups of nearby records. [Yu, Wu, and Sarwat (2015)](https://doi.org/10.1145/2820783.2820860) introduced GeoSpark, now Apache Sedona. GeoSpark spreads spatial joins and range queries, searches for everything inside an area, across a cluster of machines running Apache Spark. [Yu, Zhang, and Sarwat (2019)](https://doi.org/10.1007/s10707-018-0330-9) described its spatial partitioning and indexing. WherobotsDB extends that engine with out-of-database rasters: grids read in place from files in cloud storage. The Dresden query used them to clip seven COGs once and sample them at every building without copying the grids.

## Conclusions

1. Catastrophe modeling is the method for losses too rare for claims history. The 1-in-100 and 1-in-250 year losses that rating agencies read come from a simulated event set.
2. A cat model's accuracy starts with its exposure data. Open footprints now allow one exposure row per building. A wrong location or construction class changes the modeled loss.
3. A cat model's largest computation, the join of hazard to exposure, runs at building scale in one query. Clip each hazard raster once, then sample it at every building. The Dresden query read six depth maps and a water mask for 154,866 buildings in 287 seconds.
4. A per-building damage calculation gives a cat model's AAL. Expected damage adds up building by building (0.11% a year in Dresden). Only an event set gives the EP curve and PML, because those depend on which buildings flood in the same year.
5. A cat model's result needs its limits stated beside it. The Dresden figure is a rough bound for an undefended city. Seven flood damage models run on the same events gave widely different results.

## Related terms

- [Stochastic modeling](https://wherobots.com/discover/stochastic-modeling/): the simulation method behind cat model event sets
- [Probable maximum loss](https://wherobots.com/discover/probable-maximum-loss/): return-period losses read from the EP curve
- [Flood risk map](https://wherobots.com/discover/flood-risk-data/): the hazard input for flood perils
- [Spatial join](https://wherobots.com/discover/spatial-join/): matching exposure locations to hazard footprints
- [Building footprint](https://wherobots.com/discover/building-footprint/): the exposure geometry a building-level model uses
- [Parcel data](https://wherobots.com/discover/parcel-data/): how exposure locations are tied to land and value
- [Digital elevation model](https://wherobots.com/discover/digital-elevation-model/): the terrain grid flood models route water over

## Read more from Wherobots

- [How to score every building in a state for catastrophe risk](https://wherobots.com/blog/how-to-score-every-building-in-a-state-for-catastrophe-risk/)
- [Raster processing at scale: the out-of-database architecture in WherobotsDB](https://wherobots.com/blog/raster-processing-at-scale-out-of-database-architecture-wherobotsdb/)
- [Insurance & Risk use case](https://docs.wherobots.com/tutorials/use-cases/insurance)
- [Financial services & insurance solutions](https://wherobots.com/solutions/financial-services/)
- [Getis-Ord Gi\* hotspot example](https://docs.wherobots.com/tutorials/example-notebooks/getis-ord-gi*)

Join your exposure to hazard layers in WherobotsDB at [cloud.wherobots.com](https://cloud.wherobots.com).

## Frequently asked questions

### What is cat modeling in insurance?

In insurance, cat modeling estimates the losses a portfolio could suffer from hurricanes, floods, earthquakes, wildfires, and severe convective storms before those events happen. Primary insurers use the results to price policies and to set how much reinsurance to buy. Reinsurers use them to price treaties. Rating agencies use them to assess capital, and investors use them to price catastrophe bonds.

### What are the four modules of cat modeling?

The four modules are hazard, exposure, vulnerability, and financial. The hazard module generates a catalog of simulated events, each with a map of its strength at every location. The exposure module holds the insured buildings, their locations, and their attributes. The vulnerability module converts event strength at a building into damage, with a separate damage curve for each construction type. The financial module applies deductibles, limits, and reinsurance to turn damage into insured loss.

### What is the difference between catastrophe modeling and actuarial pricing?

Actuarial pricing projects future losses from historical claims experience, which works for frequent, independent events such as auto accidents. Catastrophe modeling simulates events that are too rare for claims history to capture, such as a 1-in-250 year hurricane, and produces a full loss distribution. Insurers use both. Cat modeling covers the rare, large losses.

### What is AAL in catastrophe modeling?

AAL, average annual loss, is the mean loss per year across all simulated years in a catastrophe model, typically tens of thousands. It is the pure premium: the premium a portfolio needs to cover expected catastrophe losses over the long run, before expenses and profit. AAL is reported alongside the exceedance probability curve, which shows the loss at specific return periods, such as the 1-in-100 year loss.

### Who are the main catastrophe modeling vendors?

Verisk and Moody’s RMS are the longest-established commercial vendors. Verisk’s models trace to AIR Worldwide, founded in 1987 and acquired in 2002. Moody’s acquired RMS in 2021. Karen Clark & Company, founded in 2007, and CoreLogic, which acquired EQECAT in 2013, also license models. The Oasis Loss Modelling Framework is a not-for-profit, open-source platform that runs models from many developers on one engine.

### What is a cat in insurance?

A cat is a catastrophe: a single event that causes large insured losses across many policyholders. In the United States, Property Claim Services designates an event as a catastrophe when it causes $25 million or more in insured property losses. The event must also affect a significant number of policyholders and insurers. Cat losses are tracked, priced, and reinsured separately from everyday attritional losses.

### How do you get into catastrophe modelling?

Catastrophe modelers start as analysts at an insurer, reinsurer, broker, or model vendor. Most hold a degree in actuarial science, statistics, engineering, geography, or an earth science. The work combines running vendor models, cleaning exposure data, and explaining results to underwriters. The CAS Institute and the International Society of Catastrophe Managers offer two credentials for the field. They are the Certified Specialist in Catastrophe Risk (CSCR) and the Certified Catastrophe Risk Management Professional (CCRMP).

### How much do catastrophe modelers make?

Pay for catastrophe modelers depends on seniority, employer type, and market. Entry roles are analyst positions at insurers, reinsurers, and brokers; senior roles lead model evaluation or a cat modeling team, and pay rises with responsibility for capital and reinsurance decisions. Industry salary surveys and job postings give current ranges for a specific market.

### What is an example of catastrophe theory?

Catastrophe theory is a branch of mathematics, unrelated to insurance catastrophe modeling, that René Thom developed in the 1960s to describe sudden jumps in systems that change smoothly. Christopher Zeeman popularized it in the 1970s. His best-known example is the cusp catastrophe model of a dog that switches abruptly from fear to attack as its anger and fear change.

### What is an event set in a catastrophe model?

An event set, or stochastic catalog, is the list of simulated events a catastrophe model runs. Each event has an annual rate and a hazard footprint, a map of its strength at every location. Developers fit statistical models to the historical record and sample tens of thousands of years of plausible events. The sample includes events larger than any yet observed, so that losses at rare return periods can be estimated.

### How accurate are catastrophe models?

Catastrophe models carry large uncertainty, most of all for the rarest, largest losses. Hazard rates for rare events come from short historical records, damage functions differ between studies, and exposure data is often incomplete. Studies that run several flood damage models on the same event find results that differ widely. Insurers compare several models and adjust them to their own claims experience.
