A standalone catastrophe model rating building value by hazard band, construction and deductible.
Earthquake insurance is usually written separately from standard property cover. Losses are rare but severe, so pricing focuses on the hazard at the location and how well the building would withstand shaking.
A base rate per $1,000 of building value is looked up by hazard band, then adjusted for construction type and the percentage deductible. A policy fee is added.
Unreinforced masonry near an active fault is declined. High values, the highest hazard band and any near-fault building are referred for catastrophe model review.
Three further factors adjust the premium: the year the building was built, the soil it stands on and its height.
| Field | Label | Type | Default | Allowed values |
|---|---|---|---|---|
zip_band | Hazard zip band | string | hz2 | hz1, hz2, hz3, hz4 |
construction_type | Construction type | string | steel_frame | wood_frame, unreinforced_masonry, reinforced_masonry, steel_frame, reinforced_concrete |
building_value | Building value ($) | integer | 1000000 | 500000, 1000000, 5000000, 25000000 |
deductible_pct | Deductible (% of building value) | integer | 10 | 5, 10, 15, 25 |
near_fault | Within 500 ft of a known active fault | boolean | false | false, true |
year_built | Year built | integer | 1990 | 1950, 1975, 1990, 2010 |
soil_type | Soil type | string | stiff | rock, stiff, soft |
stories | Number of stories | integer | 2 | 1, 2, 4, 8 |
Steps run in order. Each one can use the inputs and the outputs of every step before it.
Base rate per $1000 building value by zip hazard band. Near-fault CA is the highest.
{
"id": "hazard_rates",
"key": "hazard_rates",
"step": "collection",
"name": "Hazard tier rate",
"retain": true,
"collection": [
["zip_band", "hazard_rate_per_k"],
["hz1", 0.35],
["hz2", 0.8],
["hz3", 1.6],
["hz4", 3.2]
],
"format": {
"hazard_rate_per_k": {
"key": "hazard_rate_per_k",
"label": "Hazard rate per $1000",
"exp": "collection.filter(zip_band=={{zip_band}}).map(hazard_rate_per_k).first()",
"type": "decimal",
"def": 0.8
}
}
}Reinforced concrete resists shaking best; unreinforced masonry is the biggest load.
{
"id": "construction_eq_rates",
"key": "construction_eq_rates",
"step": "collection",
"name": "Construction resistance factor",
"retain": true,
"collection": [
["construction_type", "construction_eq_factor"],
["wood_frame", 1.1],
["unreinforced_masonry", 1.8],
["reinforced_masonry", 1.2],
["steel_frame", 0.95],
["reinforced_concrete", 0.8]
],
"format": {
"construction_eq_factor": {
"key": "construction_eq_factor",
"label": "Construction EQ factor",
"exp": "collection.filter(construction_type=={{construction_type}}).map(construction_eq_factor).first()",
"type": "decimal",
"def": 1
}
}
}Higher percentage deductibles = bigger credit. 25% is the maximum standard credit.
{
"id": "deductible_eq_rates",
"key": "deductible_eq_rates",
"step": "collection",
"name": "Deductible credit",
"retain": true,
"collection": [
["deductible_pct_max", "deductible_eq_factor"],
[5, 1.1],
[10, 1],
[15, 0.85],
[25, 0.65]
],
"format": {
"deductible_eq_factor": {
"key": "deductible_eq_factor",
"label": "Deductible EQ factor",
"exp": "collection.filter(deductible_pct_max>={{deductible_pct}}).map(deductible_eq_factor).first()",
"type": "decimal",
"def": 1
}
}
}Buildings designed to modern seismic codes perform much better in a strong earthquake.
{
"id": "year_built_eq_rates",
"key": "year_built_eq_rates",
"step": "collection",
"name": "Year built factor",
"retain": true,
"collection": [
["year_built_min", "year_built_max", "year_built_factor_rel"],
[0, 1940, 1.35],
[1941, 1975, 1.2],
[1976, 1994, 1],
[1995, 2100, 0.9]
],
"format": {
"year_built_factor": {
"key": "year_built_factor",
"label": "Year built factor",
"exp": "collection.filter(year_built_min<={{year_built}}).filter(year_built_max>={{year_built}}).map(year_built_factor_rel).first()",
"type": "decimal",
"def": 1
}
}
}Soft soils amplify shaking and can liquefy. Buildings on rock see the least shaking.
{
"id": "soil_rates",
"key": "soil_rates",
"step": "collection",
"name": "Soil type factor",
"retain": true,
"collection": [
["soil_type_value", "soil_factor_rel"],
["rock", 0.85],
["stiff", 1],
["soft", 1.25]
],
"format": {
"soil_factor": {
"key": "soil_factor",
"label": "Soil type factor",
"exp": "collection.filter(soil_type_value=={{soil_type}}).map(soil_factor_rel).first()",
"type": "decimal",
"def": 1
}
}
}Taller buildings respond differently to ground motion and are more costly to repair.
{
"id": "stories_rates",
"key": "stories_rates",
"step": "collection",
"name": "Building height factor",
"retain": true,
"collection": [
["stories_min", "stories_max", "stories_factor_rel"],
[1, 3, 1],
[4, 7, 1.1],
[8, 999, 1.2]
],
"format": {
"stories_factor": {
"key": "stories_factor",
"label": "Building height factor",
"exp": "collection.filter(stories_min<={{stories}}).filter(stories_max>={{stories}}).map(stories_factor_rel).first()",
"type": "decimal",
"def": 1
}
}
}Building value in thousands × hazard rate × construction × deductible. Multiplied by the year built factor, soil type factor, building height factor.
{
"id": "premium_calc",
"key": "premium_calc",
"step": "calculation",
"name": "Earthquake premium",
"def": 0,
"formula": "round(({{building_value}} / 1000) * {{hazard_rate_per_k}} * {{construction_eq_factor}} * {{deductible_eq_factor}} * {{year_built_factor}} * {{soil_factor}} * {{stories_factor}}, 2)"
}Add $500 policy fee.
{
"id": "policy_premium",
"key": "policy_premium",
"step": "calculation",
"name": "Policy premium",
"def": 0,
"formula": "round({{premium_calc}} + 500, 2)"
}Decline unreinforced masonry buildings within 500 ft of an active fault (very high loss potential).
{
"id": "eq_exclusions",
"key": "eq_exclusions",
"step": "exclusion",
"name": "Earthquake exclusions",
"def": false,
"items": [
{
"id": "urm_near_fault",
"name": "Unreinforced masonry near active fault",
"exp": "{{construction_type}} == 'unreinforced_masonry' && {{near_fault}} == true",
"def": false
}
]
}Refer high TIV, hazard band hz4, and any near-fault building for cat-model review.
{
"id": "eq_refers",
"key": "eq_refers",
"step": "refer",
"name": "Earthquake refers",
"def": false,
"items": [
{
"id": "high_tiv_eq",
"name": "Building value over $10m",
"exp": "{{building_value}} > 10000000",
"def": false
},
{
"id": "near_fault_flag",
"name": "Near active fault",
"exp": "{{near_fault}} == true",
"def": false
},
{
"id": "highest_hazard",
"name": "Highest hazard band (hz4)",
"exp": "{{zip_band}} == 'hz4'",
"def": false
}
]
}This quote was priced by the Ptally rating engine. The trace below follows it through every step to the final result.
{
"zip_band": "hz1",
"construction_type": "steel_frame",
"building_value": 1000000,
"deductible_pct": 10,
"near_fault": false,
"year_built": 1965,
"soil_type": "soft",
"stories": 4
}hazard_rate_per_k = 0.35construction_eq_factor = 0.95deductible_eq_factor = 1year_built_factor = 1.2soil_factor = 1.25stories_factor = 1.1round((1,000,000 / 1000) * 0.35 * 0.95 * 1 * 1.2 * 1.25 * 1.1, 2) = 548.63round(548.63 + 500, 2) = 1,048.63Unreinforced masonry near active fault: not firedBuilding value over $10m: not firedNear active fault: not firedHighest hazard band (hz4): not firedSelect commercial earthquake as the default model for a new project, then change the rates, rules and tests to match your product. Our consultants can do this for you, with no implementation fee.