APProjects/warn-act-notices
0
1---2title: US WARN Act Layoff Notices3emoji: π4colorFrom: gray5colorTo: red6sdk: static7pinned: false8license: cc-by-4.09short_description: 61,428 US WARN Act layoff notices, 48 states, free CSV10tags:11 - layoffs12 - warn-act13 - warn-notices14 - layoff-tracker15 - labor-market16 - public-records17 - united-states18 - dataset19 - daily-updated20 - csv21 - rss22custom_headers:23 cross-origin-opener-policy: same-origin24 cross-origin-resource-policy: cross-origin25---26 27# US WARN Act layoff notices β 61,428 notices, 48 states, rebuilt every day28 29**[Open the live site β](https://approjects-warn-act-notices.static.hf.space/)** Β· rebuilt 2026-09-2330 31| | |32|---|---|33| **61,428** | layoff notices on file, back to 1988 |34| **48** | state portals re-scraped every single day |35| **6,830,833** | workers named across those notices (all of it free, dated 1988-01-01 onward, no delay) |36| **241** | notices filed in the last 30 days (23,558 workers) |37| **5,545** | near-duplicate employer spellings merged onto 1,243 employers, redone every morning (Aramark alone files under 159 spellings) |38| **24** | daily snapshots in the observed change log (2425 field changes / disappearances recorded since 2026-08-30) |39 40Every US state publishes WARN Act layoff notices in its own format β different41columns, different date conventions, some as quarterly PDFs, several with no42notice date at all. This project re-scrapes 48 of them daily, normalizes43them into one schema, deduplicates with stable row ids, and canonicalizes44employer names so `Amazon.com Services LLC` and `Amazon` roll up together.45 46A one-off copy of this data starts rotting the week it is posted: states amend47headcounts, re-issue notices and silently drop rows. Compare the rebuild date48above with the "last updated" date on any other US WARN dataset before you49choose one.50 51## Free, no account, no email address52 53- **Site** β [https://approjects-warn-act-notices.static.hf.space/](https://approjects-warn-act-notices.static.hf.space/): state pages, employer pages, weekly / monthly /54 yearly roll-ups, search.55- **CSV / JSON** β [`/data/warn_notices.csv`](https://approjects-warn-act-notices.static.hf.space/data/warn_notices.csv),56 [`/data/coverage.json`](https://approjects-warn-act-notices.static.hf.space/data/coverage.json) (per-state row counts, last-scraped57 stamp, newest notice on file).58- **RSS** β [all states](https://approjects-warn-act-notices.static.hf.space/feed.xml), or one feed per state.59- **Dataset mirror** β [APProjects/us-warn-act-layoffs-notices-daily](https://huggingface.co/datasets/APProjects/us-warn-act-layoffs-notices-daily)60 (`load_dataset` in one line).61- **Daily GitHub release** β [releases/latest](https://github.com/APVentureEngine/warn-act-notices/releases/latest).62 63```bash64curl -s https://approjects-warn-act-notices.static.hf.space/data/coverage.json | python3 -c "import json,sys; d=json.load(sys.stdin); print(d['total_rows'], 'notices;', len(d['states']), 'states')"65```66 67## What a re-scrape cannot give you: the observed change log68 69State portals overwrite themselves. When an agency amends a headcount, moves an70effective date or quietly removes a notice, the previous value leaves the public71internet. Because this dataset is committed on every daily rebuild, its history72is a point-in-time record of what each portal was publishing on each day, and73that record is published as74[`/data/revisions.csv`](https://approjects-warn-act-notices.static.hf.space/data/revisions.csv)75([README](https://approjects-warn-act-notices.static.hf.space/data/revisions.README.txt)): one row per field change or76disappearance between consecutive daily builds, 24 snapshots since772026-08-30, 2425 rows so far, 169 of them a tracked78field changing from one non-empty value to another.79 80Read it honestly: a row means *our build changed*, which can be the agency81amending the notice **or** this project's parser improving. The `cause_class`82column labels only what is mechanically decidable (`field_populated`,83`field_cleared`, `format_only`, `value_changed`); `row_absent` means the row84stopped appearing in our build, not that the employer withdrew it. It grows by85one snapshot a day and cannot be backfilled by anyone starting later.86 87## Get told when YOUR employers file β free, no card88 89Name up to three employers (or one whole state); every daily rebuild is matched90against them and every match lands on your own alert page with an RSS feed91(plus an optional Slack / Discord / Teams webhook).92 93**[Start a free 30-day watch β](https://approj.gumroad.com/l/warn-free-watch)** Β· $0, no card, nothing renews.94 95## Paid tiers96 97| | |98|---|---|99| **[WARN Watch β $49/year](https://approj.gumroad.com/l/warn-watch)** | up to 500 employer terms + any number of whole states, matched on every daily refresh for a year. Private alert page + RSS + webhook, no login. [What it looks like](https://approjects-warn-act-notices.static.hf.space/watch.html). |100| **[Full historical archive β free](https://github.com/APVentureEngine/warn-act-notices/releases/latest)** | all 61,428 notices, 1988βpresent, 48 states, CSV + JSON + coverage metadata, rebuilt every morning. No paywalled years since 2026-09-07, no account, CC BY 4.0. |101 102The free tier is not crippled to sell these: same normalization, same columns,103same CC BY 4.0 licence.104 105## Largest employers by workers noticed in 2026 so far106 107| employer | workers noticed in 2026 | 108|---|---|109| Ideal US Talent Systems Worker OpCo | 11,973 |110| Spirit Airlines | 6,906 |111| Meta Platforms | 5,686 |112| Amazon | 5,386 |113| Republic National Distributing | 3,533 |114 115## Honest scope116 117- 48 states scraped; not covered yet: AR, NH, WY. `coverage.json` is the118 authoritative list and is regenerated on every run.119- MI, PA and SC publish no notice date at all; those rows are labelled rather120 than guessed.121- Compiled from state workforce-agency portals. Independent project, not122 affiliated with any government agency; not legal or financial advice.123- Found a bad row? [Open an issue](https://github.com/APVentureEngine/warn-act-notices/issues)124 β corrections ship the same day.125 126Source code: [github.com/APVentureEngine/warn-act-notices](https://github.com/APVentureEngine/warn-act-notices).127Underlying scrapers include Apache-2.0 code from `biglocalnews/warn-scraper`.128 129<!-- warn-feed:offer:start -->130## A layoff record you can audit, not just download131 132This dataset is one cut of a single daily rebuild: **61,428 US WARN Act133layoff notices from 48 state agencies, 1988 to today**, one schema, no134login, no delay, CC BY 4.0. Snapshot as of **2026-09-23**; the files above are135rebuilt every day, so the live count is the truth.136 137Several projects publish a current WARN scrape and two of them carry more rows138than we do. None of them publish what the records **used to say**:139 140- **2,425 observed changes to already-published notices, logged daily since 2026-08-31.**141 `data/revisions.csv` records every field that differed between two consecutive142 daily builds β employee counts, effective dates, notice types, company names β143 with the old value, the new value and the date we saw it. We publish the144 observation and not the cause: a change is equally explained by the agency145 amending the notice or by our own parser improving, and we do not guess which146 (see `data/revisions.README.txt`). A scrape that starts tomorrow cannot backfill147 any of it; it only exists if someone was watching.148- **6,799 notices whose state agency page no longer lists them.** Agencies149 take notices down. We keep them, flagged as archive-only, so a count you ran150 last year still reconciles.151- **Point-in-time employer identity.** The ticker crosswalk resolves a filer to152 the company as it existed at the time of the notice β Kmart, Sears Holdings,153 Symantec β not to whatever is on today's ticker file.154 155If you have to defend a number to an editor, a referee or a compliance reviewer,156that provenance layer is the part you cannot rebuild yourself.157[How to cite this dataset β](https://github.com/APVentureEngine/warn-act-notices/blob/main/CITATION.cff)158 159**Look something up right now β free, no signup, nothing to install.**160[Check any employer or state against the last 180 days161β](https://approjects-warn-act-notices.static.hf.space/watch-now.html) It runs in your browser against these same files.162 163**Building something with it?** The same files are a free HTTP API β JSON and164CSV, no key, no signup, `access-control-allow-origin: *` so `fetch()` works from165a browser: [endpoints, schema and curl examples β](https://approjects-warn-act-notices.static.hf.space/api.html)166 167**Prefer a spreadsheet?** One formula puts the last 90 days, the last 12 months168or any single state into Google Sheets as a live range that refreshes itself β169no signup, no add-on: [the formulas, one per state β](https://approjects-warn-act-notices.static.hf.space/sheets.html)170`=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/us-last-90-days.csv")`171 172**Backtesting, or citing a figure you published last month?** Today's file has173look-ahead and survivorship bias baked in: notices get amended after the fact and174some rows are later deleted. The same table as it stood on any past day since175**2026-08-30** β one immutable vintage per day, 24 so far, plus a first-appearance176index giving the first and last day every notice id was in the file β is the177[point-in-time snapshot archive](https://huggingface.co/datasets/APProjects/us-warn-act-layoffs-point-in-time-snapshots). Nobody can backfill it.178 179**Need one industry only?** The same filings, cut by an auditable employer-name180rule (each row keeps the rule that fired): [tech companies](https://huggingface.co/datasets/APProjects/us-tech-company-layoffs-warn-act-notices-daily)181Β· [hospitals & healthcare](https://huggingface.co/datasets/APProjects/us-hospital-healthcare-layoffs-warn-act-notices-daily)182Β· [retail store closings](https://huggingface.co/datasets/APProjects/us-retail-store-closings-layoffs-warn-act-notices-daily)183Β· [restaurants & hotels](https://huggingface.co/datasets/APProjects/us-restaurant-hotel-closings-layoffs-warn-act-notices-daily)184Β· [factory & plant closings](https://huggingface.co/datasets/APProjects/us-factory-plant-closings-manufacturing-layoffs-warn-act-notices-daily)185Β· [banks, insurance & finance](https://huggingface.co/datasets/APProjects/us-bank-insurance-finance-layoffs-warn-act-notices-daily)186Β· [warehouses, trucking & logistics](https://huggingface.co/datasets/APProjects/us-warehouse-trucking-logistics-layoffs-warn-act-notices-daily)187Β· [all 20 sectors](https://huggingface.co/datasets/APProjects/us-layoffs-by-industry-sector-warn-act).188 189**Or have it watch a list for you.** Coming back to look is the part a CSV cannot190do. **WARN Watch β $49 for a year**, one payment, nothing auto-renews, 14-day191refund, no login: up to 500 employer names plus whole states, matched on every192daily refresh, delivered to a private alert page + calendar (.ics) + RSS +193an optional Slack / Discord / Teams webhook. Every alert carries that employer's194whole filing history from the archive, which a keyword rule on an RSS feed cannot195see. There is no built-in email β we do not claim one.196 197- [See a real alert page before paying](https://approjects-warn-act-notices.static.hf.space/watch-sample.html) Β· [what you get](https://approjects-warn-act-notices.static.hf.space/watch.html)198- [Try it free for 30 days, no card](https://approj.gumroad.com/l/warn-free-watch) Β· [Buy β $49/year](https://approj.gumroad.com/l/warn-watch)199 200**Not deciding today?** [Join the update list β](https://approj.gumroad.com/subscribe) β one email when a201new dataset or tier is published; nothing promotional. A state added or a column202renamed ships in the [daily release](https://github.com/APVentureEngine/warn-act-notices/releases) instead, no address203needed. The list is204shared across APProjects datasets, holds an email address only, is run by205Gumroad, and any message unsubscribes you. Rather give no address at all?206[Watch the repo's releases](https://github.com/APVentureEngine/warn-act-notices/subscription) β GitHub notifies you on207every daily republish, and a new state or changed field is in those notes the208day it lands.209 210**Reaching a human.** WARN Feed is published by APProjects, an automated data211publisher β that is stated plainly rather than dressed up. Corrections, coverage212gaps, schema questions and refund requests all go here and are read:213[open an issue](https://github.com/APVentureEngine/warn-act-notices/issues/new/choose). Payments are handled by Gumroad as merchant of214record, so an invoice can carry your company name.215 216[Source, scrapers and methodology](https://github.com/APVentureEngine/warn-act-notices) Β· [the 48-state site](https://approjects-warn-act-notices.static.hf.space/)217<!-- warn-feed:offer:end -->218 219<!-- warn-feed:px:start -->220<img src="https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/assets/px/hf/space-warn-act-notices.png" width="1" height="1" alt="">221<sub>Card views are counted anonymously: one 1Γ1 image on a public CDN, no cookies, no script, no personal data. The count is public: <a href="https://data.jsdelivr.com/v1/stats/packages/gh/APVentureEngine/warn-act-notices@main/files?period=month">jsDelivr stats</a>.</sub>222<!-- warn-feed:px:end -->223 