How FFLSearch is built

The whole pipeline, stated plainly, so you can judge the data rather than take our word for it.

The pipeline

  1. Source. The ATF publishes a list of every active federal firearms licensee. We download the current publication.
  2. Validate. The file is checked before it is allowed to replace anything: expected shape, plausible record count, and no unexplained collapse in coverage. A file that fails is rejected rather than imported, because a bad import would silently delete real dealers.
  3. Filter. A licensee gets a page only if the licence is active and the record resolves to a usable public URL.
  4. Export. The entire site is generated as static files and checked by an automated gate before it can be published.
  5. Publish. A build that fails any check is not deployed — the previous good version stays live.

What the numbers reconcile to

Dealer pages published
77,428
State and territory directories
55
City directories
4,283
ATF publication this build used
September 27, 2026

These are computed when the site is built, from the same data the pages are rendered from. They are not maintained by hand and cannot drift apart from what is published.

What is excluded, and why

  • Inactive licences. A licensee whose licence is no longer active does not get a page. Listing a closed dealer as findable is worse than not listing them.
  • Records without a usable public identity. A record that cannot be resolved to a stable URL is held back rather than published under a guess.

The difference between the number of licensees in the ATF file and the number of pages here is exactly the sum of those two exclusions. It is reconciled on every build, and a build where the numbers do not add up fails rather than publishes.

Which cities get a directory page

A city gets its own page when it has at least five active dealers — enough that the page is genuinely a directory rather than a thin restatement of one or two listings. States with no city meeting that bar use a lower threshold so the state is not left without any city-level entry point.

Dealers in smaller towns still have their own pages and are still findable by search; they simply do not have a city directory above them.

Dealer-supplied information

Transfer fees, hours, capabilities, services and descriptions come from dealers, not from the ATF. They are stored separately from ATF facts and labelled separately on the page, and nothing is published unless the dealer explicitly saved it. What Dealer Confirmed means.

A field a dealer has not answered shows as “Not provided”. It never becomes “No”, and a missing fee never becomes $0. Where we show an aggregate — a lowest or median published fee in a city — we always show how many dealers it is based on, and we never publish an average, which outliers distort.

Refresh cadence

The ATF publishes monthly, and the directory is rebuilt against each new publication. The date of the publication in use is shown on every listing, so you can see the age of the data rather than having to trust that it is current. An automated check alarms when the site falls behind.

See also: data sources and about FFLSearch.