Provenance
Data and provenance
Every snapshot we have taken of the FDA feed, with its content hash, and a measurement of how complete that feed actually is. The raw files and the full change history live in a repository, so the record can be audited rather than taken on trust.
How complete the source is
Every listing is reduced to these twelve fields. This is what share of the 1,623 listings actually carry each one, measured from the snapshot this page was built from.
| Field | Populated | What it is |
|---|---|---|
| availability | The supply position in free text. Blank whenever the FDA stops reporting one. | |
| company_name | The manufacturer. What you name on the phone. | |
| contact_info | The manufacturer's own shortage line. | |
| dosage_form | Tablet, capsule, injection and so on. | |
| generic_name | The substance, not the brand. Our routing starts here. | |
| initial_posting_date | When the FDA first posted this shortage. | |
| package_ndc | The code on your bottle. The only identifier a patient can read off a label. | |
| presentation | Free text holding the strength, which we parse and never guess at. | |
| status | Current, To Be Discontinued or Resolved — a separate axis from availability. | |
| therapeutic_category | One or more clinical categories; drives the category hubs. | |
| update_date | When the FDA last touched the record. Not when anything changed. | |
| update_type | Reverified, Revised or New. Only two of those can mean a real change. |
The gap that matters is the first one. 447 listings carry no availability text, and 444 of those are products the FDA has marked To Be Discontinued. We leave the field blank rather than inferring a status from the absence of one. The full breakdown is on the methodology page.
Snapshots
| Fetched | Listings | SHA-256 |
|---|---|---|
| 2026-08-25 | 1,628 | 2b841cfe5b06288e25e8c638… |
| 2026-08-26 | 1,623 | 021d4dfd5d742d955f926998… |
2 snapshots and 3 comparison files recorded so far. A snapshot is stored only when its content hash differs from the previous one, so identical days do not create duplicates.
How a snapshot is stored
We take the full feed, reduce each listing to the twelve fields above, sort them, and hash the result. If the hash matches the previous snapshot nothing is written, so a quiet weekend does not create four identical files. If it differs, the whole snapshot is stored compressed and the hash is recorded above.
That hash is what makes any page on this site checkable. A page names the snapshot it was built from; the snapshot is in the repository; the repository history says when it arrived and has not been rewritten since.
What a comparison file holds
Alongside each snapshot we store the comparison that produced it: which listings appeared, which disappeared, which changed and in what field, and whether each change was worth alerting anyone about. The comparison also records whether the run was marked suspect, and why.
Keeping the comparison rather than recomputing it matters, because the rules for what counts as a change can improve over time. The record of what we actually said on a given day should not silently change when the code does.
Source and licence
Everything here derives from the openFDA drug shortage endpoint, used under the openFDA license. We add no availability data of our own. Our only contribution is the comparison between days and the way it is presented.
The FDA’s own terms are worth repeating: do not rely on openFDA to make decisions regarding medical care. We reproduce the data faithfully; that is a different thing from the data being sufficient for a decision about your treatment.
Built from the FDA drug shortage database, fetched 2026-08-26; the feed’s own last update was 2026-08-25. Snapshot 021d4dfd5d742d95. You can check us against the FDA source, and read what we get wrong.