Technical writing

FBI NICS Background Checks: The Federal Dataset Behind 400 Million Firearm Transfer Attempts

· 20 min read· AI Analytics
Federal DataFBIFirearmsPublic Safety

Since going live on November 30, 1998, the FBI's National Instant Criminal Background Check System has processed more than 400 million checks — a cumulative record of every attempt to purchase a firearm through a licensed dealer in the United States. The system was created by the Brady Handgun Violence Prevention Act of 1993, took five years to build, and now runs 24 hours a day, seven days a week, returning an approve, delay, or deny decision to the gun dealer who initiated the check. The monthly aggregate data the FBI publishes is the closest thing to a national firearm demand gauge that federal data provides.

This article covers how NICS works, what the three databases it queries contain, the four possible outcomes of a check, the “default proceed” loophole that allowed the 2015 Charleston church shooter to buy a gun, the prohibited person categories under 18 U.S.C. § 922(g), the structure of the monthly state-level data the FBI publishes, the check types that do and do not represent firearm transfers, the major political demand spikes visible in the historical record, and how to download and analyze the BuzzFeed News NICS dataset in Python.

The Brady Act and the creation of NICS

The Gun Control Act of 1968 established the basic framework of federal firearms regulation: licensed dealers must verify that a buyer is not a prohibited person before transferring a firearm. For more than two decades, verification was left to the dealer's judgment and a signed Form 4473 attestation from the buyer. There was no centralized database to check and no systematic mechanism for dealers to verify buyer claims in real time.

The Brady Handgun Violence Prevention Act of 1993, signed by President Clinton on November 30, 1993, mandated the creation of an instant background check system. The Act required that a national system be operational within five years; in the interim, it imposed a five-day waiting period for handgun purchases. NICS went live on November 30, 1998 — exactly five years after the Act's signing — eliminating the interim waiting period for most purchasers and automating the prohibited-person check that dealers had previously been unable to perform in real time.

NICS is operated by the FBI's Criminal Justice Information Services Division (CJIS) in Clarksburg, West Virginia. Every federally licensed firearm dealer (FFL) must initiate a NICS check before transferring any firearm — handgun, long gun, or other — to any non-licensee. Checks are initiated by phone through the NICS call center or electronically through the E-Check system. The FBI charges no fee for NICS checks.

Point of contact states

Not all NICS checks flow through the FBI. Sixteen states and the District of Columbia operate as full point of contact (POC) states: their own state agency receives the check request from the dealer, queries NICS and state databases, and returns the decision. A small number of states are partial POC states, handling handgun checks through a state agency while routing long gun checks to the FBI. The remaining states are non-POC states, where the dealer contacts the FBI directly.

POC states can query additional state databases not accessible through the FBI's NICS interface, including state mental health commitment records, state domestic violence civil protection orders, and state-only disqualifiers not federally mandated. This means that two purchasers with identical federal criminal histories may receive different outcomes depending on whether their state has a POC system and what additional records it queries. The variation in POC design is one reason NICS denial rates differ substantially by state even after controlling for population and base rates of prohibited-person status.

The three databases NICS queries

Every NICS check queries three federal databases simultaneously.

NCIC (National Crime Information Center) is the FBI's central law enforcement database, containing wanted-person records, protection orders, immigration status violations, and other law enforcement records. NCIC is queried for active warrants, outstanding wanted-person flags, and protection orders that would make the purchaser a prohibited person under federal law.

The Interstate Identification Index (III)— pronounced “Triple I” — is the national repository for criminal history records. It contains rap sheet data contributed by state and federal agencies documenting arrests, charges, and dispositions. The III is the primary database for identifying whether a purchaser has a felony conviction, a domestic violence misdemeanor conviction, or other conviction-based disqualifiers. The quality of III records is highly variable across states: some states submit complete disposition records for every arrest; others submit arrest records without subsequent conviction or acquittal data, creating records that look disqualifying even when the ultimate case outcome was not.

