APProjects/us-layoffs-by-stock-ticker-warn-act-notices-public-companies
US layoffs by stock ticker: 7,651 WARN Act notices filed by 735 listed companies, with confidence tiers Rebuilt 2026-09-25. State WARN Act filings name the employer as the filer wrote it — Wells Fargo Home Mortgage, OS Restaurant Services, Boeing Compnay — never a ticker. This dataset resolves those strings to the listed parent and re-derives the mapping every day as new filer strings appear. 1,582 filer strings → 735 tickers → 7,651 notices (1988-12-16 → 2026-09-22), 1,007,238… See the full description on the dataset page: https://huggingface.co/datasets/APProjects/us-layoffs-by-stock-ticker-warn-act-notices-public-companies.
US layoffs by stock ticker: 7,651 WARN Act notices filed by 735 listed companies, with confidence tiers
Rebuilt 2026-09-25. State WARN Act filings name the employer as the filer wrote it — Wells Fargo Home Mortgage, OS Restaurant Services, Boeing Compnay — never a ticker. This dataset resolves those strings to the listed parent and re-derives the mapping every day as new filer strings appear.
1,582 filer strings → 735 tickers → 7,651 notices (1988-12-16 → 2026-09-22), 1,007,238 workers affected as printed by the agencies. That is 2,687 of the 14,089 notices dated 2023 or later (19.1%). The other ~81% of those notices come from private companies, nonprofits, public bodies, subsidiaries we have not mapped yet, or companies that were listed at the time and are not on today's exchange directory (see What is deliberately not here).
Two files
How confident each row is — filter on it
Every row carries confidence and match_method. Nothing here is checked by a person; the tier tells you what the code did.
Two rails run before any row is emitted: a deny-list of known collisions (Compass Group, the LSE caterer, is not Compass Inc., the US brokerage; The Well is a venue, not American Well), and a live check that every hand-written alias resolves to a ticker present in today's Nasdaq Trader directory. The build refuses to run if an alias fails that check — that is how Nordstrom → JWN was caught the day it would have shipped (Nordstrom went private in 2025).
Top listed employers by WARN notices
Share of notices resolved, by year
The share rises in recent years because filer strings are cleaner and the alias tables were written against them; older strings (Sears, Roebuck and, Montgomery Ward) belong to companies that are no longer listed and are held back on purpose.
What is deliberately not here
- Delisted, acquired or bankrupt filers — Kmart, Sears, Sun Microsystems, Rite Aid, JC Penney, Spirit Airlines, Walgreens, Nordstrom and 22 others are recorded in the build script as historical and NOT given a ticker, because a ticker that cannot be validated against a current directory is worse than a blank. A point-in-time company file is the roadmap item.
- Foreign-listed parents — BAE Systems, DHL, Compass Group (Crothall, Morrison), Ahold Delhaize (Food Lion), FirstGroup (First Student): no US common-stock listing, so no row.
- Franchise brands — a
Hilton Garden InnorMcDonald's of Xfiler is usually a franchisee, so hotel, restaurant and bottler brand names are excluded from prefix matching and only appear when the filer string is the listed company itself.
Universe: Nasdaq Trader nasdaqlisted.txt + otherlisted.txt (all US-listed common stock and ADRs; ETFs, test issues and preferred shares removed) — 6,371 operating entities on 2026-09-25. Notices: the free published file of us-warn-act-layoffs-notices-daily. Per-employer filing histories for these and every other filer are in us-warn-act-employer-layoff-history.
Corrections are wanted. A wrong ticker discredits the file; if you find one, open an issue naming the filer string and the row id and it is added to the deny-list with a reason on the next build.
<!-- warn-feed:offer:start -->
A layoff record you can audit, not just download
This dataset is one cut of a single daily rebuild: 61,431 US WARN Act layoff notices from 48 state agencies, 1988 to today, one schema, no login, no delay, CC BY 4.0. Snapshot as of 2026-09-25; the files above are rebuilt every day, so the live count is the truth.
Several projects publish a current WARN scrape and two of them carry more rows than we do. None of them publish what the records used to say:
- 2,482 observed changes to already-published notices, logged daily since 2026-08-31.
data/revisions.csvrecords every field that differed between two consecutive daily builds — employee counts, effective dates, notice types, company names — with the old value, the new value and the date we saw it. We publish the observation and not the cause: a change is equally explained by the agency amending the notice or by our own parser improving, and we do not guess which (seedata/revisions.README.txt). A scrape that starts tomorrow cannot backfill any of it; it only exists if someone was watching. - 6,799 notices whose state agency page no longer lists them. Agencies take notices down. We keep them, flagged as archive-only, so a count you ran last year still reconciles.
- Point-in-time employer identity. The ticker crosswalk resolves a filer to the company as it existed at the time of the notice — Kmart, Sears Holdings, Symantec — not to whatever is on today's ticker file.
If you have to defend a number to an editor, a referee or a compliance reviewer, that provenance layer is the part you cannot rebuild yourself. How to cite this dataset →
Look something up right now — free, no signup, nothing to install. Check any employer or state against the last 180 days → It runs in your browser against these same files.
Building something with it? The same files are a free HTTP API — JSON and CSV, no key, no signup, access-control-allow-origin: * so fetch() works from a browser: endpoints, schema and curl examples →
Prefer a spreadsheet? One formula puts the last 90 days, the last 12 months or any single state into Google Sheets as a live range that refreshes itself — no signup, no add-on: the formulas, one per state → =IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/us-last-90-days.csv")
Backtesting, or citing a figure you published last month? Today's file has look-ahead and survivorship bias baked in: notices get amended after the fact and some rows are later deleted. The same table as it stood on any past day since 2026-08-30 — one immutable vintage per day, 25 so far, plus a first-appearance index giving the first and last day every notice id was in the file — is the point-in-time snapshot archive. Nobody can backfill it.
Need one industry only? The same filings, cut by an auditable employer-name rule (each row keeps the rule that fired): tech companies · hospitals & healthcare · retail store closings · restaurants & hotels · factory & plant closings · banks, insurance & finance · warehouses, trucking & logistics · all 20 sectors.
Need it shaped differently? The vintages, the change log and the ticker mapping are all free and rebuilt daily, but a bias-free panel is usually a join someone has to write: vintages against the public-company ticker mapping, a single as-of reconstruction for a fixed date range, a first-reported/amended/ deleted event table, or a coverage question for a specific state and period. That join is what we do as paid work, quoted per request rather than listed at a price, because every ask so far has had a different shape. Say what the panel needs to look like and what you would use it for: open an issue — it is read, and a quote comes back with the method written out.
Two things worth stating plainly before you ask. A snapshot is what this pipeline published that day, not a certified record of what the agency's site displayed. And the vintages begin at the archive's first snapshot, not 1988 — the NOTICES go back to 1988, the SNAPSHOTS do not, and no payment changes that.
Tracking named employers rather than backtesting? WARN Watch — $49 for a year, one payment, no auto-renew, 14-day refund: up to 500 employer names plus whole states matched on every daily refresh, to a private alert page + .ics + RSS + optional Slack / Discord / Teams webhook. See a real alert page · try it free for 30 days, no card
Not deciding today? Join the update list → — one email when a new dataset or tier is published; nothing promotional. A state added or a column renamed ships in the daily release instead, no address needed. The list is shared across APProjects datasets, holds an email address only, is run by Gumroad, and any message unsubscribes you. Rather give no address at all? Watch the repo's releases — GitHub notifies you on every daily republish, and a new state or changed field is in those notes the day it lands.
Reaching a human. WARN Feed is published by APProjects, an automated data publisher — that is stated plainly rather than dressed up. Corrections, coverage gaps, schema questions and refund requests all go here and are read: open an issue. Payments are handled by Gumroad as merchant of record, so an invoice can carry your company name.
Source, scrapers and methodology · the 48-state site <!-- warn-feed:offer:end -->
<!-- warn-feed:px:start --> <img src="https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/assets/px/hf/us-layoffs-by-stock-ticker-warn-act-notices-public-companies.png" width="1" height="1" alt=""> <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> <!-- warn-feed:px:end -->
