Open source

An independent open-source project. Not affiliated with the Government of Canada or Health Canada.

Open NshipyardDrug Shortages, Ranked

Nshipyard Canada · Open data project

Drug Shortages, Ranked

Canada's drug shortage registry lists 24,377 reports, one by one, and it never answers the follow-up: which companies keep showing up, and which shortages never end. This project normalizes the registry, ranks the companies and drug classes by chronicity, and tracks the 59 Tier 3 critical shortages separately. Reference date 2025-12-01.

59

Tier 3 reports, the critical shortages that could hit Canada's drug supply hardest. 24 were still open on 2025-12-01

49%

of Tier 3 reports filed by three companies: Teva Canada (13), Pfizer Canada ULC (9), Pharmascience (7)

28

Tier 3 designations in 2025, up from 4 in 2022

58 days

the median length of a resolved shortage. The mean is 140 days because a long tail of multi-year shortages pulls the average up

1,742

shortages still open on 2025-12-01, running a median of 647 days

Explorer

Search 24,377 shortage reports.

Search above or filter by company, drug class, Tier 3, or status. Status values come from the registry: open, anticipated, avoided, resolved.

Showcase

Six questions the registry never answers.

Every number below is computed from the 24,377 normalized shortage reports, reference date 2025-12-01. The sixth card states the limits plainly, because a ranking without its blind spots is a marketing chart.

Q1

Which drug companies own most of Canada's critical shortages?

Teva Canada filed 13 of the 59 Tier 3 reports, Pfizer Canada ULC filed 9, Pharmascience filed 7. Three companies account for 49% of the critical shortage reports. Tier 3 marks shortages that could hit Canada's drug supply and health care system hardest.

Share on X

Q2

Are critical shortages rising?

Tier 3 designations went from 4 in 2022 to 28 in 2025, while total new reports stayed roughly flat. The honest caveat: the Tier 3 flag first appears in this dataset in 2022, when the current committee process was formalized, so the curve mixes real growth with the flag's rollout.

Share on X

Q3

How long does a shortage last?

The median resolved shortage ran 58 days. The mean was 140 days, pulled up by a long tail of multi-year shortages, the longest ran 15.6 years. Open shortages are the slow ones: on 2025-12-01 they had been running a median of 647 days.

Share on X

Q4

Which drug classes short out most?

Nervous system drugs lead with 6,785 reports, cardiovascular drugs follow with 5,082. Critical shortages concentrate elsewhere: respiratory drugs hold 15 of the 59 Tier 3 reports, the highest count and share of any class, and cancer drugs (antineoplastic and immunomodulating agents) hold 13.

Share on X

Q5

Who files the most reports, period?

Apotex filed 3,633 reports, Teva 3,077, Sandoz 2,261. Volume alone does not mean chronic: most reports resolve, and the chronicity ranking comes from Tier 3 and duration data, not the raw count.

Share on X

Q6

What this registry cannot say.

Reports are not patients: one report covers one product presentation, and pharmacists often substitute. 'Resolved' can mean the shortage ended or was avoided. Companies self-report, so open reports may be stale. 21 reports carry no company name and 96 carry no ATC code. They are counted in totals but excluded from rankings.

Share on X

Methodology

How the ranking was built, and where it is weak.

  1. 01

    Source: the Health Product Shortages Canada monthly bulk extract, archived 2025-12-20 (originally drugshortagescanada.ca, now healthproductshortages.ca). Reference date 2025-12-01. The PMPRB 2022 analytical study on shortages is the one-off baseline this living tracker replaces.

  2. 02

    Cleaning: the BOM disclaimer row is dropped, DINs are digit-stripped and zero-padded, company names are normalized with 16 logged merge groups (see company_merges.json), 0001-01-01 placeholder dates are treated as missing, and 25 rows whose actual end date precedes the actual start are quarantined from duration math (see quarantine.json).

  3. 03

    Duration: resolved duration is actual end minus actual start, capped at the 2025-12-01 reference date. Open duration is the reference date minus the start. The 58-day median and 140-day mean come from 20,347 resolved reports with computable duration.

  4. 04

    Status mapping: the registry's statuses map to open (Actual shortage), anticipated (Anticipated shortage), avoided (Avoided shortage), and resolved (Resolved). The 1,742 open reports on 2025-12-01 split into 1,709 actual and 33 anticipated.

  5. 05

    Companies: 239 canonical companies after merging 16 near-identical name variants. 21 reports carry no company name and are counted in totals but excluded from rankings.

  6. 06

    ATC classes: records roll up to ATC level 1 (letter) and level 2. 96 reports carry no ATC code and are counted in totals but excluded from class rankings. Class names follow the WHO ATC system.

  7. 07

    Tier 3: critical shortages that could hit Canada's drug supply and health care system hardest, assigned by a federal-provincial Tier Assignment Committee. The flag first appears in this dataset in 2022, matching when the current committee process was formalized.

  8. 08

    Discontinuations: tracked separately, 3,221 reports, and excluded from every shortage ranking on this site.

  9. 09

    Honest limits: reports are product presentations, not patients, and pharmacists often substitute. Companies self-report, so open reports may be stale. 'Resolved' can mean the shortage ended or was avoided.