The NICS Index contains disqualifying records not captured in NCIC or the III: mental health adjudications, involuntary commitment records, illegal alien status determinations, dishonorable discharge records, and citizenship renunciation records. The NICS Index depends entirely on voluntary submission by state agencies and courts. Mental health and domestic violence adjudications are systematically underreported across most states, meaning the NICS Index reflects an unknown but substantial fraction of actual disqualifying events. The GAO has documented that the majority of states submit fewer than half of their mental health adjudication records to NICS; several states submit virtually none.

Prohibited persons under 18 U.S.C. § 922(g)

Federal law specifies nine categories of persons prohibited from possessing or purchasing firearms under the Gun Control Act of 1968, codified at 18 U.S.C. § 922(g). A NICS Deny result is issued when a record in one of the three queried databases matches a purchaser to one of these categories:

  • Conviction of a crime punishable by imprisonment for more than one year (a felony in federal terminology, though it covers some state misdemeanors with elevated penalties)
  • Fugitive from justice — an outstanding arrest warrant or failure to appear
  • Unlawful user of or addicted to any controlled substance
  • Adjudicated as a mental defective or committed to a mental institution (the mental health category)
  • Illegal or unlawful alien
  • Person who has renounced U.S. citizenship
  • Dishonorably discharged from the U.S. Armed Forces
  • Subject of a qualifying domestic violence restraining order
  • Convicted of a qualifying misdemeanor crime of domestic violence (the “Lautenberg Amendment” category, added in 1996)

The mental health and domestic violence categories are the most chronically underreported. Mental health adjudication records require proactive reporting by state courts and mental health agencies to the NICS Index; there is no automated pipeline from state court systems to NICS. Domestic violence records require that the underlying misdemeanor conviction or protection order meet specific federal criteria that not all state domestic violence offenses satisfy. The result is that two structurally identical disqualifying events can produce different NICS outcomes depending on whether the state court reported the underlying record and whether the state's offense definitions match the federal criteria.

The four NICS outcomes

Every NICS check resolves to one of four outcomes.

Proceed means the check returned no disqualifying records. The dealer may transfer the firearm. Roughly 91 to 92 percent of NICS checks historically have resulted in a Proceed within minutes.

Deny means NICS found a record matching a prohibited-person category. The dealer must decline the transfer. The FBI issues a Deny transaction number, and the dealer retains the Form 4473 for 20 years. The purchaser may appeal a Deny through the NICS Act Record Improvement Program (NARIP). Approximately 1 to 1.5 percent of checks historically have resulted in Deny.

Delay means NICS found records that require further research before a determination can be made. The most common delay trigger is an incomplete criminal history record in the III — an arrest record without a disposition, or a record in a name and date-of-birth combination that may or may not match the purchaser. The FBI has three federal business days to resolve a Delay. Roughly 7 to 8 percent of checks have historically received a Delay.

Cancel means the transaction was voided before resolution, typically because the purchaser withdrew or the dealer cancelled the sale. Cancels are relatively rare and primarily administrative.

The default proceed loophole and the Charleston shooting

The most consequential limitation in the NICS system is the three-business-day default proceed provision, sometimes called the “Charleston loophole.” Under federal law, if the FBI does not resolve a Delay within three business days, the dealer may — but is not required to — proceed with the transfer at its own discretion. This provision was included in the Brady Act as a compromise to prevent NICS from becoming a de facto waiting period when the FBI was slow, and to avoid indefinite delays caused by backlogged record searches.

On June 17, 2015, Dylann Roof opened fire at Emanuel African Methodist Episcopal Church in Charleston, South Carolina, killing nine people in a racially motivated mass shooting. He had purchased the firearm used in the shooting from a federally licensed dealer after a NICS Delay that was not resolved within three business days. Roof had a prior drug arrest that should have triggered a Deny — he was an unlawful user of a controlled substance — but an error in the FBI's record search misidentified the arresting jurisdiction, and the record was never retrieved during the three-day window. The dealer, following the default proceed rule, transferred the firearm after the window elapsed.

