Arborlook
Risk & Response by Arborlook Insights

Methodology

How department, county, and state pages are built, from spatial analysis to color scales to peer matching.

Department Coverage

Last updated: March 2026

We generate pages for all departments in the NERIS Public dataset that have a valid boundary polygon, approximately 22,000 departments across all 50 states and the District of Columbia. Departments in NERIS without a recorded boundary (roughly 8,000) are excluded because all analysis depends on geography: tract assignment, population calculation, spatial maps, and infrastructure counts all require a department boundary to exist.

Each department's boundary, name, department type, and station locations come directly from NERIS Public and are not modified. Boundaries are self-reported by departments and may not reflect current service areas.

Census Tracts as the Unit of Analysis

All sub-department analysis uses 2020 Census tracts as the geographic unit, with demographic data from the 2020-2024 American Community Survey (ACS) 5-year estimates. Census tracts are small, relatively stable statistical areas with populations typically between 1,200 and 8,000 people. They are the primary unit for American Community Survey (ACS) data release, which is the source for all demographic metrics.

Using tracts (rather than ZIP codes, counties, or block groups) provides a balance of geographic precision and data reliability. ACS 5-year estimates at the tract level have acceptable margins of error for the metrics we report. Block groups would be more granular but have much higher uncertainty; counties are too coarse to reveal within-jurisdiction variation.

Tract-to-Department Assignment

Census tract boundaries do not align with fire department jurisdictional boundaries. To determine which tracts a department serves, we use a two-step spatial process:

Step 1: Boundary Buffer

Department boundaries from NERIS are shrunk inward by 250 feet before computing tract intersections. This removes false overlaps caused by digitization artifacts, specifically situations where two adjacent jurisdictions share a road-centerline boundary and technically "intersect" tracts on the other side of the road. The buffer ensures that only genuinely overlapping territory counts.

Step 2: Minimum Overlap Filter

After intersection, tracts with negligible overlap are excluded. A tract is kept if either of the following is true:

  • The overlap covers at least 1% of the tract's total area, or
  • The overlap covers at least 0.5 square kilometers (~124 acres) of absolute area

The percentage threshold catches small slivers on urban and suburban tracts. The absolute area floor protects large rural tracts, where even a fraction of a percent can represent meaningful service territory.

Population Apportionment (NFPA 1720 Density Classification)

How a tract's population contributes to a department's profile depends on the tract's population density, classified using NFPA 1720 thresholds:

  • Urban and suburban tracts (500 or more people per square mile): population is scaled by the fraction of the tract's area that overlaps the department boundary. For example, if a suburban tract with 5,000 residents has 60% of its area inside the department's boundary, it contributes 3,000 to the department's estimated population. This area-based apportionment produces accurate estimates because population in dense tracts is distributed relatively uniformly.
  • Rural tracts (fewer than 500 people per square mile): the full tract population is included without scaling. Rural tracts cover large geographic areas where population clusters in small towns surrounded by undeveloped land. Area-based scaling would severely undercount these communities because a department might cover only 10% of the tract's land area while serving most of its residents.

The same apportionment factor applies to all demographic and housing counts (age groups, vulnerability metrics, housing units). Risk scores and economic indicators are population-weighted averages and use the apportioned population as weights.

Example: A suburban department's boundary fully contains 9 census tracts and partially overlaps 5 more along its edges. The 9 fully contained tracts contribute 100% of their populations. The 5 edge tracts contribute population proportional to the overlap area. A rural tract on the boundary contributes its full population regardless of overlap fraction.

Because tracts on jurisdictional boundaries may be included in more than one department's profile, a department's reported "population served" reflects the community it touches rather than an exclusive count.

Departments with zero assigned tracts (typically covering very small or largely unpopulated areas) are flagged and excluded from metrics that require population data.

Natural Hazard Risk Scores

Hazard scores come directly from FEMA's National Risk Index (NRI), version 1.20. The NRI provides scores for 18 hazard types at the census tract level. Scores range from 0 to 100 and represent relative risk nationally. A score of 80 means the tract is in the top 20% of risk for that hazard across all U.S. tracts.

National Fixed Color Scale

Hazard map colors use a fixed national scale so they mean the same thing on every department page:

Very Low
0-20
Low
20-40
Medium
40-60
High
60-80
Very High
80-100

This allows meaningful national comparison: a department with a red earthquake tract knows it is in the top 20% of earthquake risk nationally, regardless of where it's located.

