Technical writing
Inside the count: using BJS National Prisoner Statistics to analyze incarceration trends
On any given night in 1972, roughly 200,000 people were held in state and federal prisons across the United States. By 2009 that number had grown to 1.6 million — an eightfold increase over 37 years, driven by legislation that is now well-documented and a political consensus that has since fragmented. The Bureau of Justice Statistics has been counting those people continuously since 1925. That count, published as the National Prisoner Statistics program, is the oldest running federal correctional data collection in existence and the empirical foundation for almost every serious study of mass incarceration.
This article covers what the NPS collects, how its data forms are structured, the 40-year incarceration boom and the decline that followed, the racial disparity patterns visible in a century of data, how to access the files, and three concrete research use cases: drug offense composition, parole revocation as a population driver, and state-by-state incarceration rate comparisons. It also covers where NPS data connects to FBI crime data, EEOC employment records, and USDA nutritional assistance data for reentry research.
What the National Prisoner Statistics program is
The NPS is a census — not a sample — of sentenced prisoners held in state and federal correctional institutions. Every state department of corrections and the Federal Bureau of Prisons submits data to BJS annually. Because it is a census of administrative records rather than a survey of individuals, the NPS has near-complete coverage of the institutional population and is not subject to the non-response bias that affects household-based criminal justice surveys.
The program began in 1925, when the Census Bureau collected the first national count of prisoners from state penitentiaries. Responsibility transferred to the Federal Bureau of Prisons in the 1940s, then to the Law Enforcement Assistance Administration in the 1970s, and finally to BJS when that agency was established in 1979. The continuity of annual data collection across a century of institutional changes is NPS's most distinctive feature: no other federal criminal justice dataset offers a longitudinal window longer than a few decades.
The program covers sentenced prisoners — people held under a sentence of more than one year — in state and federal institutions. It does not cover local jails, which hold people awaiting trial or serving short sentences and which BJS tracks separately through the Annual Survey of Jails and the Census of Jails. The sentenced-prisoner distinction matters: the prison population is a lagging indicator of criminal justice policy because it reflects sentencing and release decisions made months or years earlier.
Data structure: NPS-1A, NPS-1B, and NPS-1C
BJS collects NPS data through three reporting forms, each designed to capture a different dimension of the prison population:
NPS-1A is the core annual stock survey. Every state department of corrections and the BOP submits a count of sentenced inmates under their jurisdiction as of December 31 of the reference year. NPS-1A also collects total admissions and releases for the calendar year, broken down by admission type (new court commitment, parole revocation, other conditional release revocation, return from escape, and other admissions) and release type (conditional release to supervision, expiration of sentence, death, escape, and other releases). The admissions and releases flows allow researchers to decompose the year-over-year change in prison population into its inflow and outflow components — a critical distinction because the growth era was driven by longer sentences increasing time served, not simply by more people entering prison.
NPS-1B collects monthly prisoner counts from each jurisdiction, providing a within-year view of population fluctuations. The monthly data captures seasonal patterns in admissions and releases, the impact of legislative changes that take effect mid-year, and the acute decarceration events — such as the early releases ordered by some states during the COVID-19 pandemic in spring 2020 — that are smoothed over in annual averages. NPS-1B is published with a longer lag than NPS-1A and is less frequently used in research because the annual snapshots suffice for most trend analyses.
NPS-1C collects sentenced prisoners disaggregated by offense type and demographic characteristics. This is the richest and most analytically productive form: it breaks the sentenced population into violent offenses (murder, rape/sexual assault, robbery, aggravated assault, other violent), property offenses (burglary, larceny-theft, motor vehicle theft, fraud, other property), drug offenses (possession and trafficking combined), public order offenses (weapons, DUI, other public order), and a residual other category. Each offense group is further cross-tabulated with race and sex. NPS-1C does not contain individual-level microdata — it is published as jurisdiction-level aggregate tables.
A critical definitional distinction in NPS data is the difference between custody and jurisdiction populations. Jurisdiction population counts all sentenced prisoners for whom a state or the federal government has legal authority, regardless of where they are physically held — including people held in local jails due to prison overcrowding and people temporarily in another jurisdiction's facility. Custody population counts all people physically present in a jurisdiction's facilities, including those whose sentence was imposed by another jurisdiction. For most states most of the time the two counts are close; for states that routinely house out-of-state prisoners under contract or that place large numbers of prisoners in jails, the gap is material. BJS publishes both counts and explicitly recommends jurisdiction population for state-to-state comparisons.
Key variables
The NPS-1A and NPS-1C forms, combined with BJS's published statistical tables, provide the following analytically critical variables:
| Variable | Source | Notes |
|---|---|---|
| Total sentenced population | NPS-1A | Year-end count under sentence of more than 1 year; jurisdiction basis |
| Sex | NPS-1A, NPS-1C | Male / female; separate BOP reporting; female population tracked since 1925 |
| Race and Hispanic origin | NPS-1C | White non-Hispanic, Black non-Hispanic, Hispanic, other; classification methodology changed in 2012 |
| Age | NPS-1C | Age groups: 18–19, 20–24, 25–29, 30–34, 35–39, 40–44, 45–54, 55+ |
| Offense type | NPS-1C | Violent, property, drug, public order; subcategories vary by year and state reporting quality |
| Admissions by type | NPS-1A | New court commitments vs. parole/conditional release revocations vs. other |
| Releases by type | NPS-1A | Conditional release, sentence expiration, death, escape |
| Sentence length | Survey of Inmates | Not in NPS directly; drawn from the periodic Survey of Inmates in State and Federal Correctional Facilities |
Sentence length and time served are not collected in the NPS forms. BJS gathers those variables through the periodic Survey of Inmates in State and Federal Correctional Facilities, which is an individual-level survey conducted roughly every decade. The most recent iterations covered 2004 (state) and 2004 (federal); BJS has released updated surveys since. The Survey of Inmates provides microdata that NPS aggregate tables cannot, but its periodic rather than annual cadence limits its usefulness for trend analysis.
The 40-year incarceration boom: 1972–2009
The NPS trend series documents one of the most dramatic transformations in American social policy of the twentieth century. From 1925 through the early 1970s, the U.S. incarceration rate was relatively stable — fluctuating between roughly 90 and 120 per 100,000 residents, with a dip during World War II and a modest increase through the postwar decades. That stability ended around 1972.
The growth period began with the Nixon administration's declaration of a “war on drugs” in 1971 and accelerated through a series of state and federal legislative changes that progressively removed sentencing discretion and extended the time served for a widening range of offenses. The federal Sentencing Reform Act of 1984 created the U.S. Sentencing Commission and introduced mandatory minimum guidelines, abolishing parole for federal prisoners sentenced after November 1987. State legislatures followed with their own mandatory minimum statutes, particularly for drug offenses: by the early 1990s, nearly every state had enacted mandatory minimum drug penalties, and many had also enacted “three strikes and you're out” laws requiring life imprisonment for a third serious felony conviction regardless of circumstances.
The Violent Crime Control and Law Enforcement Act of 1994 — known as the 1994 Crime Bill — accelerated the process at the federal level and incentivized states to adopt Truth in Sentencing laws requiring that violent offenders serve at least 85% of their imposed sentence before release. States that enacted qualifying Truth in Sentencing statutes received federal prison construction grants under the Violence Against Women Act and the Violent Offender Incarceration and Truth in Sentencing incentive grant program. By 2000, 27 states and the District of Columbia had met the 85% threshold.
The NPS data shows the cumulative effect: the sentenced state and federal prison population grew from approximately 200,000 in 1972 to 1.6 million in 2009. The growth was not driven by a single factor but by a compounding of three distinct pressures: more admissions from new court commitments as arrest and conviction rates rose; more admissions from parole revocations as the parole supervision population grew and revocation standards tightened; and longer time served as mandatory minimums, Truth in Sentencing, and the abolition of federal parole reduced early release. Criminologist Alfred Blumstein and colleagues estimated that roughly two-thirds of the growth in state prison populations between the mid-1970s and early 1990s was attributable to changes in sentencing and release policy rather than changes in crime rates.
Since 2009: the decline
The NPS series peaked in 2009 at 1,615,487 sentenced state and federal prisoners and has declined in most subsequent years. The decline is real but modest relative to the scale of the preceding growth: as of 2022 the total sentenced population remained above 1.2 million, roughly six times the 1972 level.
The post-2009 reduction reflects several converging forces. State fiscal pressure following the 2008 financial crisis forced corrections budget cuts in many states, and reducing incarceration became a cost-control strategy acceptable across partisan lines in ways it had not been during the growth era. The 2010 Fair Sentencing Act reduced the federal crack-to-powder cocaine sentencing disparity from 100:1 to 18:1, retroactively benefiting several thousand federal prisoners. The Second Chance Act of 2008 had authorized grant funding for reentry programs, and the First Step Act of 2018 created mechanisms for earned-time credits and early release for federal prisoners.
The COVID-19 pandemic produced the sharpest single-year declines in NPS history. Between 2019 and 2020, the sentenced prison population dropped by approximately 214,000 — a 15% decline driven by emergency releases, suspended admissions as courts closed, and a sharp drop in new court commitments as prosecution slowed. Whether that decline represents a structural shift or a temporary interruption became a central question for corrections researchers as populations began to recover in 2021 and 2022.
Racial disparity in the data
The NPS race data is the most widely cited quantitative evidence for racial disparity in the American criminal justice system and among the most methodologically fraught. The disparity is real and large; its magnitude and trajectory depend on measurement choices that NPS data forces the researcher to confront explicitly.
In raw terms, the NPS has consistently shown that Black Americans are incarcerated at rates far exceeding their share of the general population. In the mid-2000s, BJS estimated the Black imprisonment rate at approximately 3,000 per 100,000 Black residents, compared to roughly 450 per 100,000 white residents — a ratio of approximately 6.5:1. That ratio has declined modestly since: by the early 2020s BJS estimated the Black rate at roughly 1,700 per 100,000 and the white rate at roughly 260 per 100,000, a ratio of approximately 5:1. The absolute gap remains enormous; the ratio has narrowed primarily because white imprisonment rates rose during the growth era (partly from the methamphetamine-related surge in rural white incarceration) while Black rates peaked earlier and declined more steeply in relative terms in some states.
The 2012 race classification change is a significant methodological discontinuity in the NPS trend series. Before 2012, Hispanic prisoners were often classified under white or other racial categories depending on how individual states reported their data — some states combined Hispanic and white prisoners; others had Hispanic as a separate category. Beginning with the 2012 data collection, BJS standardized collection to distinguish white non-Hispanic, Black non-Hispanic, and Hispanic as separate categories. This change substantially altered the measured white imprisonment rate and Hispanic imprisonment rate in a way that is not comparable to prior years. Researchers analyzing trends that span the 2012 boundary must use BJS's bridged series or restrict analysis to post-2012 data for race-specific trend work.
The NPS does not contain the data to explain the racial disparity — it documents it. Understanding whether the disparity originates in differential offending rates, differential policing, differential prosecution, differential conviction, or differential sentencing requires joining NPS data to other datasets at each stage of the criminal justice pipeline. That analytical task is the core research agenda of criminologists studying racial inequality in the justice system.
How to access the data
BJS makes NPS data available through three channels, each suited to different research needs.
BJS website: statistical tables and key findings
BJS publishes annual “Prisoners in [year]” bulletins at bjs.ojp.gov, each accompanied by an appendix of statistical tables in Excel format. These tables contain the NPS-1A and NPS-1C data — total populations, admissions, releases, and demographic breakdowns — for every state and the federal system for the reference year, plus selected trend tables going back to 1978 or earlier. For most policy and journalism purposes the statistical tables are sufficient. They are updated annually with roughly a one-year lag (the 2022 data was published in late 2023).
ICPSR archive: historical microdata and codebooks
The Inter-university Consortium for Political and Social Research at the University of Michigan archives NPS files going back to 1978 under ICPSR study numbers in the 36000 series. The ICPSR archive provides the data in SAS, SPSS, Stata, and R formats with variable-level codebooks, and includes files that predate the BJS website downloads — making it the appropriate starting point for any analysis requiring the full historical series. Access requires free individual or institutional registration. The National Archive of Criminal Justice Data (NACJD), a BJS-funded archive housed at ICPSR, provides additional documentation and variable-level notes that the BJS bulletins do not contain.
Online statistical tables: interactive trend series
BJS maintains an interactive data tool at its website that allows construction of custom trend tables by state, year, race, sex, and offense category. The tool is useful for exploratory analysis but has limitations: it does not expose the full NPS variable set, it cannot be queried programmatically via an API, and its trend series for race-specific data is truncated at the 2012 reclassification boundary. For reproducible research, the ICPSR downloads or BJS bulletin spreadsheets are preferable to the interactive tool.
Research use case 1: drug offense composition
One of the most misunderstood facts about mass incarceration is the role of drug offenses. Public discourse about the drug war frequently asserts that American prisons are full of nonviolent drug offenders. NPS-1C data tells a more complicated story.
At the state level — which holds roughly 85% of all sentenced prisoners — drug offenders have consistently represented between 15% and 20% of the sentenced population since the late 1990s. The peak was roughly 22% in the early 2000s; by the mid-2010s it had declined to around 15% in most years. Violent offenders account for approximately 55% of state sentenced prisoners in recent NPS data; property offenders approximately 17%; public order offenders approximately 11%.
The federal picture is different. Drug offenders represent more than 45% of the BOP sentenced population — a much higher fraction than in state systems. This reflects the different offense jurisdiction of the federal system, which focuses on interstate trafficking and large-scale distribution rather than street-level possession, but also the legacy of mandatory minimum sentences for federal drug offenses that remained stringent long after many states had begun reform.
Combining state and federal data, drug offenders represent roughly 20% of all sentenced prisoners — not a trivial fraction, and a population whose mandatory sentences contributed materially to the growth era, but substantially less than the “prisons are full of nonviolent drug offenders” framing suggests. The dominant driver of prison population size is violent offenders serving long sentences, not drug offenders. Eliminating all drug sentences tomorrow would reduce the prison population by roughly one-fifth.
Research use case 2: parole revocation as a population driver
NPS-1A admissions data disaggregated by type reveals a structural feature of the American prison system that is underappreciated in public discourse: a substantial fraction of prison admissions are parole and conditional release revocations, not new criminal convictions.
In the peak growth years, parole revocations accounted for roughly 35% of all state prison admissions. That fraction varies substantially by state: California at its peak was returning parolees to prison at extraordinary rates, with revocations representing more than half of all California prison admissions in some years — a function of California's unusually large parole supervision population, its three-year parole terms (among the longest in the country), and its policy of returning parolees to prison for technical violations rather than new crimes. Other states with smaller parole populations or less aggressive revocation policies showed much lower fractions.
The policy implication is significant: reducing prison population through front-end sentencing reform (shorter sentences or fewer convictions) is only one lever. Parole revocation policy — the conditions imposed on supervision, the technical violations that trigger return, and the role of parole officers in initiating revocation — is a comparably large driver of prison population that operates largely outside public view. States that have reduced their prison populations most rapidly since 2009 have typically combined both approaches.
import pandas as pd
# Example: computing parole revocation fraction from NPS-1A summary data
# BJS publishes admissions by type in the Prisoners bulletin appendix tables
# Load the Excel appendix (adjust table number per the relevant bulletin year)
nps_admissions = pd.read_excel(
"prisoners_2022_appendix.xlsx",
sheet_name="Table 7", # admissions by type and jurisdiction
header=3 # actual column headers are below title rows
)
# Columns vary by year; common structure:
# jurisdiction | total_admissions | new_court_commits | parole_revocations | other_revocations | other_admissions
nps_admissions.columns = nps_admissions.columns.str.strip()
# Compute revocation fraction per state
nps_admissions["revocation_fraction"] = (
(nps_admissions["parole_revocations"] + nps_admissions.get("other_revocations", 0))
/ nps_admissions["total_admissions"]
)
top_revocation_states = (
nps_admissions[nps_admissions["jurisdiction"] != "U.S. total"]
.sort_values("revocation_fraction", ascending=False)
.head(10)[["jurisdiction", "total_admissions", "parole_revocations", "revocation_fraction"]]
)
print(top_revocation_states.to_string(index=False))Research use case 3: state-by-state incarceration rate comparison
NPS data divided by Census population estimates produces state incarceration rates per 100,000 residents — the standard comparative metric in criminological research. The variation across states is striking: as of recent NPS data, the highest-incarceration states (Louisiana, Oklahoma, Mississippi, Arkansas, Georgia) incarcerate at rates three to four times higher than the lowest-incarceration states (Massachusetts, Maine, Minnesota, Rhode Island, Vermont). That variation is not fully explained by crime rates.
Controlling for state crime rates — using FBI UCR or NIBRS offense rates for violent and property crimes — reveals that much of the cross-state variation in incarceration rates reflects differences in sentencing policy (sentence length and mandatory minimum thresholds), prosecutorial discretion, and supervision practices rather than differences in underlying offending. Southern states tend to have higher incarceration rates conditional on crime rates; New England states tend to have lower rates. The political economy of criminal justice policy — the electoral incentives of prosecutors and legislators, the strength of public defender systems, the presence or absence of mandatory minimum statutes, and the historical legacy of convict leasing and the carceral apparatus built to enforce racial hierarchy — explains more of the cross-state variation than crime rates do.
import pandas as pd
# Merge NPS jurisdiction population with Census population estimates
# to compute incarceration rates per 100,000 residents by state
nps = pd.read_csv("nps_1a_2022.csv") # BJS or ICPSR download
census = pd.read_csv("census_population_2022.csv") # Census state population estimates
merged = nps.merge(census[["state_fips", "total_population"]], on="state_fips", how="left")
merged["incarceration_rate"] = (
merged["sentenced_jurisdiction_pop"] / merged["total_population"] * 100_000
)
# Join FBI UCR/NIBRS violent crime rate for the same year
nibrs = pd.read_csv("nibrs_state_offense_rates_2022.csv")
merged = merged.merge(nibrs[["state_fips", "violent_crime_rate"]], on="state_fips", how="left")
# States with highest incarceration rate controlling for violent crime rate
merged["incarceration_per_violent_crime"] = (
merged["incarceration_rate"] / merged["violent_crime_rate"]
)
print(
merged.sort_values("incarceration_per_violent_crime", ascending=False)
[["state_name", "incarceration_rate", "violent_crime_rate", "incarceration_per_violent_crime"]]
.head(15)
.to_string(index=False)
)Cross-references: FBI NIBRS, EEOC, and USDA
NPS data occupies the downstream end of the criminal justice pipeline: it measures the people who have already passed through arrest, charging, conviction, and sentencing. Understanding what the incarceration data means requires situating it relative to the earlier stages.
The FBI's National Incident-Based Reporting System documents the front end: crimes reported to police, arrests made, and arrestee demographics by offense type. Comparing NIBRS arrest demographics to NPS incarceration demographics by offense type reveals where racial disparities are amplified or attenuated at each subsequent stage of the process — charging, plea bargaining, conviction, and sentencing. If the Black share of NIBRS drug arrests is 30% but the Black share of state sentenced drug prisoners is 40%, the amplification occurred somewhere in the prosecution and sentencing stages. NIBRS and NPS together provide the empirical inputs to locate that amplification.
The EEOC's discrimination charge data connects to NPS at the reentry stage. Roughly 600,000 people are released from state and federal prisons each year, and the criminal record they carry becomes a permanent barrier to employment under the background check regimes that most large employers operate. The EEOC has issued enforcement guidance since 2012 stating that blanket exclusions of people with criminal records may constitute Title VII disparate impact discrimination given the racially skewed composition of the incarcerated population. Charge data showing which employers and industries face EEOC scrutiny for criminal record screening, combined with NPS data on the racial composition of the released population, provides an empirical basis for assessing reentry employment barriers.
USDA nutritional assistance data — SNAP participation rates and benefit flows — intersects with NPS at a different point. A 1996 federal law permanently bars people with drug felony convictions from receiving SNAP benefits unless their state has opted out of the ban, which roughly half of states have. BJS reentry research has documented that recently released prisoners experience food insecurity at rates far exceeding the general population. SNAP administrative data, analyzed by state against NPS data on drug offense release volumes, reveals the practical scope of the benefit exclusion and how state opt-out decisions affect reentry economic outcomes.
Related writing
Incident-level crime: using FBI NIBRS data to analyze offense patterns, victim demographics, and clearance rates — How to acquire and analyze FBI NIBRS incident-level crime data to surface offense patterns, clearance rate disparities by victim demographics, and geographic concentration of drug and violent crime.
By the numbers: using EEOC charge statistics to find discrimination patterns by industry and employer — How to acquire and analyze EEOC charge statistics and FOIA-released charge-level data to surface industry-level discrimination patterns, employer repeat appearances, and the limits of an 18% merit resolution rate.
The HUD fair housing complaint database: what 30,000 cases reveal about housing discrimination patterns — HUD and FHAP agencies process thousands of fair housing complaints each year. What the data reveals about discrimination by basis (race, disability, familial status), geography, and respondent type.