Three words describe where a crime count comes from, and this package uses each with one meaning.
get_reported_crime()
returns it.get_nibrs_estimate() returns it.impute_reporting_gaps(), which fills an agency’s missing
months from its own neighboring months. This package always says which
one it means.The API publishes the FBI’s NIBRS estimates for 2021 and 2022, for each state and the nation. It publishes none for counties, cities or metro areas. The FBI’s older summary-format estimates, 1979 onward, are a bulk download that this package does not read.
imputation_gap() compares the estimate with reported
crime. The FBI builds the estimate from NIBRS reports alone, so the gap
is measured against crime reported in NIBRS.
ca <- imputation_gap("CA", year = 2021:2022)
ca[, c("year", "reported", "reported_nibrs", "reported_other",
"coverage", "coverage_nibrs", "published", "share_estimated")]
#> year reported reported_nibrs reported_other coverage coverage_nibrs
#> 1 2021 36439 36943 -504 0.2632175 0.2632175
#> 2 2022 193824 71625 122199 0.9878345 0.4658594
#> published share_estimated
#> 1 217539 0.8301776
#> 2 207381 0.6546212In 2021 California’s reports reached the FBI through NIBRS only: the two coverage figures are the same. Most California agencies had not switched to NIBRS, and agencies reporting in NIBRS covered 26% of the state’s population. The FBI’s model supplied 83% of its published figure of 217,539 violent crimes.
In 2022 the FBI accepted both formats. Agencies reporting in either format covered 99% of the population, but those reporting in NIBRS covered 47%. The FBI’s model treated the rest as missing, including the 122,199 violent crimes reported in the older format, and supplied 65% of the published figure.
Those older-format reports are a check on the model. The model supplied 135,756 violent crimes for the agencies outside NIBRS, which reported 122,199 themselves.
California’s own count gives a second check for 2021. The California Department of Justice collected 2021 reports in both formats and published 183,546 violent crimes (Crime in California 2021, Table 3). That is below the lower bound of the FBI’s 95% interval, 189,849.
Not every state’s 2021 reports were NIBRS. In New Jersey, for example, some agencies reported in the older format:
nj <- imputation_gap("NJ", year = 2021)
nj[, c("reported", "reported_nibrs", "reported_other", "coverage",
"coverage_nibrs")]
#> reported reported_nibrs reported_other coverage coverage_nibrs
#> 1 12972 7619 5353 0.7540175 0.4492799Agencies reporting in either format covered 75% of New Jersey’s population, and those reporting in NIBRS 45%. Of the 12,972 violent crimes reported, 5,353 arrived in the older format, and the FBI’s model treated them as missing.
imputation_gap(year = 2021:2022)[, c("year", "coverage_nibrs",
"published", "share_estimated",
"share_lower", "share_upper")]
#> year coverage_nibrs published share_estimated share_lower share_upper
#> 1 2021 0.7471695 1325991 0.3040435 0.2176449 0.3732574
#> 2 2022 0.8090670 1328033 0.2411695 0.1781031 0.2952472The two formats count offenses differently; for example, the summary
format counts only the most serious offense in an incident. Where every
report arrived in NIBRS, the difference between reported
and reported_nibrs is the counting difference alone. Texas
in 2022 is such a case: its two coverage figures are the same for every
offense.
codes <- c("V", "P", "ROB", "ASS", "BUR", "LAR", "MVT", "ARS", "HOM", "RPE")
tx <- do.call(rbind, lapply(codes, function(code) {
imputation_gap("TX", year = 2022, offense = code)
}))
tx$difference <- round(100 * tx$reported_other / tx$reported_nibrs, 1)
tx[, c("offense", "coverage", "coverage_nibrs", "reported",
"reported_nibrs", "difference", "share_estimated")]
#> offense coverage coverage_nibrs reported reported_nibrs difference
#> 1 V 0.9882089 0.9882089 131255 132433 -0.9
#> 2 P 0.9882089 0.9882089 694178 694614 -0.1
#> 3 ROB 0.9882089 0.9882089 21264 21371 -0.5
#> 4 ASS 0.9882089 0.9882089 91660 92400 -0.8
#> 5 BUR 0.9882089 0.9882089 100888 95444 5.7
#> 6 LAR 0.9882089 0.9882089 491113 500672 -1.9
#> 7 MVT 0.9882089 0.9882089 99234 98498 0.7
#> 8 ARS 0.9882089 0.9882089 2943 2943 0.0
#> 9 HOM 0.9882089 0.9882089 2100 2100 0.0
#> 10 RPE 0.9882089 0.9882089 16231 16562 -2.0
#> share_estimated
#> 1 -0.0068423894
#> 2 0.0109581239
#> 3 -0.0009367243
#> 4 0.0033437601
#> 5 0.0078173729
#> 6 0.0079102135
#> 7 0.0290885075
#> 8 0.0107563025
#> 9 -0.0329562223
#> 10 -0.0728073585NIBRS counts slightly more violent crime than the summary rules do
(-0.9%), and for every offense but burglary (5.7%) the two series are
within about 2% of each other. A reported_other of that
size, negative included, means nearly every report arrived in NIBRS.
The gap needs no such allowance: it compares the estimate with NIBRS counts, which follow the same rules. It is still not exactly zero where the model had little to supply. In Texas in 2022 it runs from -7.3% to 2.9% of the estimate.