CoolFace
Datasetpublic

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.

sourceHugging Facecc-by-4.0updated 3d agoView on Hugging Face
0likes983downloads
Dataset Card

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).

[image]

Two files

filerowsone row is
data/warn_notices_public_companies.csv (default)7,651one WARN notice, all the columns of us-warn-act-layoffs-notices-daily plus ticker, exchange, listed_name, confidence, match_method, match_note
data/ticker_crosswalk.csv1,582one filer string → ticker, with notice and worker counts and the latest notice date

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.

match_methodconfidencefiler stringswhat it means
exact_multi_tokenhigh429the filer string, with corporate suffixes stripped, equals a multi-word listed name exactly (e.g. Meta Platforms)
exact_single_tokenmedium304same exact match but on a ONE-word name (Boeing, Intel); one-word names can collide, so it is a separate tier
alias_manualmedium56a hand-written alias whose ticker exists in today's directory AND shares a name token with the listed name (Gap -> GAP)
subsidiarymedium46a hand-written parent relationship, written out in note (OS Restaurant Services -> BLMN, Bloomin' Brands)
alias_prefixmedium747the filer string begins with an explicitly whitelisted listed-company name (Wells Fargo Home Mortgage -> WFC); hotel brands, franchisors and bottlers are excluded from this rule on purpose

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

tickerlisted namenoticesworkers affectedfiler strings
BABoeing Company (The)42043,96715
WMTWalmart Inc.20534,74127
AMZNAmazon.com, Inc.20026,497110
MMacy's Inc17718,07491
WFCWells Fargo & Company17112,51726
BLMNBloomin' Brands, Inc.17139,3365
METAMeta Platforms, Inc.11915,32816
TAT&T Inc.958,03729
MARMarriott International8922,9125
BURLBurlington Stores, Inc.825,1461
CNKCinemark Holdings Inc Cinemark Holdings, Inc.818,1011
RTXRTX Corporation733,27114
AAPAdvance Auto Parts Inc.721,3062
CARAvis Budget Group, Inc.712,4433
QCOMQUALCOMM Incorporated696,58723
GDGeneral Dynamics Corporation685,5373
BACBank of America Corporation688,2371
INTCIntel Corporation677,8051
KODKEastman Kodak Company Common New671522
GMGeneral Motors Company6624,31120
FDXFedEx Corporation658,76520
NOCNorthrop Grumman Corporation6410,44619
UALUnited Airlines Holdings, Inc.6481,36021
VZVerizon Communications Inc.6313,37918
PFEPfizer, Inc.634,8656

Share of notices resolved, by year

yearresolvedof noticesshare
20193412,84712.0%
20201,18016,0507.4%
20212281,95811.6%
20222901,89015.3%
20237323,55720.6%
20247613,69420.6%
20256314,04015.6%
20265632,79820.1%

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 Inn or McDonald's of X filer 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.csv records 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 (see data/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 -->