Technical writing

FEMA Hazard Mitigation: The Federal Record of Spending to Prevent the Next Disaster

· 11 min read· AI Analytics
FEMAHazard MitigationDisaster PreventionGrantsFederal Data

Most of what the federal government records about disasters is recorded after the fact—the declaration, the debris removed, the public buildings rebuilt. Hazard Mitigation Assistance is the other half of the ledger: the money FEMA spends to make the next disaster smaller before it arrives, or to keep the last one from happening again. It buys out the house that floods every spring and turns the lot into open space, elevates the home above the flood crest, anchors the roof against the next hurricane, and builds the safe room the town runs to when the tornado siren sounds. OpenFEMA publishes that preventive record as roughly 56,000 funded mitigation projects—the federal map of where the country chooses to invest in resilience.

This article covers what the Hazard Mitigation Assistance dataset is and why mitigation sits opposite recovery in FEMA's logic; the National Institute of Building Sciences finding that mitigation saves roughly six dollars for every dollar spent; the four program streams that fund the work—the post-disaster Hazard Mitigation Grant Program, the flood-insurance-tied Flood Mitigation Assistance program, the legacy Pre-Disaster Mitigation program, and the competitive Building Resilient Infrastructure and Communities program that replaced it; the kinds of projects funded, from acquisitions and elevations to safe rooms, wind retrofits, drainage works, and the local hazard-mitigation plans a community must hold to be eligible at all; the benefit-cost analysis at the center of the program and the equity debate over whether BRIC's scoring favored wealthier applicants; how the projects table joins to the disaster-declarations record and the Public Assistance recovery data; a Python workflow that pulls projects from the OpenFEMA API and sums federal share by program, by state, and by project type; and the caveats—obligation-versus-outlay, applicant-name variation, and the survivorship problem of measuring prevention—that every analyst must internalize before drawing conclusions.

What the dataset is

Hazard Mitigation Assistance (HMA) is FEMA's family of grant programs that fund mitigation—any sustained action taken to reduce or eliminate long-term risk to people and property from natural hazards. Mitigation is the deliberate opposite of response and recovery: response saves lives during an event, recovery rebuilds afterward, and mitigation is the up-front work that makes the next event do less damage. The HMA grants flow to states, tribes, territories, and local governments, which in turn carry out projects or pass the money to sub-applicants. OpenFEMA publishes the funded work as the Hazard Mitigation Assistance Projects dataset—roughly 56,000 rows, each a single funded mitigation project.

In our database this record is stored as the table fema_hma_projects, with the grain of one row per funded project: a county that buys out forty flood-prone homes under a single grant may appear as one project, while a state running elevations, a safe room, and a drainage improvement contributes a row each. The columns capture which program paid, who the recipient was, what kind of project it funded, for which hazard, in which state, and how many federal dollars were obligated:

projectIdentifier           -- unique ID for the funded mitigation project
programArea                 -- HMGP, FMA, PDM, or BRIC (the funding stream)
programFy                   -- the program fiscal year
disasterNumber              -- the declaration that triggered an HMGP grant (if any)
recipient                   -- the state/tribe/local government grantee
subrecipient                -- the entity actually carrying out the project
state / stateNumberCode      -- full state name and FIPS code
county                      -- county where the project sits
projectType                 -- acquisition, elevation, safe room, retrofit, etc.
status                      -- project lifecycle status
federalShareObligated       -- federal dollars obligated to the project
benefitCostRatio            -- benefit-cost analysis result, where recorded
dateApproved                -- date FEMA approved the project

The programArea is the column that organizes everything else: it tells you which of the four streams paid for the project, and the streams differ sharply in their trigger, their eligibility, and their politics. The projectType is the substantive payload—it is the difference between a buyout and a safe room, between a drainage culvert and a local mitigation plan—and the field on which most analytical questions about what the country actually builds turn. The federalShareObligated is the money, and the word obligated is load-bearing: it is a legal commitment of funds, not necessarily cash that has been spent, a distinction the caveats section returns to. The disasterNumber is the join key that ties a post-disaster mitigation grant back to the declaration that funded it, and through that declaration to the entire FEMA disaster record.

Mitigation versus recovery, and the six-to-one finding

