diff --git a/API.md b/API.md index 782a66c526ad7f8bbeb607a3eda056178980164f..65182ce8d6630501849e0898097873d4390d3ac1 100644 --- a/API.md +++ b/API.md @@ -1,11 +1,11 @@ -# A free WARN Act API — 61,428 layoff notices, 48 states, one GET request +# A free WARN Act API — 61,431 layoff notices, 48 states, one GET request **No key, no signup, no rate limit, CORS open.** Every US state publishes the mass-layoff notices employers file under the WARN Act, and every state publishes them differently. We scrape all 48 of them every morning, normalize them into one 11-field schema, resolve the employer names, and serve the result as plain JSON and CSV over HTTPS. Rebuilt 2026-09-24; newest -notice in this build is dated 2026-09-22. CC BY 4.0 — credit "WARN Feed". +notice in this build is dated 2026-09-23. CC BY 4.0 — credit "WARN Feed". Full docs, examples and a per-state list: @@ -72,13 +72,13 @@ Source, tool reference and issues: | Endpoint | What | Records | Size | |---|---|---|---| -| [`/data/warn_notices.json`](https://approjects-warn-act-notices.static.hf.space/data/warn_notices.json) | Whole archive, JSON | 61,428 notices | 20.1 MB | -| [`/data/warn_notices.ndjson`](https://approjects-warn-act-notices.static.hf.space/data/warn_notices.ndjson) | Whole archive, NDJSON | 61,428 notices | 18.7 MB | -| [`/data/latest.csv`](https://approjects-warn-act-notices.static.hf.space/data/latest.csv) | Recent notices, CSV | 94 notices | 16 kB | -| [`/data/latest.json`](https://approjects-warn-act-notices.static.hf.space/data/latest.json) | Recent notices, JSON | 94 notices | 38 kB | +| [`/data/warn_notices.json`](https://approjects-warn-act-notices.static.hf.space/data/warn_notices.json) | Whole archive, JSON | 61,431 notices | 20.1 MB | +| [`/data/warn_notices.ndjson`](https://approjects-warn-act-notices.static.hf.space/data/warn_notices.ndjson) | Whole archive, NDJSON | 61,431 notices | 18.7 MB | +| [`/data/latest.csv`](https://approjects-warn-act-notices.static.hf.space/data/latest.csv) | Recent notices, CSV | 98 notices | 17 kB | +| [`/data/latest.json`](https://approjects-warn-act-notices.static.hf.space/data/latest.json) | Recent notices, JSON | 98 notices | 39 kB | | [`/datapackage.json`](https://approjects-warn-act-notices.static.hf.space/datapackage.json) | Schema (Frictionless Table Schema) | 11 fields | 3 kB | | [`/data/coverage.json`](https://approjects-warn-act-notices.static.hf.space/data/coverage.json) | Per-state coverage + freshness | 48 states | 11 kB | -| [`/data/stale.json`](https://approjects-warn-act-notices.static.hf.space/data/stale.json) | Sources behind their usual cadence | 13 late sources | 2 kB | +| [`/data/stale.json`](https://approjects-warn-act-notices.static.hf.space/data/stale.json) | Sources behind their usual cadence | 10 late sources | 2 kB | | [`/data/trends.json`](https://approjects-warn-act-notices.static.hf.space/data/trends.json) | Monthly series | 24 months | 56 kB | | [`/data/search-index.json`](https://approjects-warn-act-notices.static.hf.space/data/search-index.json) | Employer search index | 29,970 employers | 2.7 MB | | [`/data/badge.json`](https://approjects-warn-act-notices.static.hf.space/data/badge.json) | Shields.io endpoint badge | — | 153 B | diff --git a/COVERAGE.md b/COVERAGE.md index 61f47619a5065ca2d740b53af57dc39fcec30e69..b97d50a6df6f520f15ea795b7920321b0084baea 100644 --- a/COVERAGE.md +++ b/COVERAGE.md @@ -2,7 +2,7 @@ Which US jurisdictions publish a public WARN Act layoff-notice list, which publish none, and how far back each archive goes. -**61,428 notices · 48 publishing jurisdictions · earliest 1988 · rebuilt daily · CC BY 4.0** +**61,431 notices · 48 publishing jurisdictions · earliest 1988 · rebuilt daily · CC BY 4.0** Full page with charts: · free API: @@ -22,7 +22,7 @@ Puerto Rico, Guam and the US Virgin Islands are covered by federal WARN but run ## Every jurisdiction we publish -`Archive starts` is the earliest date **we hold** — the notice date, or the layoff date where the agency publishes no notice date (SC, MI and PA's current listing publish none; MN and IN only for some rows) — a fact about the portal's depth and our reading of it, not about when the state began requiring notices. 61,232 of 61,428 notices carry a usable date; 196 have none in either column. +`Archive starts` is the earliest date **we hold** — the notice date, or the layoff date where the agency publishes no notice date (SC, MI and PA's current listing publish none; MN and IN only for some rows) — a fact about the portal's depth and our reading of it, not about when the state began requiring notices. 61,235 of 61,431 notices carry a usable date; 196 have none in either column. | Jurisdiction | Notices | Archive starts | Latest notice | Source | | --- | ---: | ---: | ---: | --- | @@ -34,8 +34,8 @@ Puerto Rico, Guam and the US Virgin Islands are covered by federal WARN but run | New Jersey (NJ) | 2,330 | 2003 | 2026-09-01 | [New Jersey Department of Labor and Workforce Development](https://www.nj.gov/labor/employer-services/warn/) | | Michigan (MI) | 2,202 | 2000 | 2026-09-15 | [Michigan Department of Technology, Management and Budget](https://www.michigan.gov/leo/bureaus-agencies/wd/data-public-notices/warn-notices) | | Pennsylvania (PA) | 1,896 | 2011 | 2026-09-21 | [Pennsylvania Department of Labor and Industry](https://www.pa.gov/agencies/dli/programs-services/workforce-development-home/warn-requirements/warn-notices) | -| Washington (WA) | 1,517 | 2004 | 2026-09-21 | [Washington Employment Security Department](https://esd.wa.gov/employer-requirements/layoffs-and-employee-notifications/worker-adjustment-and-retraining-notification-warn-layoff-and-closure-database) | -| Oregon (OR) | 1,370 | 1988 | 2026-09-01 | [Oregon Higher Education Coordinating Commission](https://ccwd.hecc.oregon.gov/Layoff/WARN) | +| Washington (WA) | 1,519 | 2004 | 2026-09-22 | [Washington Employment Security Department](https://esd.wa.gov/employer-requirements/layoffs-and-employee-notifications/worker-adjustment-and-retraining-notification-warn-layoff-and-closure-database) | +| Oregon (OR) | 1,371 | 1988 | 2026-09-23 | [Oregon Higher Education Coordinating Commission](https://ccwd.hecc.oregon.gov/Layoff/WARN) | | Maryland (MD) | 1,277 | 2010 | 2026-09-14 | [Maryland Department of Labor](https://www.dllr.state.md.us/employment/warn.shtml) | | Indiana (IN) | 1,182 | 2008 | 2026-09-02 | [Indiana Department of Workforce Development](https://www.in.gov/dwd/warn-notices/current-warn-notices/) | | Virginia (VA) | 1,126 | 2010 | 2026-09-16 | [Virginia Employment Commission](https://www.vec.virginia.gov/warn-notices) | diff --git a/GOOGLE-SHEETS.md b/GOOGLE-SHEETS.md index 91ad82437b291043fb6f91194893b1c7837d76e2..9fa0158249bcd038306190bf3e0ae86aab9b16ea 100644 --- a/GOOGLE-SHEETS.md +++ b/GOOGLE-SHEETS.md @@ -7,7 +7,7 @@ notices that refresh themselves. No signup, no API key, no download. =IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/us-last-90-days.csv") ``` -That is every notice filed in the last 90 days — 783 rows, +That is every notice filed in the last 90 days — 786 rows, 78 KB, rebuilt every morning. The URL is the jsDelivr CDN copy of this repo's `data/sheets/` files; the daily publish purges the CDN cache after each push, and jsDelivr's per-file request counts are public, @@ -17,8 +17,8 @@ so whether anyone uses these formulas is a number, not a guess. | Slice | Rows | Size | Formula | | --- | ---: | ---: | --- | -| Every US WARN notice with a notice date in the last 90 days | 783 | 78 KB | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/us-last-90-days.csv")` | -| Every US WARN notice with a notice date in the last 12 months | 3,894 | 387 KB | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/us-last-365-days.csv")` | +| Every US WARN notice with a notice date in the last 90 days | 786 | 78 KB | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/us-last-90-days.csv")` | +| Every US WARN notice with a notice date in the last 12 months | 3,897 | 388 KB | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/us-last-365-days.csv")` | | The biggest layoffs of the last 12 months, by employees affected | 200 | 20 KB | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/largest-last-365-days.csv")` | ## One state at a time @@ -31,12 +31,12 @@ Last 12 months per state, 45 states and territories with notices: | Florida | 257 | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/by-state/fl-last-365-days.csv")` | | New York | 239 | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/by-state/ny-last-365-days.csv")` | | Texas | 171 | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/by-state/tx-last-365-days.csv")` | -| Washington | 152 | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/by-state/wa-last-365-days.csv")` | +| Washington | 154 | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/by-state/wa-last-365-days.csv")` | | Maryland | 142 | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/by-state/md-last-365-days.csv")` | | New Jersey | 137 | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/by-state/nj-last-365-days.csv")` | | Illinois | 124 | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/by-state/il-last-365-days.csv")` | | Georgia | 95 | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/by-state/ga-last-365-days.csv")` | -| Oregon | 92 | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/by-state/or-last-365-days.csv")` | +| Oregon | 93 | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/by-state/or-last-365-days.csv")` | | Ohio | 84 | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/by-state/oh-last-365-days.csv")` | | Iowa | 83 | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/by-state/ia-last-365-days.csv")` | | Virginia | 75 | `=IMPORTDATA("https://cdn.jsdelivr.net/gh/APVentureEngine/warn-act-notices@main/data/sheets/by-state/va-last-365-days.csv")` | @@ -87,7 +87,7 @@ public CSV over HTTPS with no key and no cookie. ## The whole archive -61,428 notices, about 9 MB — +61,431 notices, about 9 MB — too much for a spreadsheet. Take [`data/warn_notices.csv`](https://approjects-warn-act-notices.static.hf.space/data/warn_notices.csv), the [JSON API](https://approjects-warn-act-notices.static.hf.space/api.html), or this repo. All CC BY 4.0. diff --git a/LAYOFFS-BY-COUNTY.md b/LAYOFFS-BY-COUNTY.md index e08308d9a8708c6f7520a1013f09fe4f59555e42..193b84287bdf403c535da5deedbc3bc6be65c662 100644 --- a/LAYOFFS-BY-COUNTY.md +++ b/LAYOFFS-BY-COUNTY.md @@ -4,7 +4,7 @@ No US state workforce agency publishes a county code on its WARN Act notices; al 48 write the layoff site as free text in their own convention. This resolves that text to a **5-digit county FIPS** — the join key for Census population, BLS employment, unemployment claims and election data — and re-runs weekly over an archive rebuilt every morning. **90.8%** of all -61,428 notices are placed (96.6% of the 57,756 that name a place at +61,431 notices are placed (96.5% of the 57,759 that name a place at all; 3,672 say only Statewide / Remote / blank). 1,837 of 3,144 US counties have at least one notice. Web version with charts and a filterable table: [counties.html](https://approjects-warn-act-notices.static.hf.space/counties.html). Hugging Face dataset with the resolver script inside: [APProjects/us-layoffs-by-county-fips-warn-act](https://huggingface.co/datasets/APProjects/us-layoffs-by-county-fips-warn-act). diff --git a/LAYOFFS-BY-INDUSTRY.md b/LAYOFFS-BY-INDUSTRY.md index ca1c99ef95735dad572702a713291f0332a0a5c0..3668fd5eb98218563623fce8825dc2c654a6b67f 100644 --- a/LAYOFFS-BY-INDUSTRY.md +++ b/LAYOFFS-BY-INDUSTRY.md @@ -1,6 +1,6 @@ # US layoffs by industry sector (WARN Act, 1988-2026) -*Rebuilt 2026-09-24. 32,168 of 61,232 dated notices (52.5%; 61,428 on record, 196 lack a usable date) carry a sector assigned +*Rebuilt 2026-09-24. 32,169 of 61,235 dated notices (52.5%; 61,431 on record, 196 lack a usable date) carry a sector assigned from the employer's name by an auditable rule table; the rest are `unclassified` and stay in every total. Files: [`data/sector_by_year.csv`](data/sector_by_year.csv) · [`data/sector_by_state_year.csv`](data/sector_by_state_year.csv) · @@ -15,10 +15,10 @@ patterns, first match wins; every row records the pattern that fired). Manual au | sector | notices | workers reported | |---|---|---| -| Unclassified (name gives no sector) | 1,417 | 128,061 | +| Unclassified (name gives no sector) | 1,419 | 128,462 | | Logistics, transport & warehousing | 193 | 23,761 | | Healthcare & medical | 223 | 19,502 | -| Technology, software & electronics | 154 | 18,568 | +| Technology, software & electronics | 155 | 18,626 | | Food & beverage manufacturing, agriculture | 89 | 15,683 | | Hotels, restaurants, food service & leisure | 153 | 11,636 | | Retail | 127 | 10,688 | diff --git a/MASS-LAYOFF-STATISTICS.md b/MASS-LAYOFF-STATISTICS.md index 6b69efebf36b2eb8c6bec2a5fa2b1538cddf98b2..5da3356c37fa0615943ae1eba47e85cd05af8845 100644 --- a/MASS-LAYOFF-STATISTICS.md +++ b/MASS-LAYOFF-STATISTICS.md @@ -10,7 +10,7 @@ The Bureau of Labor Statistics ran a monthly [Mass Layoff Statistics](https://ww was eliminated on 2013-09-30 (final release 2013-06-21, May 2013 data). Nothing replaced it. This series counts every WARN Act notice covering **50 or more workers** — the Act's own mass-layoff line — by notice month, from 48 state portals, and is regenerated every day by the same -pipeline that builds this repository. 36,786 events and 6,409,627 +pipeline that builds this repository. 36,791 events and 6,410,241 workers since 1988-11. **Not a continuation of the BLS series and not spliceable onto it.** BLS MLS counted establishments @@ -36,7 +36,7 @@ in the files; keep them out of charts. | Month | Events | Workers | Closures | Layoffs | Unclassified | States | |---|---:|---:|---:|---:|---:|---:| -| 2026-09 * | 107 | 19,210 | 31 | 44 | 32 | 22 | +| 2026-09 * | 110 | 19,669 | 31 | 47 | 32 | 22 | | 2026-08 * | 156 | 25,974 | 47 | 50 | 59 | 31 | | 2026-07 | 142 | 22,737 | 40 | 46 | 56 | 29 | | 2026-06 | 160 | 20,583 | 45 | 49 | 66 | 29 | @@ -53,7 +53,7 @@ in the files; keep them out of charts. Closure / layoff comes from the states' own free-text notice type where it is unambiguous; **unclassified** is everything else, reported rather than guessed (10,137 closure · -11,305 layoff · 15,081 unclassified across all complete months). `events` and +11,307 layoff · 15,081 unclassified across all complete months). `events` and `employees_affected` are unaffected by the split. ## By year (complete months only) @@ -65,7 +65,7 @@ Closure / layoff comes from the states' own free-text notice type where it is un | 2024 | 1,959 | 305,733 | | 2023 | 1,913 | 307,067 | | 2022 | 1,122 | 165,475 | -| 2021 | 1,114 | 175,589 | +| 2021 | 1,116 | 175,744 | | 2020 | 9,591 | 1,927,179 | | 2019 | 1,721 | 266,989 | | 2018 | 1,670 | 240,302 | @@ -105,7 +105,7 @@ Early years reflect the few states that publish a deep archive, not a quieter ec ## Method, in one paragraph -Source rows are the free WARN dataset in this repository (61,428 notices +Source rows are the free WARN dataset in this repository (61,431 notices from 48 state agencies at build time). An event is one notice with `employees_affected` ≥ 50, keyed to the notice-date month (effective-date month if the notice date is missing); notices dated into a future month are dropped, not guessed. The two most recent months are diff --git a/NOTICE-PERIOD.md b/NOTICE-PERIOD.md index 3c6aac20f2a86b759ee8b2a221df66cd16fc15fa..02ce1b0939abb5bedd40d6692b13f763856f1a15 100644 --- a/NOTICE-PERIOD.md +++ b/NOTICE-PERIOD.md @@ -1,19 +1,19 @@ # How much notice did US workers actually get? 15,389 WARN notices under 60 days -*Recomputed on every daily refresh of the 61,428-notice archive (1988 to today). As of 2026-09-24.* Interactive version with charts: [https://approjects-warn-act-notices.static.hf.space/notice-period.html](https://approjects-warn-act-notices.static.hf.space/notice-period.html) +*Recomputed on every daily refresh of the 61,431-notice archive (1988 to today). As of 2026-09-24.* Interactive version with charts: [https://approjects-warn-act-notices.static.hf.space/notice-period.html](https://approjects-warn-act-notices.static.hf.space/notice-period.html) The WARN Act is a law about a number of days. Every state publishes the notices; none of them publishes the number. So this dataset computes `notice_days` = layoff (effective) date minus notice date for every notice on file, every day. | Headline | Value | |---|---:| -| Notices with both dates on file (measurable) | 31,628 | -| Gave under 60 days | **15,389** (48.66%) | +| Notices with both dates on file (measurable) | 31,632 | +| Gave under 60 days | **15,389** (48.65%) | | Workers in those short-notice filings (where a headcount was published) | 1,471,272 | | Same-day notices (layoff date = notice date) | 2,020 | | Under 14 days | 4,464 | | Median notice period | 60 days | | Excluded: layoff date precedes notice date | 12,212 | -| Excluded: no layoff date published | 12,077 | +| Excluded: no layoff date published | 12,076 | | Excluded: no notice date published | 5,511 | > **Read this before you quote any number.** This is the calendar-day gap between the two dates *as published by the state*. It is not a finding that any employer broke the law and it is not legal advice. The federal WARN Act applies only to covered employers and covered events and excuses short notice in defined circumstances (faltering company, unforeseeable business circumstances, natural disaster); several states run their own notice laws with different periods; and in several states the published notice date is the day the *state received* the filing, which can trail the day workers were told. A short interval is a question worth asking, not an answer. @@ -32,19 +32,19 @@ Share of measurable notices filed under 60 days, whole archive. States with too | Alabama (AL) | 982 | 505 | 51.4% | | Colorado (CO) | 484 | 247 | 51.0% | | Florida (FL) | 2,095 | 1,045 | 49.9% | -| Washington (WA) | 1,331 | 618 | 46.4% | +| Washington (WA) | 1,333 | 618 | 46.4% | | Ohio (OH) | 788 | 365 | 46.3% | | Kentucky (KY) | 508 | 223 | 43.9% | | Massachusetts (MA) | 266 | 105 | 39.5% | | Maryland (MD) | 1,036 | 401 | 38.7% | | Wisconsin (WI) | 463 | 177 | 38.2% | | North Carolina (NC) | 983 | 375 | 38.1% | -| Oregon (OR) | 1,173 | 438 | 37.3% | +| Oregon (OR) | 1,174 | 438 | 37.3% | | Georgia (GA) | 261 | 96 | 36.8% | | Virginia (VA) | 984 | 337 | 34.2% | | Iowa (IA) | 409 | 139 | 34.0% | | Indiana (IN) | 925 | 281 | 30.4% | -| New York (NY) | 4,192 | 1,251 | 29.8% | +| New York (NY) | 4,193 | 1,251 | 29.8% | ## By year of notice @@ -85,12 +85,12 @@ Complete years only; the current year is still running and is shown for referenc | 2018 | 1,751 | 592 | 33.8% | | 2019 | 1,968 | 810 | 41.2% | | 2020 | 4,693 | 3,369 | 71.8% | -| 2021 | 1,160 | 596 | 51.4% | +| 2021 | 1,161 | 596 | 51.3% | | 2022 | 1,397 | 791 | 56.6% | | 2023 | 2,582 | 1,563 | 60.5% | | 2024 | 2,993 | 1,417 | 47.3% | | 2025 | 3,193 | 1,305 | 40.9% | -| 2026 | 2,342 | 975 | 41.6% | +| 2026 | 2,345 | 975 | 41.6% | ## State × year, last 6 years @@ -110,20 +110,20 @@ Share under 60 days; a cell is blank when the state has fewer than 30 measurable | Maryland (MD) | 43% | 60% | 43% | 36% | 38% | 34% | | North Carolina (NC) | 26% | 28% | 21% | 17% | 18% | 25% | | Nevada (NV) | | 85% | 41% | 25% | | | -| New York (NY) | 12% | 24% | 31% | 24% | 30% | 19% | +| New York (NY) | 11% | 24% | 31% | 24% | 30% | 19% | | Ohio (OH) | | 39% | 35% | 42% | 27% | 49% | | Oregon (OR) | | | 28% | 25% | 38% | 6% | | Tennessee (TN) | | | 65% | | 50% | 67% | | Texas (TX) | 46% | 51% | 70% | 62% | 53% | 50% | | Virginia (VA) | 34% | | 45% | 27% | 32% | 22% | -| Washington (WA) | | 38% | 30% | 40% | 44% | 29% | +| Washington (WA) | | 38% | 30% | 40% | 44% | 28% | | Wisconsin (WI) | | 19% | 25% | 35% | 38% | 27% | ## Get the data -- Free per-notice CSV/JSON (1988 → today, 31,628 rows with `notice_days`): [`data/warn_notices.csv`](data/warn_notices.csv) — no login, CC BY 4.0. +- Free per-notice CSV/JSON (1988 → today, 31,632 rows with `notice_days`): [`data/warn_notices.csv`](data/warn_notices.csv) — no login, CC BY 4.0. - Whole-archive state × year summary: [`notice_period_by_state_year.csv`](https://approjects-warn-act-notices.static.hf.space/data/notice_period_by_state_year.csv) -- Every notice back to 1988 with `notice_days` (the 61,428-row archive): free, in [`data/notice_period.csv`](data/notice_period.csv) +- Every notice back to 1988 with `notice_days` (the 61,431-row archive): free, in [`data/notice_period.csv`](data/notice_period.csv) - Method, exclusions and per-state caveats: [https://approjects-warn-act-notices.static.hf.space/notice-period.html#method](https://approjects-warn-act-notices.static.hf.space/notice-period.html#method) Sources: official state labor department WARN listings, normalized by this pipeline. Best-effort public records — verify critical rows against the state source. Not affiliated with any state agency. diff --git a/README.md b/README.md index 1bff04e4bd38ef7f9a5a6e96ea82bab63d63e139..41d0827411e5d68fcd53d9c762169b73da4b1f14 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ colorTo: red sdk: static pinned: false license: cc-by-4.0 -short_description: 61,428 US WARN Act layoff notices, 48 states, free CSV +short_description: 61,431 US WARN Act layoff notices, 48 states, free CSV tags: - layoffs - warn-act @@ -24,16 +24,16 @@ custom_headers: cross-origin-resource-policy: cross-origin --- -# US WARN Act layoff notices — 61,428 notices, 48 states, rebuilt every day +# US WARN Act layoff notices — 61,431 notices, 48 states, rebuilt every day **[Open the live site →](https://approjects-warn-act-notices.static.hf.space/)** · rebuilt 2026-09-24 | | | |---|---| -| **61,428** | layoff notices on file, back to 1988 | +| **61,431** | layoff notices on file, back to 1988 | | **48** | state portals re-scraped every single day | -| **6,830,833** | workers named across those notices (all of it free, dated 1988-01-01 onward, no delay) | -| **235** | notices filed in the last 30 days (23,328 workers) | +| **6,831,447** | workers named across those notices (all of it free, dated 1988-01-01 onward, no delay) | +| **238** | notices filed in the last 30 days (23,787 workers) | | **5,545** | near-duplicate employer spellings merged onto 1,243 employers, redone every morning (Aramark alone files under 159 spellings) | | **24** | daily snapshots in the observed change log (2472 field changes / disappearances recorded since 2026-08-30) | @@ -104,7 +104,7 @@ feeds wait for your reader to ask. | | | |---|---| | **[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). | -| **[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. | +| **[Full historical archive — free](https://github.com/APVentureEngine/warn-act-notices/releases/latest)** | all 61,431 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. | The free tier is not crippled to sell these: same normalization, same columns, same CC BY 4.0 licence. @@ -132,98 +132,3 @@ same CC BY 4.0 licence. Source code: [github.com/APVentureEngine/warn-act-notices](https://github.com/APVentureEngine/warn-act-notices). Underlying scrapers include Apache-2.0 code from `biglocalnews/warn-scraper`. - - -## 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 →](https://github.com/APVentureEngine/warn-act-notices/blob/main/CITATION.cff) - -**Look something up right now — free, no signup, nothing to install.** -[Check any employer or state against the last 180 days -→](https://approjects-warn-act-notices.static.hf.space/watch-now.html) 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 →](https://approjects-warn-act-notices.static.hf.space/api.html) - -**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 →](https://approjects-warn-act-notices.static.hf.space/sheets.html) -`=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](https://huggingface.co/datasets/APProjects/us-warn-act-layoffs-point-in-time-snapshots). 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](https://huggingface.co/datasets/APProjects/us-tech-company-layoffs-warn-act-notices-daily) -· [hospitals & healthcare](https://huggingface.co/datasets/APProjects/us-hospital-healthcare-layoffs-warn-act-notices-daily) -· [retail store closings](https://huggingface.co/datasets/APProjects/us-retail-store-closings-layoffs-warn-act-notices-daily) -· [restaurants & hotels](https://huggingface.co/datasets/APProjects/us-restaurant-hotel-closings-layoffs-warn-act-notices-daily) -· [factory & plant closings](https://huggingface.co/datasets/APProjects/us-factory-plant-closings-manufacturing-layoffs-warn-act-notices-daily) -· [banks, insurance & finance](https://huggingface.co/datasets/APProjects/us-bank-insurance-finance-layoffs-warn-act-notices-daily) -· [warehouses, trucking & logistics](https://huggingface.co/datasets/APProjects/us-warehouse-trucking-logistics-layoffs-warn-act-notices-daily) -· [all 20 sectors](https://huggingface.co/datasets/APProjects/us-layoffs-by-industry-sector-warn-act). - -**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. - -- [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) -- [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) - -**Not deciding today?** [Join the update list →](https://approj.gumroad.com/subscribe) — one email when a -new dataset or tier is published; nothing promotional. A state added or a column -renamed ships in the [daily release](https://github.com/APVentureEngine/warn-act-notices/releases) 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](https://github.com/APVentureEngine/warn-act-notices/subscription) — 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](https://github.com/APVentureEngine/warn-act-notices/issues/new/choose). Payments are handled by Gumroad as merchant of -record, so an invoice can carry your company name. - -[Source, scrapers and methodology](https://github.com/APVentureEngine/warn-act-notices) · [the 48-state site](https://approjects-warn-act-notices.static.hf.space/) - - - - -Card views are counted anonymously: one 1×1 image on a public CDN, no cookies, no script, no personal data. The count is public: jsDelivr stats. - diff --git a/UPCOMING-LAYOFFS.md b/UPCOMING-LAYOFFS.md index bc8c7edc3c9ecdcb934b2e59cf75e54319a0dac1..37400fe4e28c9ab1b79f8e6b43753013d6be8513 100644 --- a/UPCOMING-LAYOFFS.md +++ b/UPCOMING-LAYOFFS.md @@ -1,7 +1,7 @@ # Upcoming US layoffs — separations dated in the next 90 days (rebuilt daily) **21,060 workers across 266 WARN notices have a separation date within 30 days.** -Over the full 90-day window: 458 notices, 44,292 workers, +Over the full 90-day window: 461 notices, 44,751 workers, 26 states. Window 2026-09-24 → 2026-12-23, built 2026-09-24. Every other layoff tracker answers *what was announced*. This answers *what has not happened yet*. @@ -74,7 +74,7 @@ days_until, notice_type`. CC BY 4.0 — credit "WARN Feed". Charted web version: | State | Notices | Workers | |---|---:|---:| | California | 205 | 9,599 | -| Washington | 35 | 8,936 | +| Washington | 37 | 9,315 | | New Jersey | 25 | 3,765 | | Texas | 22 | 3,358 | | Ohio | 12 | 3,028 | @@ -85,17 +85,17 @@ days_until, notice_type`. CC BY 4.0 — credit "WARN Feed". Charted web version: | Florida | 10 | 1,048 | | Maryland | 14 | 954 | | Tennessee | 6 | 942 | +| Oregon | 14 | 891 | | Michigan | 5 | 880 | -| Oregon | 13 | 811 | | South Carolina | 7 | 808 | ## What this list is not - The effective date is **what the state agency published**. Employers amend it, phase layoffs - over several waves, and occasionally rescind a notice. 0 rows mentioning - rescission, cancellation or withdrawal were excluded from this window. Verify against the state + over several waves, and occasionally rescind a notice. 1 row mentioning + rescission, cancellation or withdrawal was excluded from this window. Verify against the state source before acting on a row. -- **12,378 of the 61,428 notices in the archive carry no effective date at all** +- **12,377 of the 61,431 notices in the archive carry no effective date at all** and cannot appear here. This is the published, dated subset. - Every row in this window has a published headcount today. Where a state omits one it counts as zero workers. Every worker total above is therefore a **floor**, not an estimate. diff --git a/api.html b/api.html index 7ffe100e70bf42e3b4ac30bad86864707e08430c..73cc00abb67e44071a20e15025a92e81a53b1f83 100644 --- a/api.html +++ b/api.html @@ -1,7 +1,7 @@ - + @@ -11,9 +11,9 @@ Free WARN Act layoff notices API — JSON and CSV, no key, 48 states, updated daily - + - + -