After the Charleston shooting, legislation to extend the three-business-day window was introduced repeatedly in Congress under the name NICS Denial Notification Act or variations thereof. The NICS Improvement Amendments Act of 2007 — passed after the Virginia Tech shooting, which was committed using a firearm purchased through NICS despite the shooter's disqualifying mental health adjudication that had not been reported to NICS — had addressed the record-completeness problem but not the three-day window. As of this writing, the default proceed provision remains in federal law. Some states have addressed it at the state level by requiring dealers to wait for an explicit Proceed before transferring a firearm; others have left it unchanged.

The monthly NICS data: what the FBI publishes

The FBI publishes monthly NICS background check statistics as a PDF report, breaking out total checks by state and by transaction type. The reports are available on the FBI NICS website going back to November 1998. Each monthly report is a table: states on the rows, transaction types on the columns, total checks for the month in each cell.

The transaction type columns capture different purposes for which a NICS check can be initiated. Understanding them is essential for interpreting the data correctly, because many checks do not represent firearm transfers at all.

Transaction types in the monthly data

The transfer-representing types are:

  • handgun — standard NICS check for a handgun purchase from a dealer
  • long_gun — standard check for a rifle or shotgun
  • other — check for a firearm that fits neither handgun nor long gun (e.g., some pistol-caliber carbines, frames and receivers)
  • multiple — a single transaction involving multiple firearms of more than one type (e.g., a handgun and a rifle purchased together)

The pre-pawn and redemption types record checks run by pawnbrokers:

  • prepawn_handgun, prepawn_long_gun, prepawn_other — checks run before a pawnbroker accepts a firearm as collateral for a loan
  • redemption_handgun, redemption_long_gun, redemption_other — checks run when the borrower reclaims the firearm (a transfer back to the original owner)
  • returned_handgun, returned_long_gun, returned_other — returns of firearms by pawnbrokers when a loan is not redeemed

Rental and private sale checks are reported in some states:

  • rentals_handgun, rentals_long_gun — checks for short-term firearm rentals, primarily at shooting ranges
  • private_sale_handgun, private_sale_long_gun, private_sale_other — checks initiated in states that require NICS checks on private party transfers, not just dealer sales

The permit types are the most important distortion in total NICS counts:

  • permit — NICS check run for a carry permit or purchase permit application, without any concurrent firearm transfer
  • permit_recheck — rechecks for permits that remain active beyond their initial verification period

Kentucky is the canonical example of permit inflation. Kentucky runs a NICS check on every concealed carry permit holder every month as a recheck. A state with a large carry permit population and monthly rechecks can easily generate more raw NICS checks than the entire state's firearm transfer volume would explain. Kentucky consistently appears at or near the top of state-level NICS rankings for this reason alone. Analysts who sum all NICS check types without filtering out permit and permit_recheck will dramatically overcount Kentucky and similarly situated states.

NICS checks are not gun sales: the measurement problem

NICS check counts do not equal firearm sales counts, for several structural reasons that must be understood before drawing any inference from the data.

First, a single NICS check can cover a multi-gun transaction. If a buyer purchases three handguns in one dealer visit, one NICS check is run. The handgun column records one check, but three handguns transferred. The multiple column captures cross-type transactions but not same-type multi-gun purchases. This means transfer-proxy counts derived from NICS undercount actual gun-unit volumes, particularly in states or periods with elevated bulk purchasing.

Second, permit checks represent NICS queries with no associated firearm transfer. In states that use NICS to issue or recheck carry permits, total raw check counts are substantially higher than transfer-only counts.

Third, private sales in most states do not require a NICS check at all. Federal law requires NICS checks for transfers by licensed dealers. Transfers between private individuals — at gun shows, through newspaper classified ads, through online platforms — are not federally required to run NICS in states without universal background check laws. Estimates of the private sale share of all firearm transactions have ranged from 20 to 40 percent historically, though the share may have shifted as more states enacted universal background check requirements. NICS data captures only the licensed dealer portion of the market.

The best transfer proxy from the monthly data is: handgun + long_gun + other + multiple. This sums the four primary transfer-type columns while excluding permit checks, pawn operations, rentals, and returns. The BuzzFeed News methodology defined this sum as the core transfer estimate and used it in its published analyses. It is an undercount of actual units transferred (multi-gun transactions) and an undercount of total transactions (private sales excluded), but it is the most internally consistent proxy available from the public NICS data.