To understand HMA you have to see it against its sibling, the Public Assistance (PA) program. Public Assistance pays to put things back after a disaster—to clear the debris, run the emergency shelters, and rebuild the roads, schools, and water systems a storm destroyed. Hazard Mitigation pays so that less needs putting back next time. The two are deliberately complementary, and the law links them: a major portion of HMA, the Hazard Mitigation Grant Program, is funded as a percentage of the total disaster aid spent on a declaration, so the more a disaster costs to recover from, the more mitigation money it generates to reduce the cost of the next one.

The economic case for mitigation rests on one of the most-cited findings in disaster policy. The National Institute of Building Sciences, in its multi-year Natural Hazard Mitigation Saves studies, concluded that mitigation funded through federal grants saves society roughly six dollars for every one dollar spent, with the ratio varying by hazard and intervention—higher for some flood and wind measures, lower for others. The intuition is straightforward: spending to elevate or remove a house that would otherwise flood repeatedly avoids not only the future repair bills but the future emergency response, the displacement, the lost economic activity, and the insurance payouts. The finding is the rhetorical engine of the entire program—it is why mitigation is framed as an investment rather than a cost—and it is also, as the equity section will discuss, the source of the program's central methodological tension, because turning “saves six dollars” into a project-by-project benefit-cost test is harder and more contested than the headline suggests.

The four program streams

Hazard Mitigation Assistance is not one program but a family, and the programAreafield distinguishes four streams that differ in when they are available, what they fund, and how they choose projects. Two are post-disaster, available in the wake of a declaration, and the others are pre-disaster, funded on an annual cycle independent of any particular event.

The Hazard Mitigation Grant Program (HMGP) is the oldest and largest stream by cumulative dollars. It becomes available after a presidential major-disaster declaration, and its funding is set as a percentage of the total federal disaster assistance for that declaration. The logic is to capture the political and practical window after a disaster—when the damage is fresh, the will to act is high, and a flooded-out homeowner may finally accept a buyout—to fund mitigation in the affected state. Because it is tied to declarations, HMGP rows in the data carry a disasterNumber, and the program's geographic footprint follows the map of where disasters have struck. The Flood Mitigation Assistance (FMA)program is the second stream, funded through the National Flood Insurance Program and aimed specifically at reducing flood-insurance claims. FMA targets properties insured under the NFIP, and in particular the repetitive-loss and severe repetitive-loss properties that flood again and again and account for an outsized share of claims—the small set of homes that the flood-insurance program pays to rebuild over and over. FMA is the stream most explicitly framed as an actuarial intervention: buy out or elevate the chronic losers, and the insurance fund stops bleeding.

The two pre-disaster streams have a more tangled lineage. The Pre-Disaster Mitigation (PDM) program was the legacy competitive pre-disaster program, established to fund mitigation on a nationwide annual basis rather than waiting for a disaster to unlock HMGP. It included congressionally directed projects alongside competitively selected ones. PDM was retired and replaced by Building Resilient Infrastructure and Communities (BRIC), the larger pre-disaster competitive program created under the Disaster Recovery Reform Act's authority to set aside a share of disaster spending for pre-disaster mitigation. BRIC was designed to fund bigger, more ambitious resilience projects—infrastructure-scale flood control, community-wide buyouts, capability-building—and to do so competitively at national scale. The two legacy and current pre-disaster acronyms (PDM, and then BRIC) trip up newcomers; the simplest framing is that BRIC is the modern face of competitive pre-disaster mitigation, PDM is its predecessor whose grants still populate the historical record, and HMGP and FMA are the post-disaster and flood-insurance streams that run alongside them.

What the projects actually are

The projectType field is where the abstraction of “mitigation” becomes concrete brick and dirt. A handful of project types dominate the dataset, and each embodies a different theory of how to reduce risk.

Property acquisition and buyout is the most consequential and the most studied. FEMA funds a local government to purchase a flood-prone property at fair market value, demolish or relocate the structure, and deed-restrict the land as permanent open space that can never be built on again. It is the only mitigation measure that achieves permanent risk elimination—a house that is gone cannot flood—and it is also the most socially fraught, because it asks people to leave their homes and neighborhoods, and the open-space requirement removes the parcel from the tax base forever. Structure elevation is the less drastic flood measure: the home stays where it is but is physically raised above the base flood elevation on new piers or fill, so the floodwater passes beneath it. Safe rooms and community shelters are the wind-and-tornado measure—hardened structures, residential or communal, built to survive extreme wind and give occupants a place to ride out a tornado or hurricane. Wind retrofits harden existing buildings against high wind: roof tie-downs, impact-resistant openings, reinforced connections. Flood-control and drainage works—culverts, channels, detention basins, floodwalls—reduce flooding across an area rather than for a single structure, and are the kind of larger infrastructure project BRIC was built to fund.

