FEMA Disaster Declarations Explained: DR, EM, FM and the Programs Behind Them
On this page
Problem statement
FEMA's declarations file mixes three different instruments under one table: major disaster declarations (DR), emergency declarations (EM) and fire management assistance declarations (FM). They are made for different events, at different speeds, and switch on different programs, so counting "disasters" without separating them compares a wildfire grant made within hours to a presidential declaration that pays for rebuilding a region. This page explains each type with the counts from OpenFEMA's 5,281 declarations, the programs each one carries, and how long each takes.
Quick answer
DR is a presidential major disaster declaration and the only type that can carry the full set of programs, including aid to households. EM is a presidential emergency declaration for protective measures before or during an event. FM is a FEMA grant to fight a specific wildfire, approved by the regional office. Filter on declarationType before any count.
decl = dds.drop_duplicates("disasterNumber")
print(decl.declarationType.value_counts().rename({"DR": "major disaster (DR)", "EM": "emergency (EM)", "FM": "fire management (FM)"}).to_string())
print(f"first of each: {decl.groupby('declarationType').declarationDate.min().dt.strftime('%Y-%m-%d').to_dict()}")
declarationType
major disaster (DR) 2947
fire management (FM) 1677
emergency (EM) 657
first of each: {'DR': '1953-05-02', 'EM': '1974-07-22', 'FM': '1970-06-26'}
There are 2,947 major disasters, 1,677 fire management declarations and 657 emergencies. Major disasters go back to May 1953, fire management to 1970 and emergencies to 1974, so a series of all three types has a different meaning before and after the 1970s.
Events, programs and speed by type
1. What each type is declared for
t = pd.crosstab(decl.incidentType, decl.declarationType)
print(t.loc[t.sum(axis=1).sort_values(ascending=False).index[:9]].to_string())
declarationType DR EM FM
incidentType
Fire 82 27 1677
Severe Storm 1106 41 0
Flood 888 41 0
Hurricane 279 178 0
Tornado 164 19 0
Snowstorm 76 95 0
Biological 59 108 0
Severe Ice Storm 61 14 0
Typhoon 57 5 0
Every fire management declaration is a fire, and fires are rarely major disasters (82). Severe storms (1,106) and floods (888) are almost all major disasters. Emergencies are used most for hurricanes (178), typically declared before landfall so states can evacuate and pre-position supplies, and for COVID-19 (108). Snowstorms are the one type more often an emergency (95) than a major disaster (76).
2. Which programs each type switches on
prog = {"ihProgramDeclared": "Individuals and Households", "iaProgramDeclared": "Individual Assistance (pre-2002)",
"paProgramDeclared": "Public Assistance", "hmProgramDeclared": "Hazard Mitigation"}
area = dds[dds.declarationDate.dt.year >= 2003]
print(area.groupby("declarationType")[list(prog)].mean().rename(columns=prog).round(3).T.to_string())
declarationType DR EM FM
Individuals and Households 0.415 0.001 0.000
Individual Assistance (pre-2002) 0.098 0.000 0.000
Public Assistance 0.935 1.000 1.000
Hazard Mitigation 0.944 0.000 0.415
Since 2003, 93.5% of major disaster rows carry Public Assistance (repairing public infrastructure) and 94.4% Hazard Mitigation, but only 41.5% the Individuals and Households program that pays people directly. Emergencies carry Public Assistance only, limited to emergency protective measures. Fire management declarations fund firefighting through Public Assistance, and 41.5% of their rows also open Hazard Mitigation funding.
3. How long a declaration takes
d = decl.assign(days=(decl.declarationDate - decl.incidentBeginDate).dt.days)
print("days from incident start to declaration, median:", d.groupby("declarationType").days.median().to_dict())
print("90th percentile:", d.groupby("declarationType").days.quantile(0.9).to_dict())
days from incident start to declaration, median: {'DR': 19.0, 'EM': 3.0, 'FM': 0.0}
90th percentile: {'DR': 78.0, 'EM': 53.0, 'FM': 2.0}
Fire management declarations are made the same day (median 0 days, 90th percentile 2), while the fire is still burning. Emergencies take a median 3 days. Major disasters take a median 19 days and, for one in ten, 78 days or more. The damage has to be assessed jointly before the governor's request can be supported.
Fire grants and the pandemic
The data used on this page
FEMA's Disaster Declarations Summaries from OpenFEMA, saved on this site on 15 October 2026.
from pathlib import Path
import geopandas as gpd
import numpy as np
import pandas as pd
import requests
Path("data").mkdir(exist_ok=True)
# OpenFEMA, queried on 15 October 2026 and saved on this site because both datasets are revised continually:
# DisasterDeclarationsSummaries v2 (every declaration since 1953, one row per designated area) and NfipClaims v3
# (flood insurance claims with a loss in 2017 or later, 29 fields). The queries are in data/README.txt; the live API is
# https://www.fema.gov/api/open/v2/DisasterDeclarationsSummaries and https://www.fema.gov/api/open/v3/NfipClaims
FILES = ["fema-disaster-declarations-2026-10-15.zip", "nfip-claims-2017-2026-2026-10-15.zip"]
for name in FILES:
if not Path(f"data/{name}").exists():
Path(f"data/{name}").write_bytes(requests.get(f"https://data.spatialworkflow.io/{name}", timeout=600).content)
dds = pd.read_csv("data/fema-disaster-declarations-2026-10-15.zip", dtype={"fipsStateCode": str, "fipsCountyCode": str, "placeCode": str},
parse_dates=["declarationDate", "incidentBeginDate", "incidentEndDate"])
print(f"OpenFEMA: {len(dds):,} declaration rows for {dds.disasterNumber.nunique():,} declarations, "
f"{dds.declarationDate.min():%Y}-{dds.declarationDate.max():%Y}")
OpenFEMA: 70,567 declaration rows for 5,281 declarations, 1953-2026
Example 1: fire management declarations by state
fm = decl[decl.declarationType == "FM"]
print(fm.state.value_counts().head(8).to_dict())
print(f"FM declarations in Western states (WA, OR, CA, ID, NV, MT, WY, UT, CO, AZ, NM, TX, OK): "
f"{fm.state.isin(['WA', 'OR', 'CA', 'ID', 'NV', 'MT', 'WY', 'UT', 'CO', 'AZ', 'NM', 'TX', 'OK']).mean():.1%}")
{'TX': 265, 'CA': 263, 'WA': 144, 'OK': 132, 'OR': 126, 'NV': 88, 'CO': 79, 'AZ': 79}
FM declarations in Western states (WA, OR, CA, ID, NV, MT, WY, UT, CO, AZ, NM, TX, OK): 83.7%
Texas (265) and California (263) have the most fire management declarations, followed by Washington, Oklahoma and Oregon. 83.7% are in the western and southern-plains states listed. These are the fires that threatened communities, not every large fire, so an FM map is a map of where fires meet houses.
Example 2: COVID-19, the largest declaration event
cov = dds[dds.incidentType == "Biological"]
print(f"Biological declarations: {cov.disasterNumber.nunique()} ({cov.drop_duplicates('disasterNumber').declarationType.value_counts().to_dict()}), "
f"{len(cov):,} rows, {cov.declarationDate.min():%d %B %Y} to {cov.declarationDate.max():%d %B %Y}")
print(f"states and territories with a COVID major disaster: {cov[cov.declarationType == 'DR'].state.nunique()}")
Biological declarations: 167 ({'EM': 108, 'DR': 59}), 7,857 rows, 13 March 2020 to 28 March 2021
states and territories with a COVID major disaster: 56
COVID-19 is the largest declaration event in the file. 167 declarations (108 emergencies and 59 major disasters) made between 13 March 2020 and 28 March 2021 produced 7,857 rows. Every state and territory, 56 in all, received a major disaster declaration, the first time all of them were under one simultaneously.
The Stafford Act behind the codes
The three types come from the Robert T. Stafford Disaster Relief and Emergency Assistance Act. A major disaster is the full declaration: the President finds the event beyond state and local capacity, and FEMA can fund public repairs, payments to households and mitigation. An emergency is narrower and faster, for actions that save lives and protect property, often before the event. Fire management assistance is not a presidential declaration at all: a FEMA regional administrator approves it while a fire threatens to cause a major disaster, and it reimburses firefighting costs.
That difference matters for analysis. Fire management counts measure firefighting grants, emergency counts measure precautions, and only major disasters approximate the events that caused damage beyond local means.
Reading the program flags
iaProgramDeclaredis the old Individual Assistance flag, replaced byihProgramDeclaredin 2002. Use both for long series.- Programs are flagged per designated area, not per declaration. One declaration can give a county Public Assistance only and its neighbour household aid as well.
- Amendments add programs and areas later; the file shows the current state, not the original declaration.
- Denied requests are not in the file. Only approved declarations appear.
Internal links
- How to map FEMA disaster declarations β the county map
- How to chart disaster declarations over time β trends by type
- Flood insurance payouts explained β the other federal flood money
FAQ
What is the difference between DR and EM in FEMA declarations?
DR is a major disaster declaration, which can fund rebuilding and aid to households. EM is an emergency declaration for protective measures before or during an event. Hurricanes account for 178 of the 657 emergencies.
What is an FM declaration?
A Fire Management Assistance declaration: a FEMA grant to fight a specific wildfire that threatens communities, usually approved the same day.