The BuzzFeed News NICS dataset

The FBI publishes the monthly NICS data as PDFs, which are human-readable but not machine-readable. BuzzFeed News developed a scraper that parsed the monthly PDF tables back to November 1998 and assembled them into a single tidy CSV: one row per state per month, with all transaction type columns. The repository is maintained on GitHub at BuzzFeedNews/nics-firearm-background-checks and is updated periodically as the FBI publishes new monthly reports.

The dataset has become the standard starting point for firearms research involving NICS data. It has been used in academic papers, investigative journalism at The New York Times, The Washington Post, and The Trace, and in public policy analyses. Because it covers the full 1998-to-present history in a single CSV, it makes long-run trend analysis accessible without requiring PDF parsing.

The CSV's columns map directly to the FBI monthly report columns: month (YYYY-MM format), state, and then one column per transaction type. Missing values appear where the FBI reported no checks in a given type/state/month combination. The dataset contains all 50 states plus DC, Guam, Puerto Rico, the Virgin Islands, and Mariana Islands.

Major demand spikes in the historical record

The NICS monthly data records a distinctive pattern: firearm demand is relatively stable in non-event months, then spikes sharply around political events that generate fear of increased gun regulation. The spikes are visible in the raw monthly counts and more clearly in rolling averages.

January 2013 was the highest single month on record at the time. President Obama's post-Sandy Hook push for gun legislation — announced in December 2012 — produced a panic-buying surge that began in December 2012 and peaked in January 2013. The transfer proxy for January 2013 reached approximately 2.5 million, roughly double the pre-spike baseline. The legislative push ultimately failed in the Senate, and demand normalized by mid-2013.

December 2015 and 2016 showed elevated demand through the final year of the Obama administration and the transition to the Trump administration. The 2016 spike was partially a pre-election surge (fears of a Clinton win accelerating regulation) and partially an inauguration-period effect as buyers anticipated a more permissive regulatory environment would reduce urgency to buy. The pattern reversed historical precedent: demand typically rises when Democrats win and falls when Republicans win.

March through June 2020 produced the largest sustained demand surge in NICS history. The COVID-19 pandemic, combined with widespread civil unrest following the murder of George Floyd in May 2020, drove firearm purchases to record levels. March 2020 recorded the highest single month in the dataset to that point; May 2020 broke that record. The rolling 12-month average hit an all-time high in late 2020. Industry data suggests that a significant fraction of COVID-era buyers were first-time purchasers, which would have implications for the longer-run stock of civilian firearms but is not directly measurable from NICS alone.

January 2021 produced a further spike around the Biden inauguration and the Democratic sweep of the Georgia Senate runoffs, which gave Democrats unified control of Congress. The combination drove fears of renewed federal assault weapons legislation, producing a January 2021 transfer proxy that exceeded even the January 2013 record.

The pattern across all major spikes is consistent: political events that increase the perceived probability of new federal firearms restrictions produce immediate demand surges. The surges are concentrated in the weeks immediately following the triggering event and normalize within months once the legislative threat recedes or passes. The demand is forward-looking in a behavioral-economics sense: buyers are not responding to current restrictions but to anticipated future ones.

State-level patterns and permit inflation

Raw state-level NICS check counts are dominated by permit and permit_recheck checks in states that route carry permit operations through NICS. Kentucky, as noted, runs monthly rechecks on its entire active permit population, generating millions of checks annually that do not represent any firearm transfer. Illinois uses NICS for its Firearm Owner's Identification (FOID) card checks, inflating its totals relative to transfer volume. Utah, Oregon, and several other states also use NICS for permit checks that exceed transfer volumes in many months.

Identifying permit-heavy states and adjusting for them is straightforward in the BuzzFeed dataset: compute the ratio of permit + permit_recheck to handgun + long_gun + other + multiple by state and month. States where permit checks dominate have ratios well above 1.0. After filtering to the transfer-only proxy, per-capita rankings shift substantially: states that appear to have extremely high gun purchase rates in raw counts often normalize to population-appropriate levels; genuinely high-transfer states like Utah (high FFL density, low barriers to purchase) remain elevated after adjustment.