One project type is different in kind: the hazard-mitigation plan itself. Federal law requires a local government to have a current, FEMA-approved hazard-mitigation plan to be eligible for most mitigation project grants in the first place—a community must have analyzed its hazards, assessed its vulnerabilities, and adopted a strategy before it can receive money to act on that strategy. HMA therefore funds the development and update of these plans as projects in their own right. This eligibility rule is one of the most important and least visible features of the program: it means that the communities best positioned to win mitigation grants are the ones with the planning capacity to produce an approved plan, an administrative threshold that, like benefit-cost analysis, tends to advantage better-resourced applicants—a thread that runs straight into the equity debate below.

Benefit-cost analysis and the BRIC equity debate

At the center of the program sits the benefit-cost analysis (BCA). Before FEMA will fund most mitigation projects, the applicant must demonstrate that the project's expected benefits—the future damages and losses it will avoid—exceed its cost, conventionally expressed as a benefit-cost ratio of at least one. The BCA is how the agency operationalizes the six-to-one savings finding at the level of an individual project, and it is recorded in the data where available. In principle the BCA is a neutral, quantitative gatekeeper that ensures public money goes to mitigation that pays for itself.

In practice the BCA became the focus of the program's most serious equity critique, centered on BRIC. The standard benefit-cost calculation values avoided damages largely in terms of property value: a project that protects expensive homes and high-value infrastructure shows large avoided losses and clears the benefit-cost bar easily, while the same physical intervention protecting modest homes in a lower-income community shows smaller dollar benefits and may fail the test—even though the human stakes are identical or greater, because lower-income households are less able to absorb and recover from a loss. Combined with the requirement for an approved mitigation plan and the substantial technical capacity needed to assemble a competitive BRIC application, the effect was that the competitive pre-disaster program historically directed a disproportionate share of its awards to wealthier, better-staffed applicants—exactly the communities most able to fund resilience on their own. This critique drove reforms intended to weight applications toward disadvantaged communities, to provide direct technical assistance to under-resourced applicants, and to revise the benefit-cost methodology so that it does not systematically undervalue protecting poorer places. The HMA data is the raw material for studying whether those reforms are working—by joining project location and program to community demographics, an analyst can ask directly whether mitigation dollars are reaching the communities most exposed and least able to protect themselves, which is the central open question about the program.

Joining to disaster declarations and Public Assistance

Like the rest of the FEMA data ecosystem, the mitigation projects table is most powerful as one facet of an integrated record, and two joins matter most.

The first is to the disaster declarations dataset through the disasterNumber. Because HMGP grants are unlocked by, and funded as a share of, a specific major-disaster declaration, every HMGP project carries the declaration number that triggered it. Joining mitigation projects to the declarations record by disaster number places each post-disaster grant in context: it supplies the incident type (was this flood, hurricane, or wildfire mitigation?), the declaration date, and the affected geography, and it lets an analyst trace the full arc of a disaster—from the declaration, to the recovery spending, to the mitigation it funded for next time. The pre-disaster streams (FMA, PDM, BRIC) are not tied to a declaration and so do not carry a meaningful disaster number, which is itself a useful way to separate the reactive, event-driven half of the program from the proactive, planned half.

The second join is to the Public Assistance recovery record. PA and HMA are the two ends of the same disaster: PA pays to rebuild what was destroyed, HMA pays to make the rebuild more resilient or to remove the property from harm's way entirely. Joining the two by disaster number—and, where possible, by applicant and geography—lets an analyst ask the program's defining question: for a given disaster, how did the dollars split between putting things back and reducing future risk, and did the places that absorbed the most recovery spending go on to receive the most mitigation? The relationship is not automatic. A disaster can generate enormous PA spending and little subsequent mitigation if the affected jurisdictions lack the capacity or the will to pursue HMGP grants—and that gap, the recovery-without-mitigation pattern, is one of the most policy-relevant signals the joined data can surface. Through the disaster number the mitigation record also connects outward to the rest of the FEMA disaster family, including the flood-insurance claims that FMA exists to reduce.

Analytical uses

A national, project-resolved, program-tagged record of mitigation spending supports a distinctive set of analyses that the recovery data alone cannot.

