{
 "dataset": "fda-drug-shortage-spells-2014-2026",
 "written": "2026-11-11",
 "method_fixed": "The spell rule was first run on 2026-10-28 (scripts/drug-intel/survival.mjs). The rename bridge was added on 2026-11-11 after results had been seen. This file states the method as published; it is not a pre-registration.",
 "source": {
  "page": "https://www.accessdata.fda.gov/scripts/drugshortages/default.cfm",
  "via": "Internet Archive captures of that page, one per calendar month where a capture exists (wayback-backfill.mjs); each monthly row records the capture timestamp and archive URL it came from",
  "check_source": "https://api.fda.gov/drug/shortages.json (openFDA), used only for the posting-date comparison and the category label on spells still listed"
 },
 "unit": "ingredient: the FDA list name lower-cased with strengths, parentheses and dosage-form words removed, so a rename between Tablet and Tablets is not a false exit; combination products keep every ingredient, sorted",
 "spell": "consecutive observed months in which the ingredient is on the list with status Currently in Shortage. A month with no archived capture is unobserved: a spell is carried across it. A spell ends at the first observed month in which the ingredient is absent or no longer has that status.",
 "rename_bridge": "The FDA re-titled many entries in 2023-10; unbridged, each re-title reads as a shortage ending and a new one starting. Two spells are joined only when one is first seen absent and the other first seen listed in the same month and their ingredient words nest (parentheses, dosage-form and packaging words dropped, plurals folded; salt words ignored when both names have other words), matched one to one within the month, an identical stated strength first and then the closest wording. Every join is listed in rename-bridges.csv; the unbridged estimate is kept in data.json.",
 "duration": "months_listed_max = first month absent minus first month listed (an upper bound when unobserved months sit between the last month seen and the first month absent); months_listed_min = last month seen minus first month listed plus one. Duration estimates use the maximum; the minimum is published beside it.",
 "censoring": "spells still listed in the newest month are right-censored (Kaplan-Meier). Spells already listed in the first captured month have an unknown start and are excluded from duration estimates but kept in the file.",
 "not_claimed": [
  "day-level dates",
  "cause of any shortage",
  "package or manufacturer level detail before 2026-10-27",
  "that an absent month means supply recovered: it means the FDA list no longer showed the ingredient as currently in shortage"
 ]
}
