CoolFace
Datasetpublic

APProjects/layoffs-2026-us-warn-act-notices-daily

US layoffs in 2026: 2,795 WARN notices, 253,791 workers - rebuilt every morning Data as of 2026-09-24. One row per WARN Act layoff notice filed with a US state agency in 2026, normalised into one schema across 45 states. Free, CC BY 4.0, no login, no API key, no delayed tier. 2,795 layoff notices filed in 2026 so far 253,791 workers named on them (a floor - see Honest scope) 45 state agencies filed at least one 1,035 most of any state: CA 9,891 largest… See the full description on the dataset page: https://huggingface.co/datasets/APProjects/layoffs-2026-us-warn-act-notices-daily.

sourceHugging Facecc-by-4.0updated 4h agoView on Hugging Face
0likes499downloads
Dataset Card

US layoffs in 2026: 2,795 WARN notices, 253,791 workers - rebuilt every morning

Data as of 2026-09-24. One row per WARN Act layoff notice filed with a US state agency in 2026, normalised into one schema across 45 states. Free, CC BY 4.0, no login, no API key, no delayed tier.

2,795layoff notices filed in 2026 so far
253,791workers named on them (a floor - see Honest scope)
45state agencies filed at least one
1,035most of any state: CA
9,891largest single notice: Ideal US Talent Systems Worker OpCo LLC (RI), filed 2026-05-05
235filed in the last 30 days

[image]

Workers named on notices filed in each month of 2026. Peak so far: May with 45,939 workers across 294 notices. Counts are floors, and the final month is still being filed into.

Why this file and not a spreadsheet someone posted

Layoff notices arrive every business day, in 46 different formats, from 46 different state portals - and states amend headcounts and rescind notices after filing. This slice is rebuilt from those portals every morning, so the 2026 picture here moves. A static copy of it is out of date within about 24 hours. If you are reading a mirror that has not changed in a week, it is missing this week's layoffs.

Want the full history instead of this year? **61,428 notices back to 1988**. Want the ones that have not happened yet? **Notices taking effect in the next 90 days**.

Quickstart

python
from datasets import load_dataset

layoffs = load_dataset("APProjects/layoffs-2026-us-warn-act-notices-daily", split="train")
by_state = load_dataset("APProjects/layoffs-2026-us-warn-act-notices-daily", "by_state", split="train")
by_month = load_dataset("APProjects/layoffs-2026-us-warn-act-notices-daily", "by_month", split="train")
top = load_dataset("APProjects/layoffs-2026-us-warn-act-notices-daily", "top_employers", split="train")
python
import pandas as pd
base = "https://huggingface.co/datasets/APProjects/layoffs-2026-us-warn-act-notices-daily/resolve/main/data/"
df = pd.read_csv(base + "layoffs_2026.csv", parse_dates=["notice_date", "effective_date"])

df.groupby("state").employees_affected.sum().nlargest(10)     # worst-hit states
df[df.company.str.contains("Amazon", case=False, na=False)]   # one employer
df[df.notice_date >= "2026-08-25"]                          # the last month

Columns

columnmeaning
idstable notice id, joins to the full archive
statetwo-letter filing state
companyemployer exactly as the state agency published it
company_canonicalnormalised employer name - this is what lets you group one company across states
locationcity / county as filed
employees_affectedworkers named on the notice; blank where the agency published none
notice_datedate the employer filed - 2026 for every row in this file
effective_datedate separations take effect, where the agency published one
notice_typelayoff / closure / permanent / temporary, as filed

Rollups: by_state is state, notices, workers; by_month is month, notices, workers; top_employers is company, notices, workers, states.

Honest scope - read this before quoting a number

  • Every worker total is a FLOOR. 72 of the 2,795 2026 notices carry no headcount from the agency. They count as zero workers, never as a guess.
  • 1,607 notices in the whole archive carry no filing date at all and therefore cannot appear in a by-filing-year slice, however recent they are. That is a gap in what states publish, not a filter we chose.
  • 2 rows in this file carry a filing date after 2026-09-24 - forward-dated or mistyped by the filing state. They are kept because that is what the agency published, and excluded from the chart.
  • Sep 2026 is a partial month - it is still being filed into. Do not read the last bar of the chart as a decline.
  • Coverage is 48 state agencies, not 50. A state that files late is invisible until it files, and absence from this file is not evidence that a company is not cutting.
  • A state's published notice_date is often the date the STATE logged the filing, not the day the employer sent it.
  • Compiled from state workforce-agency portals. Independent project, not affiliated with any government agency. Not legal, financial or employment advice.

Where it comes from, and how to check it

Every row traces to a state agency portal; the per-state sources, formats and last-checked timestamps are published at approjects-warn-act-notices.static.hf.space/sources.html. Code and the full data mirror: github.com/APVentureEngine/warn-act-notices. Corrections: open an issue - they ship the same day.

Getting told when the next one lands

Everything above is free and always will be. The one paid thing this project sells is the watching: **WARN Watch** runs your employer and state list against every daily rebuild for a year and delivers matches to a private alert page and a private RSS feed you point Slack / Discord / Teams at yourself - $49/year, one payment, no auto-renew, 14-day refund. Try it first for nothing: **free 30-day watch**, no card, up to 3 employers or one whole state.

Cite as: "WARN Feed - US layoffs 2026 (WARN Act notices filed in 2026), rebuilt 2026-09-24, huggingface.co/datasets/APProjects/layoffs-2026-us-warn-act-notices-daily".

<!-- warn-feed:offer:start -->

A layoff record you can audit, not just download

This dataset is one cut of a single daily rebuild: 61,428 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-24; 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,472 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, 24 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.

Or have it watch a list for you. Coming back to look is the part a CSV cannot do. WARN Watch — $49 for a year, one payment, nothing auto-renews, 14-day refund, no login: up to 500 employer names plus whole states, matched on every daily refresh, delivered to a private alert page + calendar (.ics) + RSS + an optional Slack / Discord / Teams webhook. Every alert carries that employer's whole filing history from the archive, which a keyword rule on an RSS feed cannot see. There is no built-in email — we do not claim one.

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/layoffs-2026-us-warn-act-notices-daily.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 -->