Department-Level Score

The single hazard score displayed for a department is a population-weighted average across all assigned tracts: each tract's score is multiplied by its population, summed, then divided by total department population. This weights high-population tracts more heavily than low-population tracts.

Life-Safety Loss

Hazards are sorted by Life-Safety Loss (EALPE in the NRI) rather than the 0-100 risk score. EALPE is the Expected Annual Loss to Population Equivalence, which uses FEMA's Value of Statistical Life ($13.7M per expected fatality) to convert expected annual deaths and injuries into a dollar figure. This reflects which hazards pose the greatest risk to human life, not just which have the highest relative score.

A hazard with a moderate risk score but high expected fatalities will rank above a hazard with a high risk score but minimal life-safety impact. The risk score is still displayed for each hazard (bar width and rating label); only the sort order uses Life-Safety Loss.

18 Hazard Types

HazardNRI Code
AvalancheAVLN
Coastal FloodingCFLD
Cold WaveCWAV
DroughtDRGT
EarthquakeERQK
HailHAIL
Heat WaveHWAV
HurricaneHRCN
Ice StormISTM
LandslideLNDS
LightningLTNG
Riverine FloodingRFLD
Strong WindSWND
TornadoTRND
TsunamiTSUN
Volcanic ActivityVLCN
WildfireWFIR
Winter WeatherWNTW

Demographic & Risk Maps

For demographic, fire risk, and EMS demand maps, we use a different approach than the hazard maps: percentile ranks within the department's own tracts. This answers a different question than the national scale. Not "how do we compare nationally?" but "which of my tracts should I prioritize?"

Quintile Breakpoints

For each metric and each department, we calculate the 20th, 40th, 60th, and 80th percentile values across that department's tracts. These become the color breakpoints:

Bottom 20%
Lowest need
20-40th
Below median
40-60th
Median
60-80th
Above median
Top 20%
Highest need

This means the color legend is unique to each department and each metric. A department where every tract has 5-10% mobile home density will still show variation. The tracts at 10% show orange or red, the tracts at 5% show green. This helps chiefs identify which tracts deserve attention first given their specific conditions.

Zero-Inflation Handling

Some metrics have many tracts with a zero value. For example, a dense urban department might have 80% of tracts with zero wood/fuel oil heating. In this case, a naive percentile approach would make those zero-value tracts show as amber or red (because they land in the 60th percentile by rank) even though zero is objectively low risk.

We apply a zero-inflation correction: if 60% or more of a department's tracts have a zero value for a metric, all zero-value tracts are colored green regardless of their rank. Only tracts with a value above zero use the percentile scale. This prevents misleading coloring for metrics that genuinely don't apply to a jurisdiction.

Metrics Included

CategoryMetricSource
Fire Risk% housing built before 1980ACS
Fire Risk% housing built before 1960ACS
Fire Risk% using wood, fuel oil, or coal heatACS
Fire Risk% vacant housing unitsACS
Fire Risk% mobile homesACS
Fire Risk% renter-occupiedACS
EMS Demand% population age 65+ACS
EMS Demand% population age 85+ACS
EMS Demand% with a disabilityACS
EMS Demand% uninsuredACS
EMS Demand% households with no vehicleACS
Demographics% below poverty lineACS
Demographics% with limited English proficiencyACS
DemographicsMedian household incomeACS

Peer Matching

Each department is matched to up to 15 peer departments from the full NERIS Public set. The goal is to identify departments that face similar community conditions, not just similar size, so that comparisons are meaningful.

Step 1: Hard Filters

Candidates must pass all four hard filters to be considered as a peer. Departments that don't match on these dimensions aren't meaningfully comparable:

FilterHow It's Applied
Department typeMust be the same: career, combination, or volunteer (from NERIS)
Community classMust be the same: Urban (≥1,000 people/sq mi), Suburban (500-1,000), or Rural (<500). Based on NFPA 1720 demand zone thresholds.
Census divisionMust be in the same of the 9 U.S. Census divisions (e.g., New England, East North Central, Mountain). Keeps peers geographically relevant since a rural New England department and a rural Mountain department face very different conditions.
PopulationMust be within +/-50% of the target department's population

Step 2: Similarity Scoring

Among candidates that pass the hard filters, we compute a weighted similarity score. Each dimension is normalized 0-1 before weighting, so no single variable dominates due to scale differences:

