Working with NFIRS Without Losing Your Mind
The National Fire Incident Reporting System uses a set of standardized codes to classify everything from structure fires to false alarms and hazardous material releases. If you are trying to file an incident report and you are stuck on which code applies, having a quick reference is the difference between spending forty-five minutes wrestling with the data entry screen and finishing before your supervisor notices you took a lunch break. I have filled out enough NFIRS reports over the years that I can do most of them in my sleep, but even now I keep a cheat sheet open in a second browser tab. The system is comprehensive, but it is also massive and not always intuitive about where certain edge cases land.Nfirs Codes Cheat Sheet
The NFIRS coding system is organized into modules. Each module covers a different aspect of an incident. The most commonly used ones are the origin and cause module, the equipment and property damage module, and the fire service function module. Understanding the module structure matters more than memorizing individual codes, because it tells you where to look when a situation does not seem to fit cleanly into a single category. Here is how the major code families break down in practice. Origin and cause codes live under Module 2. They cover where the fire started, what started it, and the type of first ignition. The cause classification codes include things like 10 through 19 for intentional fires, 20 through 29 for equipment malfunction, 30 through 39 for heat source materials, and so on. A common mistake people make is throwing a welding spark incident into the equipment malfunction bucket when it actually belongs under heat source materials. The National Fire Protection Association and FEMA crosswalk documents spell this out, but most firefighters learning the system for the first time end up guessing and then second-guessing every other choice they make for that same report.
Property exposure codes under Module 4 get used constantly. The NFIRS-5 property use categories run from one through twelve, covering residential, commercial, industrial, agricultural, and other. I once had a caller report a fire in what looked like a storage shed. My instinct was to code it as agricultural, but the structure was actually attached to a small auto repair shop behind it. Coding it wrong would have skewed the statistics for both property types. I called the station commander and we agreed on the commercial classification, but it took thirty extra minutes to resolve. The cheat sheet I keep now has a note next to mixed-use properties that says to default to the higher-occupancy use when attachment makes separation unclear. Equipment codes are Module 5, and they cover what firefighting resources were deployed. If you used an engine company, a ladder truck, a rescue unit, or an ambulance, each has its own equipment code. One thing that trips people up regularly is the distinction between a brush patrol unit and a wildland apparatus. The codes look similar on the surface, but they map to different response contexts. Using the wrong one will quietly corrupt your unit activation statistics, which your state probably feeds into federal grant calculations. Firefighter and civilian injury codes under Module 8 are deceptively simple. There are five injury severity levels from zero through four. Level zero means no injury. Level four is fatality. What nobody warns you about upfront is that a minor sprain that gets an ER observation still counts as an injury on line 1 of the module. You do not need a formal diagnosis. If they received treatment or were restricted from normal activity, you log it. I learned this after a firefighter twisted an ankle on wet deck ladder and we initially left it off the report because the medic cleared him at the scene. The state auditor caught it three months later during a random quality check, and we had to file an amendment. It felt ridiculous and took another hour of paperwork.
Hazardous material codes are scattered across modules. Releases go in Module 9. The material classification codes cover everything from flammable liquids to corrosive substances. A small spill of antifreeze from a vehicle radiator does not qualify as a hazardous material incident under NFIRS, but a full coolant dump from a school bus onto a storm drain does. The threshold is not just volume. It is whether a release notification to the EPA or state agency was triggered. My cheat sheet has a reminder about this distinction because it saves you from misclassifying a mundane cleanup as a HazMat incident, which is a bigger deal than most people realize.
Get the Full Details

