Department Coverage
Last updated: March 2026
We generate pages for all departments in the NERIS Public dataset that have a valid boundary polygon, about 24,500 departments across all 50 states, the District of Columbia, and Puerto Rico. Departments in NERIS without a recorded boundary (several thousand) are excluded because every step (tract assignment, population, maps, and infrastructure counts) needs a department boundary.
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 main unit of ACS data release, the source of every demographic metric.
Tracts balance geographic precision and data reliability better than ZIP codes or counties. ACS 5-year estimates at the tract level have acceptable margins of error for the metrics we report. Counties are too coarse to reveal within-jurisdiction variation, while finer geographies carry much higher sampling uncertainty.
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 from digitizing, such as two adjacent jurisdictions that share a road-centerline boundary and technically "intersect" tracts across the road. Only real overlap 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 (2020 Census Blocks)
Most department boundaries split some of the census tracts they touch. Census blocks, the smallest areas the 2020 census counts, settle how a split tract's residents divide. Each populated block belongs to a department when the block's center point falls inside the department's boundary, and a tract contributes the share of its 2020 residents living in those blocks.
- Population and demographic counts (age groups, vulnerability measures and their denominators) are scaled by the tract's share of residents inside the boundary.
- Housing counts (housing age, heating fuel, tenure, structure type) are scaled by the tract's share of housing units inside the boundary.
The shares come from where people were counted in 2020 and are applied to the ACS 2020-2024 tract estimates. Risk scores and economic indicators are population-weighted averages that use the apportioned population as weights.
Example: A tract of 5,000 residents lies 60% inside a department's boundary by area, but only 1,200 of its 2020 residents live in the blocks inside; the rest live across a river in the next town. The tract contributes 24% of its population to the department, not 60%.
Checked against 2,465 departments nationwide whose boundaries match city limits, block apportionment put the median department within 0.7% of the city's own ACS population, with 87% within 5%. The earlier method (area shares, with sparse rural tracts counted in full) was off by a median of 14%. Rural departments gained the most: across 2,260 whose boundaries match a township, the median error fell from 78% to 2.9%, because counting a sparse tract in full routinely credited a department with residents of neighboring districts. Connecticut departments still use the earlier method because the state's tract codes changed after 2020.
Residents Estimate
The headline residents figure on each profile carries the block-weighted population forward from the ACS survey period (centered on 2022) to July 2025. Blocks inside an incorporated city take that city's growth from the Census Bureau's population estimates; blocks outside any city take the growth of the rest of their county. Percentages, per-1,000 rates, and peer comparisons use the survey-period figure so they match the data they come from.
Department boundaries can overlap, as when a city department and a county department cover the same neighborhood, so a department's population reflects the residents inside its boundary 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:
0-20
20-40
40-60
60-80
80-100
A red earthquake tract is in the top 20% of earthquake risk nationally, wherever the department is.
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 rather than 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
| Hazard | NRI Code |
|---|---|
| Avalanche | AVLN |
| Coastal Flooding | CFLD |
| Cold Wave | CWAV |
| Drought | DRGT |
| Earthquake | ERQK |
| Hail | HAIL |
| Heat Wave | HWAV |
| Hurricane | HRCN |
| Ice Storm | ISTM |
| Landslide | LNDS |
| Lightning | LTNG |
| Riverine Flooding | RFLD |
| Strong Wind | SWND |
| Tornado | TRND |
| Tsunami | TSUN |
| Volcanic Activity | VLCN |
| Wildfire | WFIR |
| Winter Weather | WNTW |
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. The national scale answers "how do we compare nationally?" This scale answers "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:
Lowest need
Below median
Median
Above median
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 see which tracts need attention first.
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 fall in the 60th percentile by rank) even though zero is 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 colors for metrics that don't apply to a jurisdiction.
Department Profile Sections
The department profile groups factors into three operational buckets:
- Fire Risk Factors: factors with a documented elevation in fire incidence or fire-fatality rates (housing age, vacancy, mobile homes).
- EMS Risk Factors: factors with documented elevation in EMS demand or care-access barriers (age 65+, disability, no vehicle, uninsured, poverty, below 150% of poverty, group quarters, limited English).
- CRR Outreach Profile: factors that shape your outreach approach (heating fuels, renter share, overcrowding, no internet access) without necessarily indicating elevated fire or EMS risk. These factors call for different prevention messaging, communication channels, and inspection cadence rather than higher run volume.
Each descriptor row on the department profile links to its primary source. Citations come from federal agencies (Census Bureau, USFA/FEMA, CDC, HUD), HHS Healthy People 2030, NFPA fire-statistical reports, the CDC/ATSDR Social Vulnerability Index, and peer-reviewed PMC/PubMed studies. Hover any [Source] tag for the publication title; click to open the source in a new tab.
Map Layers Included
Maps are provided for the Fire Risk and EMS Risk sections only. The CRR Outreach Profile uses table comparisons rather than choropleths because outreach factors rarely point to specific tracts the way risk factors do.
| Map | Layer | Source |
|---|---|---|
| Fire Risk | % housing built before 1980 | ACS |
| % housing built before 1960 | ACS | |
| % vacant housing units | ACS | |
| % mobile homes | ACS | |
| EMS Risk | % population age 65+ | ACS |
| % with a disability | ACS | |
| % households with no vehicle | ACS | |
| % below the federal poverty line | ACS | |
| % below 150% of the federal poverty line | ACS | |
| % uninsured | ACS | |
| % in group quarters | ACS | |
| % limited-English households | ACS |
Peer Matching
Each department is matched to up to 15 peer departments from the full NERIS Public set. The goal is to find departments with similar community conditions, not just similar size, so comparisons mean something.
Step 1: Hard Filters
Candidates must pass all four hard filters; departments that differ on these aren't comparable:
| Filter | How It's Applied |
|---|---|
| Department type | Must be the same: career, combination, or volunteer (from NERIS). NERIS does not publish a type for every department; where it is missing, this filter is skipped and the remaining three still apply, so those peer groups can mix staffing types. |
| Community class | Must be the same: Urban (≥1,000 people/sq mi), Suburban (500-1,000), or Rural (<500). Based on NFPA 1750 demand-zone thresholds (legacy NFPA 1720). |
| Census division | Must be in the same U.S. Census division (one of 9, 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. |
| Population | Must 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:
| Dimension | Weight | How It's Measured |
|---|---|---|
| Population served | 25% | Log-scaled total population (log scale compresses differences at large populations) |
| Population density | 20% | Log-scaled people per square mile of service area |
| Hazard risk profile | 15% | Population-weighted NRI RISK_SCORE |
| Elderly population | 10% | % of population age 65+ |
| Poverty rate | 10% | % of population below the federal poverty line |
| Older housing stock | 10% | % 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.
Reported Incident Activity (NERIS Public)
Each department page carries headline incident figures from the NERIS Public Incident Basics feed: incident reports published by fire departments through NERIS, the national incident reporting system that replaced NFIRS in 2025. We count incidents over the trailing 12 complete months at each page refresh, once per incident by its primary incident type. The call composition follows the top level of the NERIS type hierarchy (medical, fire, hazardous situation, public service, rescue), with the non-emergency subtree split into false alarm, good intent, and cancelled to stay comparable with legacy NFIRS categories; the remainder renders as Other. A month-by-month bar strip shows reporting continuity. An annualized incidents-per-1,000-residents figure is shown only when the department has reports on file for at least 6 of the 12 window months; a thinner window would annualize noise. Where at least 10 structure fires record smoke alarm status, we also show the share with an alarm present, always alongside the recorded denominator.
These counts measure what a department has published, not necessarily everything it ran. NERIS adoption is under way and departments cut over on their own schedules. A low count usually means partial reporting rather than low demand, and counts are not comparable across departments while adoption ramps. Mutual aid given outside the service area is included. The public feed carries no response times, unit workload, or outcomes, and its counts are department-wide: they are not joined to the tract-level maps. Departments with no reports on the public feed show an adoption note instead of figures; an empty section says nothing about call volume.
Aggregating Tract Metrics to Departments
For percentage metrics (e.g., % poverty, % uninsured), we aggregate by summing raw numerators and denominators across all assigned tracts, then dividing:
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 aggregation is exact.
Metrics Aggregated 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 Range | Rating |
|---|---|
| 80+ | Very High |
| 60-79 | Relatively High |
| 40-59 | Relatively Moderate |
| 20-39 | Relatively Low |
| Below 20 | Very 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 rather than only the portion within that county. Splitting metrics by county would produce misleadingly small numbers and is not supported by the underlying data.
Not Included on County and State Pages
- Tract-level maps (these are only on department pages)
- Peer matching (county/state peers are not computed)
- NERIS incident data or response time analytics (department pages carry headline incident counts from the NERIS public feed; response time analytics require a Response Analytics subscription)
Priority Tracts (Response Analytics)
The Response Analytics dashboard ranks every census tract in a department by a priority index that combines response time, community risk, and call demand, then flags the top of that ranking as priority tracts. Fire and EMS are ranked separately because they call for different prevention work and have different demand patterns.
Domain Definitions
Each tract gets a priority index from 0 to 100 in each domain: the mean of its within-district percentile for median monthly p90 response time over the trailing window (up to the six most recent complete months), its risk composite at the chosen reference frame, and its within-district percentile of calls per 1,000 residents per year. A tract with no timed calls in the window is not ranked. The top of the ranking is flagged: by default the top 10, or the top 20% of the department’s tracts, whichever is fewer, so a small department is not flagging nearly every tract. A department can instead fix the cut at 10, 25, or 50, flag every ranked tract, or rank the cut by incident volume (calls over the trailing window, ties broken by the index) to flag its busiest tracts. The same rule decides a fire priority tract and an EMS priority tract, with the EMS factor list and EMS target.
One filter always applies before the ranking, and a department can turn on optional filters to require one leg of the index on its own. The optional filters are off by default:
- Filter C · Volume floor (always applied): the tract has at least
gap_min_calls_yrannualized fire calls (default 3), prorated by how many months of data exist. This is a noise filter so a single 12-minute outlier doesn’t paint a tract red. - Filter A · Response goal (optional): the tract’s median monthly fire-call
p90over the trailing window (up to the six most recent complete months) exceeds the department’s configured fire response target. The starting target is 6 min 24 sec for career departments (NFPA 1750’s career provisions, legacy NFPA 1710: 1:04 alarm handling per NFPA 1225 + 1:20 turnout + 4:00 travel) and 9 min (the strictest NFPA 1750 volunteer/combination zone target) for volunteer and combination departments; chiefs set their own targets per their demand-zone analysis. Using the median of monthly p90s answers “is this tract consistently slow?”, so one bad month does not flag a tract. - Filter B · Risk (optional): the tract’s fire-risk composite percentile is at or above the configured threshold: top 10% (90), top 20% (80), or top 40% (60) of tracts in the chosen reference frame.
- Filter D · Demand (optional): the tract ranks in the top 10%, 20%, or 40% of the department’s own tracts by calls per 1,000 residents or by total calls.
Tracts missing the data an active filter needs are excluded rather than silently kept. With every optional filter off, the flagged set is exactly the top of the priority table.
Risk Composite Construction
Each tract’s domain composite is computed in two steps. First, every fire (or EMS) factor is converted to a percentile rank against either all U.S. tracts (about 85,000), or all tracts in the same state, or just this department’s own coverage area. Second, those per-factor percentile ranks are averaged and re-ranked, so the final composite is uniform 0–100. A tract with composite = 80 is in the top 20% of its reference frame for that domain.
The factors that drive each composite are:
- Fire risk: share age 75+, share under 5, poverty rate, disability rate, share of mobile homes, share of housing built before 1980, vacancy rate
- EMS risk: share age 75+, disability rate, share of households without a vehicle, uninsured rate, poverty rate, share below 150% of the federal poverty line
Each of these factors has independent peer-reviewed or federal-agency support as a contributor to fire or EMS demand; the mean-of-percentiles construction combines them into a single, comparable signal.
Reference Frame
The gap_ranking_scope setting picks one of three reference frames:
- National (default): percentile rank against all 85,000+ U.S. tracts. Useful for benchmarking against the country.
- State: percentile rank against tracts in the same state. Useful for departments that want to compare against a more uniform peer set.
- District: percentile rank against only this department’s own tracts. Computed at the dashboard. Useful for low-risk departments that have few or no nationally-high tracts but still want to focus prevention work on the highest-risk tracts in their own coverage area.
For very small districts (< 5 tracts) the “top 20%” threshold gets noisy. With two tracts, percentile ranking returns 0 and 100 at the extremes, so the threshold catches one tract regardless of where the actual values fall. Above about five tracts the ranking is reliable.
Empty Results
An empty set is a valid answer. There are no hidden fallback modes: if no tract passes the active filters, the dashboard says so, restates exactly which filters are in effect, and offers one-click suggestions that loosen a single filter at a time (widen the risk threshold, or turn off the response-goal gate). A low-risk department whose slow tracts don’t rank in the national top 20% sees an empty map and the reason why, not a silently substituted list. Departments that want a focused list anyway can switch the reference frame to district or relax the threshold; the department makes that choice, and the dashboard always shows the resulting definition.
Same Definition in the Dashboard and Digest
The dashboard and the Weekly Intelligence Brief PDF compute priority tracts from the same saved settings with the same filters over the same trailing window, and both print the active criteria alongside the numbers. The count in Monday’s email is the count on the dashboard.
Headline Metric: Calls in Priority Tracts
The dashboard’s headline KPI is the share of fire and EMS calls that occur in priority tracts rather than the number of tracts. A department might have 12 priority tracts, but if 38% of its structure fires happen in them, that share says more in a grant narrative, board report, or CRR plan than the count does.
Limits of This Definition
- Not a substitute for FEMA NRI hazard exposure. Hazard exposure (flood, wildfire, earthquake, etc.) is reported separately on the Risk Profile section. Priority tracts measure response performance against community vulnerability, not against natural-hazard probability.
- Not a regulatory measure. NFPA 1750 compliance (which consolidates the former NFPA 1710 and 1720) is reported separately. The classification borrows the response-time targets from that standard but combines them with vulnerability factors that the standard does not address.
- Not static. The domain composite, p90 by domain, and call volume are recomputed nightly from raw NERIS incident data; the classification is also recomputed live in the dashboard whenever a chief saves new priority tract settings.
Concurrent Calls
Concurrent call analysis answers three questions for the department and for each station: the share of calls that arrive while another is still running, the number of incidents open at once, and the amount of clock time they overlap. Every figure comes from the same timeline of incident intervals.
Incident Intervals
An incident is open from the moment its first unit is dispatched until its last unit clears. For a station, the interval covers only that station's units, so the station figures describe stacking on that station's own resources. Unit clear times more than 12 hours after dispatch, or earlier than dispatch, are treated as recording errors and ignored; an incident with no usable clear time is given a 30-minute interval.
Concurrent Call Rate
A call is concurrent when it began while another incident was still open. Of two overlapping calls only the second counts, because only the second found resources already committed. Counting both would roughly double the rate. Back-to-back calls, where one begins at the moment another ends, are not concurrent.
Depth and Overlap Time
Each incident is also counted by the number of others already open when it began (none, one, two, three or more), and the timeline is summed into clock hours with exactly one, two, three, and four or more incidents open. Overlap time is the hours with two or more open. It is clock time, not incident time: three incidents open for one hour is one overlap hour, counted at three open. Overlap hours are also totaled by local hour of day to show the part of the day a second unit is most often needed.
Incidents Set Aside
Standby and move-up assignments (NERIS types PUBSERV||OTHER||STANDBY and PUBSERV||OTHER||MOVE_UP) are left out of every concurrency measure. A standby at a special event is a planned posting that runs for hours with no emergency in progress; left in, it would overlap every real call in that span and report stacking that never happened. The dashboard states the number set aside each month. Cancelled calls, false alarms, and mutual aid given stay in, because units were committed and unavailable for that time.
Unit Availability
Station-level overlap does not by itself mean no unit was available; a station with several companies can run two calls at once. The unit table complements it with the share of a unit's home-station calls that began while that unit was committed on a different incident, and the CRA/SOC document adds zero-availability events, where every unit known to a station was committed when another call arrived.
Unit Hour Utilization (UHU)
UHU is committed time as a share of calendar time per unit, assuming round-the-clock staffing: a unit committed 175 hours in a 730-hour month runs a UHU of 24%. NERIS carries no staffing schedule, so the denominator is every hour in the period; a peak-hour or daytime-only unit therefore reads lower than its staffed-hour utilization, and a response with no clear timestamp drops out of the numerator while its hours stay in the denominator. Both push the figure down, never up. The Response dashboard, the quarterly report, and the CRA/SOC document report it as a figure and a ranking, without a color band or a rating.
No standard sets a target
No NFPA or CFAI standard sets a utilization target for fire apparatus. The working ranges that circulate in EMS system design literature and consulting practice (Jack Stout's high-performance EMS model; the caution points quoted by Fitch & Associates and the American Ambulance Association) describe a different measure: transports, or responses, per staffed unit hour. They are not standards, their definitions differ from one another, and they do not apply to the committed-time share reported here. Grading an engine company, or a medic unit, against them would attach a verdict to a number that no standard supports. We used to publish reference bands of our own for suppression units; we have withdrawn them for the same reason.
Reading the figure
UHU is a workload measure, not a readiness measure. A suppression unit is staffed to be available, and a low figure is the expected state of a front-line company; it is not evidence of surplus capacity. Training, inspections, hydrant and hose work, physical fitness, and public education all draw on the same clock. The department reads these figures against its own staffing model, shift schedule, and non-response workload, and the trend for a given unit over time says more than any one month's value.
Reserve and cross-staffed apparatus
A unit that responds less than once a week over the period (a reserve engine, a cross-staffed truck, a utility) is listed after the front-line units and flagged as reserve or cross-staffed, and it is left out of any average, because its hours belong to the crew that staffs it. The flag is a fact about the roster, not a judgment.
Measurement Rules for NERIS Response Data
The Response dashboard, the weekly digest, the board report, and the CRA/SOC document all read the same unit-response records from a department’s NERIS integration and, on CRA/SOC, from any CAD or NFIRS history the department has uploaded (see Uploaded CAD and NFIRS History below). These are the rules applied before any figure is computed, stated here so a chief reconciling against CAD knows why two numbers differ.
Timestamps and phases
- Total response runs from the time the call was answered (the NERIS call-answered timestamp; call create when the answered time is missing or later than call create) to the first-arriving unit’s on-scene time. Call processing starts at the same point, so call processing, turnout and travel add up to total response. Many CAD systems copy call create into call answered, and for those departments the two starts are the same. Goal attainment is scored per incident on that first arrival against the department’s saved goal for the call type.
- Call processing, turnout, and travel are 90th percentiles over every unit response, not only the first arrival. Call processing is the dispatch center’s interval and is never presented as a department measure.
- Data-error cap. Any phase longer than 120 minutes, or a committed time longer than 12 hours, is treated as a timestamp error and dropped from that phase’s percentile. Negative intervals (a unit en route before it was notified) are dropped the same way. This trims the slow tail, so a department with many bad stamps reads slightly faster than it is; the Data Quality page reports how many responses carry usable stamps.
- Sample floors. A phase percentile needs 10 timed responses for that phase in the period; below that the cell shows a dash and the count.
Counting incidents
- Total calls is every incident NERIS sent for the month, including calls canceled before or after dispatch and mutual aid given or received. Incidents whose type is not recognized count under Other. A CAD report that excludes canceled calls or aid will read lower.
- Reporting months are calendar months on the UTC clock of the call-create timestamp. A late-evening call on the last day of a month can land in the following month; the effect is a handful of calls at each month boundary.
- Tract assignment uses the census tract NERIS reports, then a point-in-polygon match on the incident location. Incidents with neither stay in the department totals but out of every tract figure, and the Data Quality page reports the share.
Emergent calls
- A control in the dashboard header switches the department’s response times from every call to emergent calls only: total response and its phases, goal attainment, and their trends. The same measurement rules apply to both.
- An incident is emergent when any unit on its initial assignment recorded a lights-and-sirens response mode in NERIS, and non-emergent when only non-emergent responses were recorded. The initial assignment is the units notified within 60 seconds of the first, or the window the department adopts for its CFAI chart, which reads the response mode the same way. When no unit has a dispatch time, every unit’s recorded mode is read.
- On an emergent call, a unit that recorded its own response as non-emergent, such as a second ambulance sent without lights and sirens, is left out of the emergent times, and the dashboard says how many were.
- When no unit on the initial assignment recorded a mode, the call type decides: every type counts as emergent except service calls, lift assists, water leaks, debris, damage assessments, and damaged hydrants. Many departments do not send a response mode yet, so the dashboard states how many emergent incidents each method decided. Recording the mode in CAD and sending it to NERIS makes the split exact.
- Standbys and move-ups are planned postings, and they are set aside from the emergent view whatever mode was recorded.
- Station figures, top levers, incident volume, and priority tracts always count every call.
Concurrency and committed time
- An incident’s committed window runs from the first unit notified to the last unit clear. When no unit reported a clear time, a 30-minute window is assumed; departments with sparse clear timestamps therefore read higher on concurrent-call rate and peak simultaneous incidents until those are reported.
- Unit hour utilization uses a calendar-hour denominator (see above).
Local time, shifts, and platoons
- NERIS timestamps are UTC. Day/night and hour-of-day views convert to the department’s IANA timezone, which the nightly update sets from incident locations (an admin can override it under Settings). Before that is on file, the dashboard says which clock it is using.
- NERIS does not record the platoon on duty. Platoon turnout is derived from the shift pattern, an A platoon anchor date, and the shift change hour an admin saves under Settings; until a department saves its schedule no platoon figure is computed or shown.
- Station attribution follows the NERIS station on the unit response, then the department’s override map, then its NERIS unit registry. When none of those names a station, the digits of the unit number are used as a guess and the station is marked “inferred” wherever it appears.
CFAI Performance Data Charts (CRA/SOC)
The CRA/SOC document and the CRA/SOC dashboard print the performance data charts the Commission on Fire Accreditation International (CFAI) asks for. They follow the CFAI Accreditation Model Information Technology Specifications, 11th Edition (September 2025), pages 12 to 22. The NFPA figures elsewhere on the dashboard use the Measurement Rules above, so the same incident can show a different time in each place. Every choice the specifications leave to the agency is printed with the chart, along with whether the department has adopted it.
One chart per risk category and classification
Each chart covers one risk category (low, moderate, high or maximum: the level of risk of the incident itself) within one of the eight risk classifications the specifications name: fire suppression, wildland fire, EMS, technical rescue, hazardous materials, aviation rescue and firefighting, marine and shipboard rescue and firefighting, and other. An incident is classified by the type it was dispatched as (page 15). That is the CAD incident code or protocol determinant through the department’s code map when one exists, otherwise the type NERIS marks as primary. The risk category comes from that type and the property use NERIS records at the location, under the department’s adopted methodology where it has one.
The six measures
| Row | Measured from | Measured to |
|---|---|---|
| (B) Alarm handling | The start the department adopts: by default the call being answered | The first unit notified, which stands in for the end of the dispatch announcement |
| (C) Turnout, effective response force (ERF) | The first ERF unit en route | The last ERF unit en route |
| (D) Travel, distribution | The en route time of the first arriving unit able to begin the critical tasks | That unit’s arrival |
| (E) Travel, ERF | The first ERF unit en route | The arrival that completes the ERF |
| (F) Total response, distribution | The alarm handling start | The first capable unit’s arrival |
| (G) Total response, ERF | The alarm handling start | The arrival that completes the ERF |
A chart value starts at the answered time only when at least 90% of its incidents carry one, and at call create otherwise; a letter beside the value says which. If the capable unit in row (D) was not in the initial assignment, its travel starts at the en route time of the initially assigned unit (page 21, Example D). Rows (F) and (G) show the number of incidents behind each value, however small.
Capable units and the effective response force
Units are judged by their NERIS unit type. Until a department adopts its own rules, a platform proposal applies and is labeled as not adopted:
- Fire suppression: engines and quints, the apparatus that carry a pump. An aerial without a pump or a chief’s vehicle does not count (page 16).
- EMS: any apparatus carrying medical equipment: ambulances, non-transport medical units, engines, aerials and rescue units.
- Wildland fire: brush and structural engines, fire ATVs, tenders, helicopters, air tankers, dozers and crews.
- Technical rescue: rescue units, aerials and engines; at high and maximum risk, rescue units, aerials and quints.
- Hazardous materials: hazardous materials and decontamination units and engines; at high and maximum risk, hazardous materials units only.
- Aviation and marine: aircraft rescue units, structural engines and foam units; boats and water rescue units.
If fewer than 80% of unit responses carry a NERIS type, the first arriving unit stands in and the chart says so.
The ERF is complete at the arrival where both the personnel and the apparatus the department’s critical task analysis requires are on scene, counted in responders and in units (pages 17 and 18). Crew size comes from the staffing reported on the response, otherwise the unit’s registered staffing in NERIS, which is labeled. An unknown crew is never estimated: those incidents read “staffing not recorded”. ERF rows appear only for the classes the department’s adopted critical task analysis covers.
Upgraded incidents
An incident that grows into a higher-risk type after the initial assignment is charted again as a secondary, and then a tertiary, incident type (pages 19, 21 and 22). It counts when its type changed (a further NERIS incident type, a final type above the type dispatched, or more than one alarm) and units were sent after the initial assignment, meaning more than a minute after the first unit. Units sent within two minutes of each other form one wave. Only the added units are charted, and total response runs from the upgrade’s first dispatch. An upgrade the force already on scene could handle carries no times. An alarm count is charted only when the department’s critical task analysis defines a second-alarm force.
Incidents and values included
The charts cover emergency responses, meaning lights and sirens, judged on the initial assignment (pages 6 and 12). Responses with no recorded mode are kept and counted. Aid given outside the department’s area is included unless the department chooses otherwise.
Outliers are excluded only under a policy the department has adopted (page 12). Until it adopts one, only impossible values such as a negative interval are removed; intervals over 120 minutes stay in and are counted under each chart. A department can adopt the 120-minute rule the NFPA figures use, or a policy of its own.
Columns, density, and labels
The CRA/SOC document reports three, four or five complete calendar years in the department’s local time (page 21): three for initial accreditation, four for the first annual compliance report, five after that. The first column is the 90th percentile of every incident in those years taken together. The current year to date has its own column outside that set. The dashboard shows the latest complete month.
Travel and total response rows are split into urban and rural. An incident is urban when its location falls in a 2020 Census urban area, meaning its 2020 census block carries the urban flag (an area of at least 2,000 housing units or 5,000 people under the Census Bureau’s 2020 criteria), and rural otherwise. An incident with no coordinates takes its census tract instead, by the rule the specifications state: urban is a tract with at least 2,500 people, at least 1,500 of them outside institutional group quarters, and rural is under 2,500. Those values carry the letter i. The block flag comes first because a tract’s population says nothing of its land area: a large, thinly settled tract can pass the tract rule. The specifications leave the density split optional (page 12); the CRA/SOC document states this definition with its charts, and the dashboard chart carries it in its note. Both tests are separate from the community class used for peer matching.
Every value carries letters naming the data behind it: the start used, a first-arriving stand-in, registered staffing, times recorded to the minute, or the tract rule standing in for the block flag. A value the data cannot support names its reason, such as “No rural incidents” or “Not available: no capable unit arrived”, and is never shown as zero.
Three passages of the specifications that disagree
- Turnout. Page 12 lists first-unit turnout among the six measures, while the chart on page 20 and its note C use ERF turnout. The charts follow page 20.
- The first unit at a fire. Page 12 gives a ladder or truck as an example of a first-due unit at a fire, while page 16 rules out a truck with no pump or water. The charts follow page 16.
- Row (F). The note to row (F) describes the arrival of the first vehicle carrying responders, while the distribution definition on page 16 describes the first unit able to begin the critical tasks. The charts use the capable unit for rows (D) and (F) alike and print the note’s wording beside the chart.
Data Quality Assessment
The Data Quality page grades how complete and analyzable a department’s NERIS incident records are. It is free for every NERIS-enrolled department, including after a trial or subscription ends. Counts from up to the six most recent complete months are added together before any share is computed.
| Dimension | Weight | Share measured |
|---|---|---|
| Response-time ready | 30% | Incidents with a call create time, a unit, and a usable time to the first unit on scene |
| Unit timestamps | 25% | The average share of unit responses with dispatch, en route, on-scene and clear times |
| Location | 15% | The average of the share of incidents with coordinates and the share matched to a census tract |
| Incident typing | 15% | Incidents with a recognized NERIS type |
| Timeline validity | 15% | Complete unit timelines whose times run in order |
A dimension with nothing to measure is left out and the other weights are scaled up to match. A score of 90 and above is an A, 80 to 89 a B, 70 to 79 a C, 60 to 69 a D, and below 60 an F.
Some fields are reported without changing the grade, so grades stay comparable over time: station assignment, use of the NERIS Incident Analysis module, and four fields the CFAI charts depend on. Those four are the call-answered time, the CAD incident code or protocol determinant, the NERIS unit type, and the response mode.
Each source of records is graded on its own counts. CAD history a CRA/SOC department uploads is graded before it is combined with NERIS, so an upload never changes the NERIS grade. The page shows NERIS unless the department picks another source, and the grade in the sidebar is always the NERIS grade.
Uploaded CAD and NFIRS History (CRA/SOC)
CFAI charts cover three to five years, and most departments have fewer years in NERIS than that. On CRA/SOC, a department administrator can upload exports from the dispatch center’s CAD system, or the NFIRS 5.0 reports the department filed, covering the years before NERIS. Each file is checked before it counts.
Accepted files
- CSV or XLSX, one row per unit response, up to 250 MB per file. Larger histories go up as several files, for example one per year.
- Required columns: the incident number, the call-created time, the unit, and the unit’s dispatch and on-scene times. The call-answered and call-arrival times, en route and clear times, incident codes, protocol determinants, priority, staffing, unit type and location are used when present.
- Free-text columns such as narratives, comments, caller names and phone numbers are never imported, even when the file has them.
- An NFIRS 5.0 incident file, the transfer file a records system sends to the state. Its layout is fixed, so there are no columns to map. The Basic, Apparatus, Structure Fire and EMS modules are used; remarks, personnel names, casualty and people modules and the street address are never imported.
- The administrator names the timezone the times were written in. Times are stored in UTC. In the hour that repeats when clocks fall back, each incident’s times are read in the order that keeps them running forward; a time in the hour skipped when clocks spring forward is flagged and left out, never shifted.
Measured the same way as NERIS
Each uploaded incident is rebuilt in the NERIS format and measured by the same code as NERIS incidents: the same intervals, the same call-answered start, the same 120-minute rule for the NFPA figures, and the same station and unit-type rules. Incident codes are matched to NERIS incident types through the department’s code map.
NFIRS 5.0 files
Each NFIRS code is translated into the NERIS vocabulary: incident types, property uses and apparatus types, checked code by code against the NFIRS 5.0 Complete Reference Guide and the Oregon State Fire Marshal’s NFIRS to NERIS Coding Crosswalk. Where an NFIRS code could become several NERIS types, the incident takes the level they share (a medical call with no complaint named, for example) unless the Structure Fire module’s fire spread or the EMS module’s provider impression names the subtype. A department whose risk classes were built on the legacy property use codes can restate them in its own risk methodology, as the CFAI IT specification asks.
Exposure reports describe a response already measured on the incident’s first report, so they are counted in the check and not imported. An incident filed without the Apparatus module counts as an incident and adds no response times. An apparatus with no personnel listed has an unknown crew size, never zero. Records systems often write NFIRS times with the seconds set to zero; a file in which no time carries seconds is treated as recorded to the minute. NFIRS has no coordinates; an incident is placed by its census tract code when the code matches one of the department’s tracts. NFIRS records do not include:
- separate call arrival, answer and create times: there is one alarm time
- unit en route times, so no turnout or travel time
- seconds: most times are recorded to the minute
- priority or response mode
- the dispatched type or determinant code: the chart uses the final incident type, labeled
- secondary or tertiary types: only the alarm count signals an upgrade
- medical subtypes, unless the file includes the EMS module
For the years an NFIRS file builds, the CFAI charts start at the alarm time, labeled, and the turnout and travel rows say “Not available,” never zero.
Combining an upload with NERIS
| Rule | Applied |
|---|---|
| Matching | Incidents match on the CAD incident number, with call-created times within 30 minutes of each other. NFIRS reports often carry the records system’s own number, so an NFIRS report with no number match pairs with the incident created within two minutes of its alarm time that shares at least one unit. |
| Which incidents exist | From the department’s first full month of NERIS data on, NERIS decides which incidents exist. Before that month, an uploaded CAD export does, or an NFIRS file where no CAD export covers the month. |
| Field by field | NERIS is the record for everything it carries. A CAD upload adds the call-answered and call-arrival times, which the CFAI charts start from; the NFPA figures in a NERIS month do not change. In a month a CAD export builds, an NFIRS file adds the final incident type, the property use, the alarm count and crew sizes. |
| Unit responses | An incident’s unit responses always come from one source. |
| Counted once | An incident in both sources is one incident and keeps its NERIS identity. |
| Uploading again | A newer file of the same history replaces the older copy of each incident. |
Checks before an upload counts
The administrator reviews a report before adding the file to the department’s history. It lists values that could not be used, intervals that run backwards or longer than 120 minutes, the months covered, unit types and incident codes not yet mapped, and a data quality grade for the file. Four findings stop the file from being added:
- a required column that is not mapped, or that cannot be used on more than 5% of rows
- no incidents left once the file is read
- fewer than 80% of the file’s incidents matching NERIS in a month NERIS already covers
- call-created times that sit a whole number of hours from NERIS on most matched incidents, which means the timezone was declared wrong or the export wrote local times as UTC
An NFIRS file has no columns to map, so in place of the first finding it is stopped by an alarm time that cannot be used on more than 5% of reports, or by reports from more than one fire department when the administrator has not chosen the department’s own.
The CRA/SOC document counts each year’s incidents by source, NERIS or upload, in the table beside its charts. Removing an upload takes it out of every month it touched.