How this dataset is made, and what we refuse to put in it
CanaryWhistle holds 39,675 official WARN Act filings covering 4,332,698 affected workers across 23,208 resolved employers and 49 of the 51 US jurisdictions, from Jan 1, 2005 to today. Of those, 408 notices covering 29,139 jobs have not taken effect yet. Every figure on this page is read from the live database when you load it, so the method and the data cannot drift apart.
What a WARN notice is, and what it is not
The federal Worker Adjustment and Retraining Notification Act requires larger employers to give a state advance notice, usually 60 days, before a mass layoff or a plant closure. Many states add their own, lower thresholds. The notice is a public record, and it is filed before the jobs end, which is why this dataset is forward-looking rather than a press summary.
This is not a record of every US layoff, and we never present it as one. WARN applies only above statutory size thresholds, so smaller cuts, and employers who simply do not file, are absent. A notice is also not proof a layoff happened at that size: employers amend and rescind, which is why we keep the history described below. Where a notice period looks shorter than 60 days we do not call that a violation, because the Act has exemptions we cannot see from a filing.
How it is collected
Each jurisdiction is collected from its own labor department, never from another aggregator. The states publish in every format imaginable, so there are four kinds of collector: plain HTML tables, spreadsheets and PDF tables, state job-board platforms where each notice has its own detail page, and, where a state publishes only scanned letters, optical character recognition. Several states block our servers outright and are read through a rendering proxy; one is read with a real browser because its portal draws the table in JavaScript. Collection runs every six hours.
The per-jurisdiction source, the number of filings held, the newest filing and the last successful collection are all published, including the gaps, on the coverage register.
What we do to the raw filings
- De-duplication on site, not just employer. One employer filing for three locations on one day is three notices, not one. The identity key is employer, state, notice date, headcount and site, because a coarser key silently overwrote separate sites.
- Employer resolution. One company's filings across many states are resolved to a single employer, so a national layoff reads as one company rather than scattered duplicates.
- Phased layoffs keep their earliest date. Where a state publishes one row per separation date, the filing takes the first date and the others are recorded in its history, rather than the last row read winning at random.
- Rescinded notices are excluded. A withdrawn or cancelled notice is not a layoff.
What we add, and what is modelled
On top of the filing we infer likely affected role families and an estimated payroll figure. Be clear on what that number is: it is a national median wage by role family from public Bureau of Labor Statistics data, multiplied by the headcount on the notice. It is a modelled estimate for scale, not the actual salaries of the affected workers, and it is labelled as an estimate everywhere it appears. Where a state omits a field, we leave it blank rather than guess.
What we refuse to do
These are the decisions that make the totals worth trusting. Each one costs us rows.
- We do not invent a headcount. A number of workers is taken only from wording that states one. Where a scanned notice gives only a table of job titles, we record no notice rather than add up an unreliable scan. That is why some older filings in scan-only jurisdictions are absent.
- We do not record a missing headcount as zero. Oklahoma publishes the notice but no number of workers, anywhere. Those 204 notices are held and counted as notices, and are deliberately absent from every headcount, total and average on this site. A zero would quietly drag down every average and print "0 jobs" against a real layoff.
- We take the state's share, not the national figure.Multi-state employers often file the national headcount with the local share in brackets, for example "9,891 remote workers (2 from RI)". The local share is the number for that state. Reading the first number instead overstated one state by nearly ten thousand jobs until we caught it.
- We do not show an out-of-state address as the worksite.Several states publish the employer's head office or its payroll processor in the location column. A town in the wrong state is worse than no town, so it is left blank.
- We exclude records a state itself labels as not a WARN filing.One state's board marks some entries Non-WARN; those are dislocations it logged, not notices filed under the Act.
- We do not publish a figure we cannot show you the sentence for. Every filing links to its source document.
As-filed history
States amend what they publish: effective dates move, a layoff is reclassified as a closure, a city is corrected. Most sources overwrite that silently, which makes it impossible to answer what the record said on the day you acted on it. We keep every change instead. 39,881 revisions are on record, of which 208are genuine amendments a state made after we first saw the filing. Each filing's full history is available through the API, and observed_at is when we recorded a change, not when the state made it. Records collected before 8 October 2026 open with a marker saying history began there, because their original values are unrecoverable and pretending otherwise would be false precision.
Known gaps
49 of 51 jurisdictions are collected. New Hampshire and Wyoming receive WARN notices and do not release them; no commercial tracker we have checked holds them either, so that is a gap in what those states publish rather than in what anyone has gathered. One jurisdiction's register is public but refuses our requests by geography, so we hold only the portion it serves us and say so rather than presenting a stale state as current. Per-jurisdiction detail, with dates, is on the coverage register.
Corrections
If a filing here is wrong, write to corrections@canarywhistle.com and we check it against the official record and fix or remove it. We would rather be corrected than consistent.
How to cite this dataset
The archive is free under Creative Commons Attribution 4.0, which asks only that you credit it. The most recent 30 days and the forward calendar are the paid half; everything older is yours.
CanaryWhistle, US WARN Act Layoff and Closure Filings, https://canarywhistle.com/data (CC BY 4.0)Downloads and the row schema are on the data page; the API is documented for developers, including a public demo key that needs no signup.