DimensionWeightHow It's Measured
Population served25%Log-scaled total population (log scale compresses differences at large populations)
Population density20%Log-scaled people per square mile of service area
Hazard risk profile15%Population-weighted NRI RISK_SCORE
Elderly population10%% of population age 65+
Poverty rate10%% of population below the federal poverty line
Older housing stock10%% of housing units built before 1970

The 15 candidates with the lowest total distance (highest similarity) become the peer group. Departments with fewer than 15 candidates passing the hard filters will have fewer peers displayed.

Peer comparisons displayed on department pages use department-level averages, not tract-level data. Each peer metric is the population-weighted average across all tracts assigned to that peer department.

Disaster Declarations

Federal disaster declarations come from OpenFEMA. Declarations are matched to departments by county FIPS code. A department is associated with all declarations for the county or counties its boundary overlaps.

Statewide declarations (where the county code is "000") are excluded, as these cover entire states and don't indicate localized impact. All remaining declarations from 1959 through the current year are included in the count; the most recent 10 years are highlighted on the department page.

Because matching is county-based, a declaration appears on a department's page if it covers that county, not necessarily the specific jurisdiction. For most departments this is a reasonable approximation; for very large counties with many departments, the same declarations will appear across all departments in that county.

Aggregation: How Tract Metrics Become Department Metrics

For percentage metrics (e.g., % poverty, % uninsured), we aggregate by summing raw numerators and denominators across all assigned tracts, then dividing:

dept_pct_poverty = sum(tract_pov_below) / sum(tract_pov_universe)

This is equivalent to asking "what percentage of the people in this department's service area are below the poverty line?" We do not use weighted averages of percentages, which can produce misleading results when tract population sizes vary widely.

For continuous metrics (e.g., NRI scores), we use population-weighted averages: multiply each tract's value by its population, sum, then divide by total population.

County & State Pages

Added: March 2026

County and state risk profiles aggregate tract-level data directly from census tracts to county and state geographies. Every census tract belongs to exactly one county (identified by the first 5 digits of its GEOID), so county-level aggregation is clean and unambiguous.

What We Aggregate from Tracts

County and state metrics use the same aggregation methods as department pages:

  • NRI risk scores: Population-weighted average of tract-level RISK_SCORE. Each tract's score is multiplied by its population, summed, then divided by total county/state population.
  • Life-Safety Loss (EALPE): Direct sum of tract-level EALPE values. Expected annual losses are additive across geographies, so summing is appropriate.
  • Percentage metrics (poverty, disability, uninsured, etc.): Sum of numerators divided by sum of denominators across all tracts in the county/state.
  • Disaster declarations: Matched by county FIPS code from OpenFEMA, same as department pages.

NRI Rating on County Pages

The NRI rating displayed on county pages (Very High, Relatively High, Relatively Moderate, Relatively Low, Very Low) uses the same quintile thresholds as the FEMA NRI, applied to the population-weighted average risk score:

Score RangeRating
80+Very High
60-79Relatively High
40-59Relatively Moderate
20-39Relatively Low
Below 20Very Low

These thresholds match the FEMA NRI quintile boundaries (80/60/40/20) and are applied to our computed population-weighted score. FEMA publishes its own county-level NRI scores using a different methodology. Our approach aggregates from the same underlying tract data but weights by population, which means densely populated tracts have more influence on the county score than sparsely populated ones.

Economic Metrics (Approximation)

Median household income, median home value, and per capita income on county and state pages are population-weighted averages of tract-level medians. This is a standard approximation but is not the true county median, which would require individual-level data. The approximation is reasonable when tract populations are similar in size but may overweight high-population urban tracts in counties with a mix of urban and rural areas.

Department Counts and Multi-County Departments

Department and station counts on county pages are derived from NERIS Public boundary data. A department appears on a county page if any of its assigned census tracts fall within that county. Because many departments serve areas spanning multiple counties, the same department may appear on more than one county page.

When a department appears on a county page, its population, Life-Safety Loss, and other metrics reflect the department's full jurisdiction, not just the portion within that county. Splitting metrics by county would produce misleadingly small numbers and is not supported by the underlying data.

What County/State Pages Do NOT Include

  • Tract-level maps (these are only on department pages)
  • Peer matching (county/state peers are not computed)
  • NERIS incident data or response time analytics (these require a Response tier subscription)