States that require NICS for private sales — using the private_sale columns — capture a larger fraction of total firearm commerce than states where only dealer sales run NICS. This means raw NICS counts in universal-background-check states like California, Oregon, and Colorado are more complete measures of firearm transfer volume than counts in non-universal states like Texas or Arizona, where a substantial fraction of transfers never enter the NICS system at all.

Python: download and visualize the NICS transfer proxy

The code below downloads the BuzzFeed NICS CSV directly from GitHub, sums the four transfer-proxy columns (handgun, long_gun, other, multiple) across all states for each month, computes a 12-month rolling average to smooth seasonality, plots the full 1998-to-present series with annotated demand spikes, and prints the ten highest-volume months on record. Note that Python f-strings with format specifications are avoided here; rounding and string formatting use explicit function calls instead of format mini-language syntax to remain compatible with template literal embedding.

import requests
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# BuzzFeed News parsed the FBI NICS monthly PDFs into a tidy CSV from 1998 onward.
# The dataset is maintained on GitHub and updated periodically.
CSV_URL = (
    'https://raw.githubusercontent.com/BuzzFeedNews/'
    'nics-firearm-background-checks/master/data/'
    'nics-firearm-background-checks.csv'
)

df = pd.read_csv(CSV_URL, parse_dates=['month'])

# Firearm transfer proxy: handgun + long_gun + other + multiple.
# Permit and permit_recheck columns count NICS queries for carry permits,
# not actual transfers, and inflate totals in states like Kentucky dramatically.
transfer_cols = ['handgun', 'long_gun', 'other', 'multiple']
for col in transfer_cols:
    df[col] = pd.to_numeric(df[col], errors='coerce').fillna(0)

df['transfers'] = df[transfer_cols].sum(axis=1)

# Aggregate across all states for each month.
monthly = (
    df.groupby('month', as_index=False)['transfers']
    .sum()
    .sort_values('month')
)

# 12-month rolling average to smooth seasonality.
monthly['rolling_12'] = monthly['transfers'].rolling(12, min_periods=1).mean()

fig, ax = plt.subplots(figsize=(14, 5))

ax.fill_between(
    monthly['month'], monthly['transfers'],
    alpha=0.25, color='steelblue', label='Monthly transfers (proxy)'
)
ax.plot(
    monthly['rolling_12'].index,
    monthly['rolling_12'],
    color='steelblue', linewidth=1.8,
    label='12-month rolling average'
)

# Annotate major demand spikes.
spikes = [
    ('2013-01', 'Jan 2013\nNewtown panic buy'),
    ('2016-12', 'Dec 2016\nElection spike'),
    ('2020-03', 'Mar 2020\nCOVID surge'),
    ('2021-01', 'Jan 2021\nInauguration spike'),
]
for date_str, label in spikes:
    ts = pd.Timestamp(date_str)
    row = monthly[monthly['month'] == ts]
    if not row.empty:
        y_val = float(row['transfers'].iloc[0])
        ax.annotate(
            label,
            xy=(ts, y_val),
            xytext=(10, 20),
            textcoords='offset points',
            fontsize=7.5,
            arrowprops=dict(arrowstyle='->', color='#555', lw=0.8),
            color='#333',
        )

ax.xaxis.set_major_locator(mdates.YearLocator(4))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))
ax.set_xlabel('Month', fontsize=10)
ax.set_ylabel('Background checks (transfer proxy)', fontsize=10)
ax.set_title(
    'FBI NICS Firearm Transfer Proxy, 1998-present\n'
    '(handgun + long gun + other + multiple; 12-month rolling avg)',
    fontsize=11,
)
ax.legend(fontsize=9)
ax.yaxis.set_major_formatter(
    plt.FuncFormatter(lambda x, _: str(int(round(x / 1_000_000, 0))) + 'M')
)
plt.tight_layout()
plt.savefig('nics_transfer_proxy.png', dpi=150)
plt.show()

