Feed · composite · $0.10 per 1,000-row page
Distress Signals
9 federal distress markers, one observational composite. Each row is a business subject with the public-record markers it currently carries — WARN layoff notices, Form 5500 participant drops and final filings, IRS auto-revocations, SEC late filings, 8-K distress items and going-concern language, FMCSA authority revocations, and corroborating enforcement records — with per-marker counts, dates, and event details. Marker counts as recorded, never a “distressed company” label: the feed reports which records exist and when, and you set the decision rules.
The base: 23,207 subjects currently carrying at least one marker — 1,458 of them identifier-verified public-company subjects with ticker and CIK — distilled from 28,932 WARN notices, 246k Form 5500 sponsor filings, 1.2M IRS revocations tracked, SEC EDGAR distress filings, and daily FMCSA authority actions. Each subject is resolved to a 3.73M-entity employer graph, EIN, or CIK where the sources carry one, and every row carries event_date plus as_published_date (point-in-time discipline, no restatements).
Provenance
Six legs, nine markers
Every marker is a record type observed in a published public source, with its recency window baked into the key name (180 days, 1 year, or 2 years). A marker being present means “a record of this type exists, with these dates” — nothing more:
- State WARN Act notices (via warn-scraper)refreshed weekly
Mass-layoff and plant-closing notices published by state workforce agencies — 28,932 notices ingested, with company, worksite, workers affected, and notice/effective dates. Marker: warn_notice_180d.
https://www.dol.gov/agencies/eta/layoffs/warn
- DOL EBSA — EFAST2 Form 5500 filingsrefreshed monthly
246k+ sponsor filings with active-participant counts and final-filing indicators. Markers: active_participants_drop_20pct_yoy (a ≥20% YoY drop on a base of ≥25, computed over plans filed in both years) and final_form5500_filing.
https://www.dol.gov/agencies/ebsa/about-ebsa/our-activities/public-disclosure/foia/form-5500-datasets
- IRS — automatic revocation of tax-exempt statusrefreshed monthly
1.2M revocation records tracked; the marker fires for revocations in the last year with no reinstatement recorded. Marker: irs_auto_revocation_1y.
https://www.irs.gov/charities-non-profits/tax-exempt-organization-search-bulk-data-downloads
- SEC EDGAR — distress filingsrefreshed daily
NT 10-K/10-Q late-filing notifications, 8-Ks carrying items 1.03 (bankruptcy/receivership), 2.04 (debt acceleration), 2.05 (exit/disposal costs), or 2.06 (material impairments), and 10-K/10-Q filings with substantial-doubt going-concern language. Markers: nt_late_filing_180d, form8k_distress_item_180d, going_concern_language_1y.
https://www.sec.gov/edgar/search/
- FMCSA — operating-authority actionsrefreshed daily
Revocation/suspension orders and involuntary authority-history actions against motor carriers in the last 180 days. Marker: fmcsa_authority_revocation_180d.
https://data.transportation.gov
- DOL OSHA / EPA ECHO / DOL WHD — enforcement recordsrefreshed weekly
Open OSHA inspections, EPA facilities flagged in significant noncompliance, and WHD cases concluded within two years — added only for subjects already carrying another distress marker, as corroboration. Marker: active_enforcement_case.
https://enforcedata.dol.gov/views/data_summary.php
Subject resolution. Marker records are joined into subjects by the best identity available — resolved entity, then EIN, then normalized name + state, then CIK — and the basis is visible in subject_key. No forced links: a record that resolves nowhere stays out rather than polluting a subject.
Attestation. Every markers entry names its source table and record id, and every API response carries a signed _meta attestation plus per-leg source vintages, so any marker can be traced to the underlying public record.
Honest limits. Coverage is asymmetric by design: SEC markers cover public issuers, FMCSA markers cover DOT-regulated carriers, Form 5500 markers cover plan sponsors, and WARN tracks the ~46 states that publish notices. Subjects age out of the feed when their last marker leaves its recency window. We publish the caveats instead of hiding them.
Who buys this
Documented use cases
01Freight factoring underwriter / transportation lender
- Asks
- “Which carriers in my factoring book have an official-record distress marker on file right now — and which have more than one?”
- The feed returns
- Rows filtered on marker=fmcsa_authority_revocation_180d matched to your client roster, each with the order type and effective date in the markers detail — plus any WARN notice or enforcement record the same subject carries, with marker_count for triage.
- Action
- Freeze new advances and accelerate collection on open invoices while the carrier is still hauling — turning a likely writeoff into a recovered receivable.
02Trade-credit insurer / supplier AR team
- Asks
- “Which insured buyers were touched by two independent official-record markers inside the same 60-day window?”
- The feed returns
- min_markers=2 rows matched to your insured list: e.g. an FMCSA authority action and a WARN notice recorded weeks apart at the same subject, with per-marker dates so the 'two independent sources' escalation rule is computable from the record itself.
- Action
- Reduce the coverage limit or reprice the policy before a claim materializes, with both source records citable in the file.
03Staffing / outplacement firm — talent acquisition lead
- Asks
- “Give me a named, dated list of employers with WARN notices effective in the next 60 days near my branches.”
- The feed returns
- marker=warn_notice_180d rows filtered by state, each markers entry carrying worksite city, workers affected, and notice/effective dates — the legally mandated 60-day lead is the recruiting window.
- Action
- Pre-recruit the displaced pool weeks before competitors and pitch outplacement services to the filing employer while the notice is fresh.
04Special-situations PE / distressed-M&A deal sourcer
- Asks
- “Which companies added going-concern language and also have a WARN notice or authority loss on record?”
- The feed returns
- min_markers=2 rows where marker_keys pairs going_concern_language_1y with warn_notice_180d or fmcsa_authority_revocation_180d — auditor-certified doubt corroborated by an operational record, with CIK/EIN for your own diligence joins.
- Action
- Open a proactive restructuring, DIP-financing, or take-private conversation weeks before bankers run a formal process.
05Used-truck dealer / heavy-equipment auctioneer
- Asks
- “Which carriers just had operating authority revoked, so I can offer to buy the now-idle fleet before the repo men arrive?”
- The feed returns
- marker=fmcsa_authority_revocation_180d rows with the USDOT number and docket in the markers detail — join to the carrier-analytics feed for fleet size and address, and check for a co-occurring WARN closure notice confirming the whole operation is winding down.
- Action
- Make a direct cash-for-fleet offer to an owner who needs liquidity, buying rolling stock below auction value.
06Industrial landlord / equipment lessor — asset manager
- Asks
- “Which of my tenants and lessees carry a plant-closing notice or a revoked license on record?”
- The feed returns
- Your rent roll matched by name and state: subjects whose markers include a WARN closure at the property's city or an authority revocation, with dates — the record, not a prediction, months before a payment default.
- Action
- Start re-marketing the space, secure a letter of credit, or restructure the lease while the counterparty is still current.
07Regional bank commercial-loan workout officer
- Asks
- “Scan my C&I book weekly and escalate any borrower an official record just touched with a distress marker.”
- The feed returns
- A since=last-run pull matched to borrower names: new subjects and subjects whose last_marker_date moved, each with the specific records (WARN, 8-K item, revocation) that changed — an auditable Parse for covenant review.
- Action
- Invoke material-adverse-change review and tighten the credit before default, with the official record attached to the memo.
Set these up as live Parses — recipes and delivery mechanics →
Schema
Fields & sample rows
| Field | Type | Description |
|---|---|---|
| subject_key | text | Stable subject identity and cursor key: entity:<uuid> | ein:<EIN> | name:<norm name>|<state> | cik:<CIK> (best identity available). |
| entity_id | uuid | Resolved FirmStanding employer entity where the 3.7M-entity graph has a match; joins to the enforcement feed and /v1/business360. |
| ein / cik | text | Employer Identification Number / SEC Central Index Key, where a source leg carried one. |
| ticker | text | Primary SEC ticker, set only for identifier-verified matches (CIK or EIN) to the current SEC company_tickers universe. A distinctive-name-only match never sets a ticker. |
| is_public_company | boolean | True only when ticker is set via a CIK or EIN match. Most subjects are private — false is the common, correct value. |
| ticker_match_basis | text | How the ticker mapping was made: cik | ein (identifier-verified) | name_candidate (a unique distinctive-name match to an SEC registrant exists but is flagged only — no ticker asserted) | null. |
| display_name | text | Subject name as filed with the contributing source(s). |
| state | text | Subject state as filed; null for subjects identified only by EIN/CIK. |
| marker_count | integer | Distinct marker types currently present (1-9). An observational count of record types, never a score. |
| marker_keys | text[] | Sorted marker keys present (warn_notice_180d, going_concern_language_1y, ...). |
| markers | jsonb | Per-marker detail: {<marker>: {event_count, latest_date, events[<=20]}} with source table, record ids, dates, and leg-specific fields (workers_affected, pct_change, form_type, order_type, ...). |
| first_marker_date | date | Earliest event date across the subject's markers. |
| last_marker_date | date | Latest event date across the subject's markers — the feed's `since` axis. |
| as_published_date | date | Composite build date — when this row's marker set was published. Marker events are never restated; corrections arrive as new source vintages (point-in-time discipline). |
Full data dictionary — including the per-marker key table with source agency, URL, and cadence — ships with the feed (docs/feeds/distress-signals.dictionary.md) and in every Snowflake / Datarade listing.
| subject_key | display_name | state | marker_count | marker_keys | last_marker_date |
|---|---|---|---|---|---|
| ein:264273474 | OFFICE PROPERTIES INCOME TRUST | MA | 3 | form8k_distress_item_180d; going_concern_language_1y; nt_late_filing_180d | 2026-06-23 |
| cik:1840416 | Sono Group N.V. | null | 3 | form8k_distress_item_180d; going_concern_language_1y; nt_late_filing_180d | 2026-05-19 |
| entity:043dc7bf… | Five Guys Operations | CA | 2 | active_enforcement_case; warn_notice_180d | 2026-04-30 |
| entity:d2aeca02… | WAGNER EQUIPMENT CO. | CO | 2 | active_enforcement_case; fmcsa_authority_revocation_180d | 2026-07-21 |
Real rows from GET /v1/feeds/distress-signals (public records as filed; columns abridged, entity uuids truncated). Every row also carries the full markers object with per-marker event counts, dates, and up to 20 event details per marker.
Pricing & access
Three ways to buy
Self-serve API
$0.10 / page
up to 1,000 rows per page-call — live today
- Full feed, every filter, opaque keyset cursor
- Pay per use: x402 (USDC, no account) or a metered API key
- Signed _meta attestation and source vintages on every response
- No seat licenses, no minimums, no sales call
Enterprise
$10,000 / yr
flat annual license
- Bulk daily or weekly drops (CSV / Parquet) to your bucket
- Webhook alerts on new rows matching your saved filters
- Private Snowflake share of the same tables
- Email support and a named contact
Institutional
Private offer
the tier comparable products price at $40–85k/yr
- Everything in Enterprise
- Ticker/CIK-mapped rows — identifier-verified against the SEC registrant universe, match basis disclosed
- Point-in-time discipline: event_date + as_published_date on every row, no restatements, vintage history retained
- Delivery SLA, methodology documentation, and diligence support for your data-sourcing review
- $0.10 per page-call — each call returns up to 1,000 flat rows. Drain any window with repeated cursor calls; the opaque keyset cursor never skips or double-counts a row.
- Pay-per-use, two ways: x402 (USDC, no account needed — pay per request) or a metered API key with monthly billing.
- Warehouse-native delivery: the same feeds are listed on Datarade and coming to Snowflake Marketplace (listings submitted, in review) — enterprise buyers get a private Snowflake share today — plus CSV export for flat-file workflows.
- Full machine-readable endpoint definitions (parameters, output shape, prices) live in the catalog at api.govparse.io/v1/catalog; dataset license terms at api.govparse.io/v1/license/firmstanding.
curl "https://api.govparse.io/v1/feeds/distress-signals?min_markers=2&state=CA&limit=500" \
-H "x-api-key: gp_live_..."GET https://api.govparse.io/v1/feeds/distress-signals
Usage notice
Public-source federal records matched to employers by normalized name and address; match tiers and confidence are disclosed on every response. FirmStanding is not a consumer reporting agency and this is not a consumer report. Not for use in determining eligibility for employment, credit, insurance, tenancy, or any other purpose regulated by the Fair Credit Reporting Act (FCRA).
Start pulling pages today.
No sales call. First page is one x402 payment away, or grab a metered key.