Where the country invests in resilience is the most immediate use. Summing federal share by state, by program, and by hazard reveals the geography of mitigation: which states pursue HMGP aggressively after their disasters, which lean on FMA to address chronic flooding, and which win the competitive BRIC awards. Because the data carries the project type, the same aggregation reveals the mix of strategies—whether a state's mitigation portfolio is dominated by buyouts, elevations, safe rooms, or infrastructure—which reflects both its hazard profile and its policy choices.

The equity question is the analysis the program's critics most want answered: by joining project location to the demographics of the communities served, an analyst can test whether mitigation dollars, and competitive BRIC dollars in particular, reach the communities most exposed to hazards and least able to self-fund resilience, or whether they continue to flow toward wealthier, better-resourced applicants. The buyout record is a research subject in its own right—the acquisition projects, mapped and tracked over time, document the slow, contested retreat of American communities from the most flood-prone land, the largest deliberate managed-retreat program the country runs. And measuring mitigation against recovery, through the join to Public Assistance, lets an analyst quantify the balance between reactive rebuilding and proactive risk reduction disaster by disaster—the single number that best captures whether the country is learning from its disasters or merely repeating them.

Python workflow: mitigation projects from the OpenFEMA API

The script below pulls Hazard Mitigation Assistance projects from FEMA's OpenFEMA REST API and computes the core metrics: total federal share, the breakdown by program (HMGP, FMA, PDM, BRIC), the leading states by mitigation dollars on a national run, and a tally of the headline project types such as acquisitions and elevations. No API key is required for public data. Because OpenFEMA field names can vary between dataset versions, the script probes for the working column names at runtime rather than hard-coding them; any production use should be validated against the current OpenFEMA data dictionary and should page through the full result set. Note the dataset's quirk that the state field carries the full state name, not the two-letter postal code.

import requests, pandas as pd

# OpenFEMA REST API -- no API key required for public data.
# The Hazard Mitigation Assistance Projects dataset holds one row per
# funded mitigation project, keyed by a project identifier and an
# applicant, and carrying the program (HMGP / FMA / PDM / BRIC), the
# project type, the state, and the federal share obligated.
# NOTE: in this dataset "state" is the FULL state name (e.g. "Texas"),
# not the two-letter postal code.
BASE = "https://www.fema.gov/api/open"
HMA = f"{BASE}/v4/HazardMitigationAssistanceProjects"


def fetch_all(url, params=None, page=10000):
    # OpenFEMA pages with $skip / $top; loop until a short page comes back.
    params = dict(params or {})
    params["$top"] = page
    out, skip = [], 0
    while True:
        params["$skip"] = skip
        r = requests.get(url, params=params, timeout=120)
        r.raise_for_status()
        body = r.json()
        # The records live under a key named for the entity; grab the list.
        key = next(k for k, v in body.items() if isinstance(v, list))
        rows = body[key]
        if not rows:
            break
        out.extend(rows)
        if len(rows) < page:
            break
        skip += page
    return out


def _col(df, *names):
    # Return the first column present from a list of candidate names.
    for n in names:
        if n in df.columns:
            return n
    return None


def analyze(state=None):
    flt = {"$filter": f"state eq '{state}'"} if state else None
    df = pd.DataFrame(fetch_all(HMA, flt))
    if df.empty:
        print("No HMA projects returned "
              "(remember: use the full state name, not the 2-letter code).")
        return

    prog = _col(df, "programArea", "programFy", "program")
    fed = _col(df, "federalShareObligated", "federalShareObligatedAmount")
    ptype = _col(df, "projectType")
    st = _col(df, "state")
    df[fed] = pd.to_numeric(df[fed], errors="coerce").fillna(0)

    scope = state or "United States"
    print(f"{scope}: ${df[fed].sum():,.0f} federal share across "
          f"{len(df):,} mitigation projects")

    # --- Federal share by program (HMGP / FMA / PDM / BRIC) --------------
    by_prog = df.groupby(prog)[fed].sum().sort_values(ascending=False)
    print("  Federal share obligated by program:")
    for p, amt in by_prog.items():
        print(f"    {str(p):<28} ${amt:>15,.0f}")

    # --- Top states by mitigation dollars (national run only) -----------
    if not state and st:
        by_state = df.groupby(st)[fed].sum().sort_values(ascending=False)
        print("  Top 10 states by federal share obligated:")
        for s, amt in by_state.head(10).items():
            print(f"    {str(s):<24} ${amt:>15,.0f}")

    # --- Tally the headline project types -------------------------------
    if ptype:
        counts = df[ptype].value_counts()
        acq = counts.filter(like="Acquisition").sum()
        elev = counts.filter(like="Elevation").sum()
        print(f"  Acquisitions / buyouts: {int(acq):,} projects")
        print(f"  Structure elevations:   {int(elev):,} projects")
    return df


