Technical writing
FBI UCR: The Federal Crime Statistics Behind Every Public Safety Analysis
Since 1929, the FBI's Uniform Crime Reporting program has collected crime statistics from thousands of local, county, state, tribal, and federal law enforcement agencies across the United States. The program now covers approximately 18,000 agencies serving roughly 95 percent of the U.S. population, publishing the most widely cited national crime statistics in existence. Understanding UCR data — its structure, its coverage gaps, and its methodological limitations — is prerequisite knowledge for any serious public safety analysis.
This article covers the two parallel UCR reporting systems, the NIBRS transition that created historic gaps in the 2021 national crime count, the eight Part I Index Crimes tracked since 1929, the structure of NIBRS incident-level data, the 2020–2021 murder surge and its contested causes, hate crime statistics, the supplementary datasets, the dark figure of crime and its relationship to the National Crime Victimization Survey, and how to access state-level violent crime rates through the FBI's Crime Data Explorer API.
The UCR program and its two reporting systems
The Uniform Crime Reporting program was established in 1929 under a joint agreement between the International Association of Chiefs of Police and the FBI. Participation has always been voluntary: no federal law requires local or state agencies to submit crime data to the FBI. Despite that, the program grew steadily throughout the twentieth century as agencies recognized the value of comparable national statistics for resource allocation, grant applications, and public accountability. By the 2010s, the program covered the vast majority of the U.S. population.
For most of the program's history, agencies reported under the Summary Reporting System (SRS): a monthly count of offenses in predefined categories, tallied at the agency level and submitted to the FBI. SRS is aggregate data — it tells you how many robberies occurred in a jurisdiction during a month but nothing about the individual incidents, victims, offenders, or circumstances. The Part I offense counts (the eight Index Crimes) and the Part II offense counts (a broader but less consistently tracked list of lesser offenses) are the SRS output that most news articles and policy analyses cite. The FBI's annual Crime in the United States report, published for decades, was built entirely from SRS data.
The National Incident-Based Reporting System (NIBRS)was developed beginning in the late 1980s as a fundamentally different architecture. Instead of monthly aggregate counts, NIBRS captures a structured record for every individual criminal incident known to police — linking offense data, offender data, victim data, property data, and arrestee data into a single incident file. NIBRS enables analyses that SRS cannot support: victim–offender relationship breakdowns, weapon specificity, time-of-day patterns, multi-offense incident analysis, and clearance rate computation at the incident level. The Crime Data Explorer at cde.fbi.gov exposes both summary SRS data and incident-level NIBRS data through a public interface and API.
The NIBRS transition and the 2021 coverage catastrophe
In 2016, the FBI announced that it would retire the SRS and require all agencies to report exclusively under NIBRS by January 1, 2021. The mandate was intended to complete a decades-long migration that had proceeded incrementally but incompletely: by 2020, large portions of the largest cities in the country still reported only under SRS, including New York City, Los Angeles, and Chicago. Those three cities collectively represent approximately 40 million people.
When the 2021 deadline arrived, New York City, Los Angeles, Chicago, and dozens of other large agencies had not completed their NIBRS transitions and submitted no crime data to the FBI at all for calendar year 2021. The result was the most incomplete national crime statistics report in the program's history. The FBI's 2021 Crime in the United States publication acknowledged it could not produce reliable national estimates for most offense categories because of the missing agency data. Cities representing tens of millions of people were simply absent from the count. Criminologists, journalists, and policy analysts who cited 2021 UCR national totals without this context produced systematically misleading characterizations of crime trends.
The 2022 and 2023 data improved substantially as major agencies completed their NIBRS migrations and began submitting. New York City began NIBRS reporting in 2023. But even with improved coverage, national crime estimates for recent years still require the FBI to apply imputation models to account for agencies that did not report or reported incompletely. The methodology behind those imputations is documented in the technical appendices to the annual Crime in the United States publication but is not always understood by downstream data users. Any analysis of national crime trends from 2021 onward must treat the coverage variation as the single most important interpretive context.
UCR Part I offenses: the eight Index Crimes
The Part I offenses — also called the Index Crimes — are the eight categories the FBI has tracked consistently since 1929. They are divided into violent crime and property crime.
Violent crime comprises four offenses:
- Murder and nonnegligent manslaughter— the willful killing of one human being by another. Excludes deaths caused by negligence, suicide, accident, or justifiable homicides by law enforcement or civilians. The distinction between “murder” and “justifiable homicide” is a classification decision made by the reporting agency, and the criteria are applied inconsistently across jurisdictions, making murder counts understated relative to total homicide mortality.
- Rape — reported under two competing definitions. The legacy SRS definition (“carnal knowledge of a female forcibly and against her will”) dated to 1929 and excluded male victims, non-penile penetration, and statutory rape. In 2013, the FBI adopted a revised definition: “penetration, no matter how slight, of the vagina or anus with any body part or object, or oral penetration by a sex organ of another person, without the consent of the victim.” The revised definition substantially broadened coverage. Because agencies transitioned to the new definition at different times, rape trend data across the definitional boundary requires caution.
- Robbery — taking or attempting to take something of value from a person by force, threat of force, or violence. Includes street robberies, commercial robberies, and carjackings. Unlike burglary, robbery requires a direct confrontation between offender and victim.
- Aggravated assault — an unlawful attack on a person for the purpose of inflicting severe bodily injury, typically involving a weapon or the means likely to produce grievous harm. Simple assaults (without weapons or serious injury) are Part II offenses counted less consistently. Aggravated assault is the most common violent Part I offense and represents the largest source of variability in the violent crime rate across jurisdictions.
Property crime comprises four offenses:
- Burglary — unlawful entry into a structure to commit a felony or theft, whether or not force was used. Includes residential and commercial burglaries. A burglary can occur even if nothing is taken, as long as unlawful entry with criminal intent occurred.
- Larceny-theft — the unlawful taking of property from another without force. Encompasses shoplifting, pickpocketing, purse snatching, bicycle theft, theft from motor vehicles, and similar offenses where there is no confrontation (robbery) and no unlawful entry into a structure (burglary). It is the highest-volume Part I offense by count.
- Motor vehicle theft — theft or attempted theft of a motor vehicle. Joyriding is included; recovery of the vehicle does not remove the offense from the count.
- Arson — the willful or malicious burning of property. Arson is reported separately in its own annual supplement because agency participation in arson reporting has historically been lower and less consistent than for the other seven Index Crimes, making national arson comparisons particularly difficult.
The Part I offense series is the only UCR data with a continuous historical record back to 1929. Long-run trend analysis of U.S. crime — the decline from the early 1990s peak, the plateau of the 2000s, the divergent trends of the 2010s — is built from this series. Its continuity is both its greatest strength and a source of structural limitations, because the definitions and counting rules have been applied with varying consistency across decades and jurisdictions.
The SRS hierarchy rule: a systematic undercount
The legacy SRS had a counting rule that creates systematic undercounting invisible in the published totals: the hierarchy rule. In a multi-offense incident — for example, a home invasion in which the offender commits burglary, rape, and aggravated assault — the SRS counts only the most serious offense using a fixed Part I hierarchy (murder > rape > robbery > aggravated assault > burglary > larceny-theft > motor vehicle theft > arson). The burglary and aggravated assault in that example are not counted. The incident contributes one rape to the tally.
NIBRS has no hierarchy rule. Every offense in a multi-offense incident is counted separately. This means that NIBRS-reporting jurisdictions systematically show higher per-offense counts than SRS-reporting jurisdictions, not because they have more crime, but because NIBRS counts more of the offenses that occur within each incident. Cross-jurisdiction comparisons between SRS agencies and NIBRS agencies require adjusting for this structural difference, which most published analyses do not do.
NIBRS data structure: incident-level detail
A NIBRS submission consists of five linked record types organized around a master incident record. Each incident can contain up to 10 offenses, up to 99 offenders, up to 999 victims, associated property records, and associated arrestee records. The segments are:
- Administrative segment — the master incident record with the ORI (agency identifier), incident date, incident hour, and exceptional clearance flag if applicable.
- Offense segment — one record per offense within the incident. The offense code is a three-digit alphanumeric from the Group A taxonomy (e.g., 09A = murder and nonnegligent manslaughter, 09B = negligent manslaughter, 11A = rape, 13A = aggravated assault, 13B = simple assault, 23H = all other larceny, 23F = theft from motor vehicle, 40A = drug possession, 40B = drug sale/manufacturing). Each offense record includes attempted vs. completed, location type (residence, highway, convenience store, etc.), and weapon codes.
- Offender segment — one record per offender with age, sex, race, and ethnicity (when known). Unknown offender records are permitted and common in property crimes where no suspect is identified.
- Victim segment — one record per victim with age, sex, race, injury type, victim–offender relationship, and resident status. For crimes against persons, the victim–offender relationship codes (spouse, acquaintance, stranger, etc.) enable analyses of intimate partner violence, acquaintance violence, and stranger violence that SRS cannot support.
- Property segment — one record per property type involved (stolen or recovered), with loss type, value, and drug type for narcotics seizures.
- Arrestee segment — one record per person arrested in connection with the incident, with arrest date, arrest type (on-view vs. warrant), and the arrestee's demographics.
The NIBRS public data files are large. The annual national file exceeds 20 million incident records, with each segment file containing more than 100 columns. The bulk datasets are downloadable from the Crime Data Explorer in CSV format; the CDE API provides a more accessible but less granular interface to the same data.
The 2020–2021 murder surge
The most significant crime trend of the COVID-19 era was a sharp increase in murder. The national murder rate rose from 6.0 per 100,000 in 2019 to 6.5 in 2020 — a 30 percent single-year increase in the absolute count, the largest percentage increase since national tracking began in 1929. By 2021, as estimated by the FBI from partial data, the rate had climbed to approximately 7.8 per 100,000, the highest since 1996. The two-year surge erased roughly two decades of decline in a single sustained spike.
The causes of the surge have been intensely debated, and no single factor commands consensus among criminologists. Several competing explanations have empirical support at different levels of analysis.
COVID-19 disruption to social institutions: the pandemic shuttered courts, suspended probation supervision, closed community centers and schools, and disrupted social services. Research on earlier periods suggests that the breakdown of institutional supervision and community-based conflict resolution is associated with elevated violence. The 2020 disruption was more comprehensive than any prior peacetime institutional collapse.
Changes in policing following the George Floyd protests: the summer 2020 protests following Floyd's murder in May produced sharp declines in proactive policing — pedestrian stops, vehicle stops, and self-initiated enforcement — in many cities. The “de-policing” hypothesis holds that reduced police presence in high-crime areas created opportunity for retaliatory violence that would previously have been disrupted by police contact. The evidence is mixed: some cities with large protest-related reductions in police contact showed larger murder increases than comparable cities; others did not.
Illegal gun proliferation: the 2020 legal firearm purchase surge documented in NICS data was accompanied by parallel increases in illegal firearm acquisitions and ghost gun manufacturing. ATF crime gun trace data shows a reduction in time-to-crime for recovered firearms during this period, suggesting fresh acquisitions flowing into street-level violence more rapidly than in prior years.
Analysis of city-level NIBRS data by ProPublica, The Marshall Project, and academic researchers showed that the surge was geographically concentrated. Cities with existing high baseline violence levels showed the largest absolute increases; rural and suburban areas showed modest increases from already-low baselines. The national aggregate obscures this heterogeneity. Rates began declining in 2022 in cities that adopted concentrated deterrence strategies, violence interruption programs, and community-based gun violence intervention — though attribution is contested because national trends also moderated simultaneously.
Hate crime statistics
The UCR program collects hate crime statistics separately from the main crime counts, under the Hate Crime Statistics Act of 1990. Agencies voluntarily submit records of offenses motivated by bias against the victim's race, ethnicity, religion, sexual orientation, disability, gender, or gender identity. The FBI publishes an annual hate crime report documenting total incidents, by bias motivation, by offense type, and by agency.
Reported hate crime incidents have ranged between approximately 7,000 and 11,000 annually in the most recent decade, with 2020–2023 showing elevated counts. Anti-Black hate crimes consistently represent the largest racial/ethnic category. Anti-Jewish incidents are the largest religious category in most years. The 2020 period saw a documented surge in anti-Asian hate crimes associated with COVID-19 stigma and political rhetoric attributing the pandemic to China. Anti-LGBTQ+ incidents rose from 2019 through 2023, with anti-transgender bias crimes increasing particularly sharply.
Hate crime data is among the most severely underreported in the UCR system. A substantial fraction of agencies submit no hate crime data at all in a given year, which the FBI codes as zero incidents — making it impossible to distinguish genuine absence from non-reporting. The Bureau of Justice Statistics has estimated that fewer than half of hate crime victimizations are reported to police, and that police record only a fraction of those as hate crimes. The gap between victimization surveys and UCR hate crime counts is wider than for any other major offense category.
Supplementary UCR datasets
Beyond the core offense counts, the UCR program publishes several supplementary datasets that address specific enforcement domains.
Law Enforcement Officers Killed and Assaulted (LEOKA)is an annual dataset documenting every line-of-duty death and assault of a law enforcement officer. LEOKA records weapon type (firearm, vehicle, hands/feet, knife, etc.), circumstances of the incident (traffic stop, robbery response, unprovoked attack, etc.), and officer and offender demographics. Because officer killings are fully reported — they receive mandatory investigation and have strong institutional incentives for documentation — LEOKA is one of the most complete UCR datasets and is used to study officer safety, tactical decision-making, and the effectiveness of protective equipment mandates.
Cargo Theft data was added to the UCR program in 2015 and captures theft of goods from commercial transportation — trucks, freight terminals, shipping containers, and warehouses. Cargo theft is a significant commercial crime that receives little public attention relative to its economic impact, estimated in the billions annually.
Human Trafficking data has been collected since 2013, covering both sex trafficking and labor trafficking incidents known to law enforcement. Participation among agencies is lower than for the main UCR and hate crime datasets, and trafficking incidents are even more severely underreported to police than most violent crimes. The published counts should be understood as a floor on enforcement awareness, not an estimate of trafficking prevalence.
The dark figure of crime and the NCVS
The most fundamental limitation of UCR data is that it counts only crimes known to police. Criminologists refer to the gap between actual crime and recorded crime as the dark figure of crime. Victims do not report most crimes: they may fear retaliation, distrust police, believe the crime too minor to warrant reporting, or not recognize what happened as a crime. Police record only a fraction of what is reported: they may exercise discretion, lack resources for thorough documentation, or classify ambiguous events as non-criminal. The UCR captures only what survives both filters.
The National Crime Victimization Survey (NCVS), conducted by the Bureau of Justice Statistics (not the FBI), is the principal instrument for measuring the dark figure. The NCVS surveys approximately 240,000 persons annually about criminal victimization they experienced during the preceding six months, regardless of whether they reported the incident to police. Because NCVS is a survey of people rather than a record of police responses, it captures crimes that never entered the UCR system.
NCVS and UCR trends frequently diverge. The NCVS has consistently documented victimization rates two to three times higher than UCR counts for comparable offense categories. During the 2020–2021 murder surge, the NCVS showed a smaller increase in violent victimization than the UCR did for murder — partly because the surge was concentrated in an offense category (homicide) where the NCVS does not provide victim accounts by definition, and partly because the NCVS showed declining or flat rates for non-lethal violence in the same period. Reconciling the two data sources is essential for any crime trend analysis: they measure overlapping but distinct phenomena, and conclusions that rest on either alone are systematically incomplete.
Clearance rates: what solved means in UCR
UCR agencies report clearances — the UCR term for “solved” — when at least one person is arrested, charged, or cited in connection with an offense, or when an exceptional clearance is warranted (death of the offender, victim declines to cooperate after the offender is identified, extradition denied, etc.). Clearance does not mean conviction, and a cleared case may involve an arrest that is subsequently dropped, reduced, or acquitted.
Clearance rates in the published UCR data reveal a persistent asymmetry between violent and property crime. Murder clearance rates average approximately 50 percent nationally — meaning about half of all murders result in an arrest — down from over 90 percent in the 1960s. Aggravated assault clears at roughly 40 percent, robbery at approximately 25 percent. Property crime clearance rates are far lower: burglary clears at roughly 14 percent, larceny-theft at about 18 percent, and motor vehicle theft at approximately 12 percent. These rates vary significantly by city size, agency resources, and jurisdiction — and the 2020–2021 period saw murder clearance rates in many large cities fall to historic lows, meaning the surge in homicides was accompanied by a simultaneous decline in the fraction being solved.
The Crime Data Explorer API
The FBI's Crime Data Explorer at cde.fbi.gov provides both a web interface and an API for accessing UCR and NIBRS data. The API base URL is https://api.usa.gov/crime/fbi/cde. An API key is required and available through free registration at api.data.gov.
Key API endpoints include:
/summarized/national/{offense}/{year}— national-level offense totals for a given year/summarized/state/{offense}/{year}— state-level offense totals with population denominators for rate computation/summarized/agencies/{ori}/{offense}— agency-level data for a specific ORI across available years/supplemental— supplementary data including hate crime, LEOKA, and cargo theft endpoints
The API returns JSON with offense totals and population fields sufficient for computing per-capita rates. It does not expose incident-level NIBRS data; for that, the full bulk downloads from the CDE are required. The bulk NIBRS files for recent years are available as multi-gigabyte archives containing the five segment files described above. Working with them in Python requires either a machine with sufficient RAM or chunked reading with pandas's chunksize parameter or a columnar format like Parquet after initial ingestion.
Python: pulling state-level violent crime rates from the CDE API
The script below uses the CDE API to pull state-level violent crime and homicide data for all 50 states over the 2014–2023 decade, computes per-100,000 rates, ranks states by average 2021–2023 murder rate, identifies the ten states with the largest 2020–2021 single-year percentage increase in murder rate, and plots the result as a bar chart. Note that format specifications inside curly braces (like :.2f) are avoided; all rounding and string conversion uses explicit function calls to remain compatible with template literal embedding.
import requests
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
# FBI Crime Data Explorer (CDE) API
# Free API key available at: https://api.data.gov/signup/
# Set your key here or in an environment variable.
CDE_API_KEY = "YOUR_API_KEY_HERE"
CDE_BASE = "https://api.usa.gov/crime/fbi/cde"
# --- Step 1: Fetch state-level violent crime summary for all 50 states ---
# The /summarized/state endpoint returns annual offense totals + population.
# We request 10 years: 2014-2023.
YEARS = list(range(2014, 2024))
OFFENSE = "violent-crime" # or "homicide" for murder only
rows = []
for year in YEARS:
url = f"{CDE_BASE}/summarized/state/{OFFENSE}/{year}"
resp = requests.get(url, params={"API_KEY": CDE_API_KEY}, timeout=30)
if resp.status_code != 200:
print(f"Warning: {year} returned {resp.status_code}")
continue
data = resp.json()
# Response is a list of agency-level objects or a state-level summary
# depending on the endpoint version. Extract state totals.
for item in data.get("results", []):
if item.get("state_abbr") and item.get("population"):
rows.append({
"year": year,
"state": item["state_abbr"],
"population": item["population"],
"violent_crime": item.get("violent_crime", 0),
"homicide": item.get("homicide", 0),
})
df = pd.DataFrame(rows)
# Compute rates per 100,000
df["violent_rate"] = (df["violent_crime"] / df["population"] * 100_000).round(1)
df["murder_rate"] = (df["homicide"] / df["population"] * 100_000).round(2)
# --- Step 2: Rank states by 2021-2023 average murder rate ---
recent = df[df["year"].isin([2021, 2022, 2023])]
murder_avg = (
recent.groupby("state")["murder_rate"]
.mean()
.reset_index()
.rename(columns={"murder_rate": "murder_rate_2123_avg"})
.sort_values("murder_rate_2123_avg", ascending=False)
)
print("Top 15 states by 2021-2023 average murder rate (per 100k):")
print(murder_avg.head(15).to_string(index=False))
# --- Step 3: Compute 2020-2021 single-year murder rate increase by state ---
y2020 = df[df["year"] == 2020][["state", "murder_rate"]].rename(
columns={"murder_rate": "rate_2020"}
)
y2021 = df[df["year"] == 2021][["state", "murder_rate"]].rename(
columns={"murder_rate": "rate_2021"}
)
delta = y2020.merge(y2021, on="state")
delta["pct_increase"] = (
(delta["rate_2021"] - delta["rate_2020"]) / delta["rate_2020"] * 100
).round(1)
top10_surge = delta.nlargest(10, "pct_increase").reset_index(drop=True)
print("\n10 states with largest 2020-2021 murder rate increase (%):")
print(top10_surge[["state", "rate_2020", "rate_2021", "pct_increase"]].to_string(index=False))
# --- Step 4: Bar chart of the 10 states driving the national surge ---
fig, ax = plt.subplots(figsize=(12, 6))
colors = ["#8b1a1a" if s in top10_surge["state"].tolist() else "#4a7fc1"
for s in top10_surge["state"]]
bars = ax.bar(
top10_surge["state"],
top10_surge["pct_increase"],
color=colors,
width=0.6,
edgecolor="white",
linewidth=0.5,
)
for bar, pct in zip(bars, top10_surge["pct_increase"]):
ax.text(
bar.get_x() + bar.get_width() / 2,
bar.get_height() + 0.5,
str(round(pct, 1)) + "%",
ha="center",
va="bottom",
fontsize=8.5,
color="#333",
)
ax.yaxis.set_major_formatter(mticker.FuncFormatter(lambda x, _: str(int(x)) + "%"))
ax.set_xlabel("State", fontsize=10)
ax.set_ylabel("Murder rate increase, 2020 to 2021 (%)", fontsize=10)
ax.set_title(
"10 States With Largest Single-Year Murder Rate Increase (2020-2021)\n"
"Source: FBI Crime Data Explorer",
fontsize=11,
)
ax.set_ylim(0, top10_surge["pct_increase"].max() * 1.2)
plt.tight_layout()
plt.savefig("ucr_murder_surge_2020_2021.png", dpi=150)
plt.show()
Accessing UCR data
The FBI's Crime Data Explorer at cde.fbi.gov is the primary access point. Summary statistics, trend charts, and downloadable CSVs for agencies, states, and national totals are available through the web interface without registration. API access requires a free key from api.data.gov. Bulk NIBRS data downloads are available from the CDE without registration; the annual files for recent years include all five segment types.
The FBI also maintains an archive of historical Crime in the United States reports going back decades, available as PDFs. The historical SRS data in machine-readable form is available through the Inter-university Consortium for Political and Social Research (ICPSR), which hosts the UCR data as structured files that researchers have deposited and cleaned over many years. The ICPSR versions often have better documentation and coding consistency than the raw CDE exports.
For researchers working with the NIBRS bulk files, the FBI provides a technical specification document (the NIBRS Technical Specification) defining every field, segment, code value, and validation rule. The specification is updated periodically and is essential for interpreting offense codes, location type codes, weapon codes, and relationship codes correctly. Misinterpreting a Group A offense code or a victim–offender relationship code is a common error in published analyses that can be avoided by working from the specification rather than inferring field meanings from column names alone.
Related writing
NHTSA FARS: The Federal Census of Every US Traffic Fatality Since 1975 — The Fatality Analysis Reporting System is the highway-safety counterpart to UCR: a complete administrative census of reported events that shares the same dark-figure problem (crashes not reported or not recorded) and the same denominator challenge (computing meaningful rates from population or exposure denominators).
OSHA Inspections: The Federal Database Behind Every Workplace Safety Violation and Citation — OSHA enforcement data and UCR both reflect only what flows through official reporting channels; the dark figure problem in occupational injury and the dark figure in crime are structurally identical challenges requiring victimization surveys and administrative records to be reconciled in the same way.
FBI NICS Background Checks: The Federal Dataset Behind 400 Million Firearm Transfer Attempts — NICS demand data connects directly to UCR violent crime analysis: the 2020–2021 firearm purchase surge documented in NICS correlates with the murder surge documented in UCR, and the two datasets can be joined at the state level to test purchase-volume-to-violence elasticity hypotheses.