Methodology
Data as of 2026-09-05. Everything on this page is enforced by the build pipeline, not by editorial review.
Source
FBI Crime Data Explorer (cde.ucr.cjis.gov), summarized agency-level monthly data, SRS with NIBRS submissions converted to SRS-comparable counts by the FBI. Fetched keylessly from the CDE's own public endpoints. Population figures are the FBI's own agency population bases. City selection from US Census Bureau sub-county population estimates (sub-est2024).
Counts are "actual" offense figures for each city's primary law enforcement agency as published by the FBI's Crime Data Explorer, month by month. The FBI converts National Incident-Based Reporting System (NIBRS) submissions to Summary Reporting System-comparable counts; violent and property totals follow the FBI's standard definitions (violent = murder & nonnegligent manslaughter, rape, robbery, aggravated assault; property = burglary, larceny-theft, motor vehicle theft). Arson is collected but the FBI cautions its coverage is thinner; the same months-reported labeling applies.
City selection
The 598 places are the largest US incorporated places by 2024 Census
population estimates whose policing agency could be matched one-to-one in
the FBI's agency roster. Places policed by a county or regional agency
with no city-level series (e.g. Palm Coast, FL) are excluded with a
written reason rather than approximated — the full ledger is in
Coverage. Consolidated jurisdictions (Louisville,
Nashville, Las Vegas, Honolulu…) carry a
jurisdiction_note because their agency's territory exceeds
the census city, and the FBI's own population basis is used for rates so
numerator and denominator always describe the same territory.
NIBRS participation and reporting gaps — read this before comparing anything
Since 2021 the FBI collects data only through NIBRS, and agency participation varies by year. Some large agencies did not report at all in transition years (Los Angeles 2021: zero months). Others submitted partial data the source publishes as ordinary-looking small numbers (New York 2021: 123 violent crimes on the books of an agency that recorded 50,000+ in surrounding years). This dataset handles both honestly:
months_reportedcounts the months the agency actually reported (unreported months are null at the source and stay null here).- Rates are computed only for 12-month years:
rate_per_100k = count ÷ FBI population × 100,000. - A 12-month year whose count falls below 20% of the median of complete
years within ±3 years (median ≥ 100) gets
reporting_anomaly: true. The number is preserved — it is the official record — but the label tells you not to trend on it.
What this API deliberately does not do
- No composite scores. Any single number claiming to summarize "how safe" a place is hides choices about weighting, population basis and reporting coverage. We publish the components and the caveats.
- No ranking of places. The FBI's own guidance warns that rankings built on UCR data are unreliable: agencies differ in reporting practices, jurisdiction shapes and demographics. Comparisons are yours to make with the coverage labels in view.
- No per-address or block-level figures. This is agency-level (city-level) data — the only level the national source publishes.
- No imputation, no annualization, no smoothing.
Verify any number
Every place document carries the exact source URL pattern it was built from. Pick any city, open the FBI's Crime Data Explorer, select the agency and category, and the monthly series will sum to our annual count. Three cities are re-verified against the live source on every build of this dataset.
Refresh cadence
The FBI updates the underlying data on its own schedule (annual
releases plus periodic revisions — the source may revise history).
This dataset re-pulls quarterly; data_as_of in
/v1/meta.json tells you the pull date. Revisions replace
values only when the refreshed store passes the same validation gates.