analyze("Texas")
# analyze()  # national: every program, every state

Two practical notes apply. First, the program breakdown is the most analytically useful single cut, because the four streams behave so differently: an HMGP-heavy state is one acting on its disasters after the fact, an FMA-heavy state is one fighting chronic flood-insurance losses, and a BRIC award reflects a competitive, planned, pre-disaster investment—so the same total dollar figure means very different things depending on which stream it came from. The project-type tally in the script is deliberately coarse (a substring match on acquisition and elevation); a rigorous portfolio analysis should reconcile the full set of project-type values against the current OpenFEMA data dictionary, because the exact category labels evolve. Second, for national-scale work—ranking every state, joining to declarations and Public Assistance, or building the demographic equity analysis—OpenFEMA's bulk data downloads (the full CSV and Parquet files) are far more efficient than thousands of paginated API calls and ship with the authoritative, version-stamped field definitions for the release.

Limitations and analytical caveats

The mitigation projects dataset is the most comprehensive public record of federal disaster-risk reduction in the United States, but it carries structural limitations that an analyst must internalize before drawing conclusions from it.

Obligated is not outlaid, and approved is not built. The federal-share figure is the amount FEMA has obligated—legally committed—to a project, which is not the same as money spent or work completed. Mitigation projects, especially large buyouts and infrastructure works, span years; a project can be obligated, then de-obligated or reduced, and the federal share can change over its life. A snapshot of obligations overstates completed mitigation and should never be read as a tally of finished projects on the ground. Recency compounds this: the most recently approved projects have obligated dollars but little completed work, so the leading edge of the data measures intent more than accomplishment.

Recipient and sub-recipient names vary. The same county, city, or special district can appear under several spellings, abbreviations, and organizational forms across grants and program years, because the names are entered through dozens of state and local programs over decades. Any analysis that rolls spending up by recipient—to ask which jurisdictions mitigate most—must first reconcile these name variants, ideally against a stable geographic key like the county FIPS code, or it will fragment a single recipient's record across multiple rows and undercount the leaders.

The grain and the program lineage are uneven. A single “project” can be one structure or forty, so a raw count of project rows is a poor proxy for the scale of mitigation; federal share and, where available, the number of properties are better measures. And the program lineage is a moving target: PDM's replacement by BRIC, and the evolution of FMA's repetitive-loss categories, mean that comparing program activity across years requires mapping the historical program labels onto a consistent scheme rather than taking the programArea field at face value across the whole time span.

Prevention is hard to measure, and the data cannot prove a counterfactual. The deepest limitation is conceptual. The value of mitigation is the disaster that did not happen—the flood the elevated house rode out, the loss the bought-out lot never incurred—and the dataset records the spending, not the avoided harm. The six-to-one savings finding is an estimate built on modeled counterfactuals, not a figure that can be read off the projects table. Treating recorded mitigation dollars as if they were realized savings, or treating the absence of a subsequent claim as proof that a specific project worked, over-reads what the dataset can bear. Held with these caveats in mind, the fema_hma_projects table is a uniquely valuable resource: a project-resolved, program-tagged, geographically grounded record of where and how the United States spends to make its next disaster smaller—the preventive half of a system whose recovery half, when the prevention is never funded, fills the Public Assistance ledger instead.

Related writing

FEMA Disaster Declarations: The Federal Database Behind 70 Years of US Natural Disasters — Every post-disaster Hazard Mitigation Grant Program project carries a disaster number that joins straight to the declarations record, the upstream event that unlocks the mitigation funding and supplies the incident type and geography each grant reduces risk against.

FEMA Public Assistance: The Federal Record of How Disaster Recovery Money Is Spent — Public Assistance is mitigation's sibling and opposite—it pays to rebuild after a disaster while Hazard Mitigation pays to make the next one smaller—and joining the two by disaster number quantifies the balance between reactive recovery and proactive risk reduction.

NOAA Storm Events Database: The Federal Record Behind 50 Years of US Weather Disasters — The hazards that mitigation projects are built to withstand—floods, tornadoes, hurricanes, and severe storms—are catalogued event by event in NOAA's storm record, the empirical basis for the risk that buyouts, elevations, and safe rooms exist to reduce.