Appendix i — Data Card — NOAA Billion-Dollar Disasters / Storm Events + FEMA Disaster Declarations

Provider & what it is. Two U.S. federal sources that together let you measure where and when a climate or weather shock hit, at the county level. NOAA (National Oceanic and Atmospheric Administration) publishes two things you will use. First, the Billion-Dollar Weather and Climate Disasters product (from NOAA NCEI): a curated list of U.S. events whose total damages exceeded $1 billion (CPI-adjusted), with a type (hurricane, wildfire, drought, severe storm, flooding, winter storm), a date range, a cost estimate, and the states affected. Second, the Storm Events Database: a far more granular record of individual storm episodes and events — tornadoes, hail, flash floods, heat — with county FIPS codes, begin/end timestamps, and (often) property/crop damage estimates. FEMA (Federal Emergency Management Agency) publishes, through its OpenFEMA program, the Disaster Declarations Summaries: every presidentially declared disaster (major disaster “DR”, emergency “EM”, fire-management “FM”) since 1953, with the declaration date, incident type, and the list of declared counties. The reveal: NOAA tells you what the weather did; FEMA tells you when the government officially recognized it as a disaster for a specific place — and that official, dated, place-specific declaration is exactly the kind of clean treatment switch a difference-in-differences design needs.

Coverage. Billion-Dollar Disasters: U.S., 1980–present, updated quarterly, event-level (a few hundred events). Storm Events: U.S., 1950–present (completeness and the set of recorded event types improve over time), county-level, millions of rows. FEMA Disaster Declarations: U.S. states, territories, and tribal nations, 1953–present, declaration-by-county. All three are updated on a rolling basis, so a re-pull next year will have more recent rows — pin your snapshot.

Key identifiers. The linking key across these and to almost every other U.S. dataset (HMDA, Census, BEA) is the county FIPS code — a 5-digit string: 2-digit state + 3-digit county (e.g., 06037 = Los Angeles County, CA). Keep it as a zero-padded string, never an integer (leading zeros vanish and 06037 becomes 6037). FEMA also has its own disasterNumber (a unique integer per declaration) and femaDeclarationString. NOAA Storm Events uses EVENT_ID/EPISODE_ID. Billion-Dollar events carry an event name/ID and a state list rather than counties, so you often map them to counties via the storm or declaration data.

Access path. All free, no license fee. FEMA OpenFEMA is a clean REST/JSON API — no key required:

import os, requests
# OpenFEMA: presidentially declared disasters, JSON, no key needed
url = "https://www.fema.gov/api/open/v2/DisasterDeclarationsSummaries"
params = {"$filter": "fyDeclared eq 2023", "$top": 1000, "$format": "json"}
resp = requests.get(url, params=params, timeout=60)
declarations = resp.json()["DisasterDeclarationsSummaries"]

NOAA NCEI distributes Storm Events as yearly bulk CSV files (https://www.ncei.noaa.gov/.../StormEvents_details-...csv.gz) you download and concatenate; Billion-Dollar Disasters has a downloadable table and a JSON time-series endpoint. The NCEI Climate Data Online (CDO) API (for weather observations, not the disaster lists) does require a token, which — like every credential in this book — comes from the environment, never the code:

token = os.environ["NOAA_CDO_TOKEN"]   # set in your shell / .env, never hard-coded
headers = {"token": token}

License & note. U.S. federal government works are generally in the public domain (not copyrighted), so you may cache, redistribute, and commit these freely — a welcome contrast to the licensed WRDS data that must stay on GMU infrastructure. Cite the originating agency (NOAA NCEI; FEMA), not a re-host, per CONVENTIONS §6. NOAA asks that the Billion-Dollar product be cited as Smith (NOAA NCEI) with the access date [CHECK] exact citation form.

Gotchas. - FIPS as string, always. The single most common bug. Also: a handful of FIPS codes change over time (county splits/renames, e.g. parts of Alaska, Shannon County SD → Oglala Lakota 46102); pin a crosswalk year. - Declaration ≠ damage. A FEMA declaration is a political/administrative event, correlated with damage but also with whether a governor requested aid and how the request was processed. If your treatment is “got a declaration,” name that the declaration — not the storm — is what you are actually using, and consider it a proxy for the shock (a measurement-error issue, Ch 1.3). - A disaster spans many counties and dates. One disasterNumber expands to many county rows; one Billion-Dollar event spans multiple states. Decide your unit (county-year? county-event?) before merging or you will double-count. - Storm Events completeness drifts. Older years record fewer event types; a rising count of “events” over time is partly better recording, not just worse weather. Do not read a raw time trend as climate signal. - Damage fields are sparse and unit-inconsistent ("5.00K", "2.50M" as strings). Parse carefully; many rows are blank.

First 10 rows — schema sketch (illustrative; values invented, not real records).

disasterNumber state fipsStateCode fipsCountyCode fips5 incidentType declarationType declarationDate incidentBeginDate designatedArea
4610 CA 06 037 06037 Fire DR 2023-08-14 2023-08-01 Los Angeles (County)
4610 CA 06 071 06071 Fire DR 2023-08-14 2023-08-01 San Bernardino (County)
4611 FL 12 086 12086 Hurricane DR 2023-09-30 2023-09-26 Miami-Dade (County)
4611 FL 12 011 12011 Hurricane DR 2023-09-30 2023-09-26 Broward (County)
4612 TX 48 201 48201 Severe Storm DR 2023-05-22 2023-05-18 Harris (County)
4613 LA 22 071 22071 Flood DR 2023-06-04 2023-05-29 Orleans (Parish)
4614 NC 37 119 37119 Hurricane EM 2023-09-12 2023-09-10 Mecklenburg (County)
4615 CO 08 031 08031 Winter Storm DR 2023-12-20 2023-12-15 Denver (County)
4616 NY 36 061 36061 Flood EM 2023-07-10 2023-07-09 New York (County)
4617 OK 40 109 40109 Tornado DR 2023-04-26 2023-04-19 Oklahoma (County)

Which chapter/lab/capstone uses it. This is Priya’s data. The pairing drives her running example through Week 4 (Ch 4.1 difference-in-differences, Ch 4.2 staggered adoption, Ch 4.4 synthetic control) and the Week 7 project workshop: in Ch 7.1 her worked example asks “do counties hit by federally declared disasters see homeowner-insurance costs rise faster than comparable un-hit counties?” — a county-year DiD with treated = counties with a FEMA declaration, control = comparable un-hit counties, county and year fixed effects, clustering by county (the spec in Ch 7.1 §worked-example-B). You acquire it in Ch 7.2 (Data Acquisition in Practice) and document it in your Lab 7 data card; it is a natural spine for a climate-insurance capstone in the spirit of the Capstone Gallery. Pair it with FRED (insurance-cost proxy) and, if you have it, Compustat insurer fundamentals on WRDS.