Where to Get a Reference Guide
FEMA publishes the official NFIRS 5.0 manual and code lists freely on their website. The codes are not proprietary and you do not need a login to access them. The PDFs are large and somewhat unwieldy. Most people in the field build their own condensed reference or buy a printed laminated card that fits on a clipboard. I made my own using the FEMA publication and my department's standard operating procedures, and I reprint it annually because the codes get updated slightly every few years. State fire training websites sometimes offer their own state-specific cheat sheets. These can be useful if your state has adopted variations or additional local codes, but they are only worth using if your state actually deviates from the national standard. Some states do not. I have seen people carry around a state-specific sheet that turns out to be identical to the FEMA version except for a few formatting choices, and then they get confused when a code they memorized from the state sheet conflicts with the actual FEMA guidance. Always verify against the source document if there is any discrepancy.
Common Pitfalls and How to Avoid Them
The biggest issue with NFIRS coding is overclassification. Fire departments that take reporting seriously often have a habit of documenting something in more detail than the situation actually required. A kitchen fire from an unattended frying pan gets coded with eight different modifiers when two would have covered it. This is not just busywork. Extra codes create noise in the data. When your county or state pulls reports to justify funding or staffing, extra codes make it harder to read the signal from the clutter. Another frequent problem is miscoding exposure types. If a fire is in a single-family home and the adjacent garage catches smoke damage but no structural fire, you code the garage as exposure. If you code it as the primary structure instead, the property loss numbers for that incident jump significantly. I have seen this happen when two units from different districts responded to the same call. One unit handled the primary structure and the other handled the exposure. The report got split between them and one unit assumed the garage was part of the main structure because they did not cross-check with the other report. Always check whether another department has already filed a report for the same incident before finalizing your own. The state database can confirm overlaps within a day or two. A third issue is the treatment of partial fires. NFIRS is designed around complete incidents, but partial involvement is common. A roof fire that gets knocked down before it reaches the contents of the structure below. A fire in a detached carport that threatens an attached garage. The origin module allows you to code multiple areas of origin, but the property module is more rigid. If you are unsure whether a structure counts as fully involved or partially involved, code it based on what was structurally compromised, not what was damaged by smoke or heat. This is a judgment call, and different departments handle it differently, so check your local policy before developing a personal habit that might conflict with your jurisdiction's standard.
Limitations You Should Know About
Having a cheat sheet does not solve every problem. NFIRS is a reporting system, not a decision tool. It describes what happened but it does not help you determine whether an incident should be classified a certain way when the situation is genuinely ambiguous. There is no algorithm for that. You use your best judgment, document your reasoning, and accept that the code will be debated later by someone who was not at the scene. The system also does not handle multi-agency incidents gracefully. When fire, law enforcement, and EMS all respond to the same call, multiple reports may be generated and the coding can diverge between agencies. The fraud module helps catch duplicate reports, but it does not prevent inconsistent coding. I have seen the same incident coded as a medical emergency by EMS and as a fire investigation by the fire department because they were filing separate reports. Neither is wrong per se, but the data becomes messy when someone tries to merge them later. Finally, NFIRS does not capture every detail that matters operationally. It is built for statistical aggregation, not tactical analysis. If you need granular data about fire behavior, building construction specifics, or water supply metrics, NFIRS is the wrong tool. Use your department's internal forms for that. NFIRS is for the broader picture, and it is fine to acknowledge that the broader picture is blurry by design.

Practical Workflow
My routine is straightforward. I start with the basic incident information module and fill in the dates, times, and locations first because those are the hardest to remember accurately after the fact. Then I move to the cause and origin module while the details are still fresh. After that I do equipment and property damage. I leave injury and casualty information for last because those details usually take longer to confirm. I type the codes from my cheat sheet directly into the system rather than copying and pasting, because the act of looking up each code forces me to verify that it is still the right choice. This adds maybe five minutes to the process, but it prevents the kind of error that surfaces three months later during an audit. If you are new to this, practice on past incidents where you know the outcome. Pull closed reports from your department's archive and try to recode them from memory using only the cheat sheet. Compare your codes to the original entries. The gaps will show you exactly which categories you are uncertain about, and you can focus your study there instead of relearning everything from scratch.