Why this matters now

Health Canada's drug supply notices page (canada.ca, checked 2026-10-10) lists 6 active notices: glucagon for injection (2026-07-02), Bicillin L-A penicillin G benzathine (2026-06-01), dantrolene sodium for injection (2026-05-29), animal-sourced insulin discontinuation (2026-03-13), CeeNU lomustine (2025-04-17), and PEGASYS peginterferon alfa-2a (2025-03-31). Two recently resolved notices corroborate the Tier 3 clusters in this data: spironolactone/Aldactone, resolved 2026-08-05, matches the Tier 3 C03DA cluster of 7 reports. Salbutamol nebules and metered-dose inhalers, resolved 2026-05-06, match the Tier 3 R03AC/R03BB respiratory cluster of 13 reports.

For developers

Query it from code, or from an agent.

Three consumption paths, same normalized data. REST for applications, OpenAPI for integration, MCP tools over streamable HTTP for AI agents.

Endpoints

GET

/api/v1/shortages/search?q=salbutamol&limit=3

Search 24,377 shortage reports by brand name, DIN, or company. Filterable by company, ATC level 1, Tier 3, and status

{
  "total": 73,
  "page": 1,
  "limit": 3,
  "hits": [
    {
      "report_id": "97054",
      "din": "02245669",
      "brand_name": "APO-SALBUTAMOL HFA",
      "company_canonical": "APOTEX INC",
      "status": "Resolved",
      "atc_code": "R03AC",
      "duration_days": 60.0,
      "tier3": false
    }
  ]
}
Try it →

GET

/api/v1/companies/tier3

The Tier 3 critical-shortage company ranking with top-3 and top-5 concentration shares

{
  "total": 59,
  "open": 24,
  "top3_share": 0.4915,
  "companies": [
    { "company": "TEVA CANADA LIMITED", "tier3_reports": 13 },
    { "company": "PFIZER CANADA ULC", "tier3_reports": 9 },
    { "company": "PHARMASCIENCE INC", "tier3_reports": 7 }
  ]
}
Try it →

GET

/api/v1/trends

Quarterly series 2020-Q1 to 2025-Q4: new Tier 3 reports and all new reports per quarter

{
  "quarterly": [
    { "quarter": "2020-Q1", "tier3_new": 0, "all_new": 680 },
    { "quarter": "2025-Q4", "tier3_new": 3, "all_new": 345 }
  ]
}
Try it →

Connect your agent

Put this data to work inside your AI tools.

Pick your harness, copy the prompt, send it to your agent. Your agent runs the setup itself.

Copy and send this to Claude Code

Set up the Drug Shortages, Ranked MCP server so I can query it from here.
1. Run: claude mcp add --transport http drug-shortages-ranked https://this-site.example/mcp
2. Run `claude mcp list` to confirm it connected.
3. Rank companies by Tier 3 critical shortage reports and show me the top 3, and show me the result.

Data

Take the files.

The two cleaned extracts, the company merge log, and the quarantine log. Same files the API reads. MIT licensed.

shortages_clean.csv

24,377 shortage reports, cleaned and normalized

Download
discontinuations_clean.csv

3,221 discontinuation reports, tracked separately

Download
company_merges.json

16 logged company name merge groups with row counts

Download
quarantine.json

25 rows quarantined from duration math (end before start)

Download