# Print summary statistics for the top-10 months by transfer volume.
top10 = (
    monthly.nlargest(10, 'transfers')[['month', 'transfers']]
    .copy()
)
top10['transfers_m'] = top10['transfers'].apply(
    lambda x: str(round(x / 1_000_000, 2)) + 'M'
)
print(top10[['month', 'transfers_m']].to_string(index=False))

Cross-reference datasets

NICS data measures demand flowing through the licensed dealer channel. To build a fuller picture of firearms in circulation, it must be combined with other federal datasets that measure adjacent phenomena.

ATF crime gun trace data connects the NICS demand signal to downstream crime gun flows. A month of elevated NICS transfers in a permissive-law state may appear in ATF trace data two to five years later as elevated crime gun recoveries in neighboring strict-law states, compressing the time-to-crime distribution in those recipient states. ATF's published state trace data and NICS monthly data can be joined at the state level to test whether dealer volume — as proxied by NICS — predicts downstream trace volume.

FBI NIBRS crime data provides the offense-side counterpart to NICS demand data. NIBRS records every firearm-involved offense reported by participating agencies, with weapon type codes distinguishing handguns, rifles, and shotguns. Comparing NICS handgun transfer volumes by state to NIBRS handgun-involved offense rates by state, controlling for population and enforcement intensity, has been used in research on the demand-to-harm elasticity of firearm purchase surges.

CDC firearm injury and mortality data (WISQARS) provides the public health outcome measure. WISQARS documents firearm deaths by state, mechanism (homicide, suicide, unintentional), and year. Because suicides account for more than half of all U.S. firearm deaths, and because suicide purchasers often buy legally through dealers, NICS transfer volumes contain a demand signal relevant to firearm suicide rates. Research has found a robust correlation between NICS check surges and subsequent increases in firearm suicide rates, an association that does not appear for non-firearm suicides — suggesting that increased access, rather than underlying mental health trends, drives the relationship.

NHTSA FARS traffic fatality data shares a methodological structure with NICS: both are administrative records capturing events that flow through a formal reporting system, both require denominator adjustments for meaningful rate computation, and both have systematic gaps where the underlying event occurred outside the reporting perimeter (private sales for NICS; fatalities on private roads for FARS). Analysts building state-level public safety risk models often incorporate both as complementary supply-side and consequence-side measures.

Accessing the NICS data

The FBI publishes monthly NICS background check reports at fbi.gov/how-we-can-help-you/more-fbi-services-and-information/nics/reports. Each monthly report is a PDF with state-by-transaction-type totals; the full historical archive from November 1998 is available. No registration or FOIA request is required.

The BuzzFeedNews/nics-firearm-background-checks GitHub repository provides the machine-readable version: a single CSV concatenating all monthly reports, a README describing the column definitions, and the Python scraper used to generate the CSV from the source PDFs. The repository is public domain. As of mid-2026 it remains the standard research-grade version of the NICS data, updated periodically as new monthly reports are released.

NICS denial statistics — counts of Deny outcomes by state and prohibited category — are published separately in the FBI's annual NICS Operations Report, which also covers Delay resolution times, appeal outcomes, and system performance metrics. The Operations Report is the source for denial rate figures and is available on the same NICS website.

Related writing

ATF Crime Gun Trace Data: The Federal Dataset the Tiahrt Amendment Tried to Hide — How ATF's National Tracing Center connects NICS-enabled purchases to downstream crime gun recoveries, the Tiahrt Amendment's constraints on public dealer-level data, and how the FFL directory and AFMER production reports reveal what the trace data cannot.

Incident-level crime: using FBI NIBRS data to analyze offense patterns, victim demographics, and clearance rates — NIBRS's weapon type codes document the firearm-involved offense side of the picture that NICS data captures on the demand side, enabling cross-source analysis of purchase volume versus firearm crime rates by state.

Every US traffic death since 1975: using NHTSA FARS to analyze road safety, vehicle defects, and enforcement gaps — FARS and NICS share a methodological structure as administrative records of events flowing through formal reporting systems, both subject to coverage gaps and denominator challenges that require adjustment before computing meaningful rates.