SEC enforcement releases - aggregate trend
SEC Enforcement Peaked in 2023 — and Has Fallen Every Year Since.
SEC enforcement output peaked at 425 published actions in 2023, then fell to 352 in 2024, 271 in 2025, and 129 in partial 2026 through 2026-06-25. Across the full committed snapshot, 3,317 of 15,183 actions are AAER rows - 21.8%, roughly one in five. Aggregate counts only; no respondent or release-level row is rendered.
Key findings
published SEC enforcement actions in 2023, the highest year in the 2020-2026 snapshot series. The count falls to 352 in 2024, 271 in 2025, and 129 in partial 2026.
drop from the 2023 peak to the latest full year, 2025: 425 actions to 271 actions.
published actions are in the committed SEC enforcement snapshot: 11,866 litigation releases plus 3,317 Accounting and Auditing Enforcement Releases.
of all actions are AAER rows, the SEC accounting-and-auditing enforcement release series. That is about one in five published actions in this snapshot.
actions appear in 2026 through the snapshot date, 2026-06-25. The 2026 row is partial and should not be cited as a full-year total.
At a glance
Published actions by year
The trend line below combines Litigation Releases and AAER rows by publication year. The 2026 row is partial through the 2026-06-25 snapshot date; it is included because the study is a dated source snapshot, not a live forecast.
| Year | Published actions | Period note |
|---|---|---|
| 2020 | 388 | calendar year |
| 2021 | 369 | calendar year |
| 2022 | 392 | calendar year |
| 2023 | 425 | calendar year |
| 2024 | 352 | calendar year |
| 2025 | 271 | calendar year |
| 2026 | 129 | partial through June 2026 |
Release-category composition
Litigation Releases make up most of the long-run table, but the accounting-and-auditing release series is a material layer: 21.8% of all rows in this committed snapshot.
| Category | Actions | Share |
|---|---|---|
| Litigation Releases | 11,866 | 78.2% |
| Accounting and Auditing Enforcement Releases (AAER) | 3,317 | 21.8% |
What this counts - and what it does not
- Counts published release rows. The study counts rows in
public.sec_enforcement_actions, split intolitigation_releaseandaaer. - Aggregate-only. The page and downloads name zero respondents, companies, auditors, officers, lawyers, or individuals.
- No misconduct finding. A row count is not a finding about any specific action, party, industry, issuer, or period.
- Partial 2026. The 2026 count is through 2026-06-25. Treat it as year-to-date, not a full-year total.
Methodology
The study aggregates public.sec_enforcement_actions, a warehouse table populated from the SEC Litigation Releases and Accounting and Auditing Enforcement Releases listing pages. The first query counts current rows by release_category. The second query groups current rows by extract(year from publish_date).
The figures on this page are baked into a committed TypeScript snapshot. The SQL below is included for re-checking, but the page does not query a live database at request time and does not require database credentials to render.
The provenance is limited to the two SEC listing pages, the 2026-06-25 snapshot date, and the aggregate SQL shown below. No release caption is used as a public finding on this page.
Reproduce this
Re-run the aggregate queries below against the SEC enforcement table:
-- SEC Enforcement Peaked in 2023 — and Has Fallen Every Year Since.
-- Source table: public.sec_enforcement_actions.
-- Snapshot: 2026-06-25.
-- Aggregate-only: these queries publish counts, not respondent captions or release-level records.
WITH current_actions AS (
SELECT release_category, publish_date
FROM public.sec_enforcement_actions
WHERE valid_to IS NULL
AND snapshot_date = DATE '2026-06-25'
)
SELECT
count(*) FILTER (WHERE release_category = 'litigation_release') AS litigation_releases,
count(*) FILTER (WHERE release_category = 'aaer') AS aaer,
count(*) AS total_actions,
round(
100.0 * count(*) FILTER (WHERE release_category = 'aaer') / nullif(count(*), 0),
1
) AS aaer_share_pct
FROM current_actions;
-- Expected: litigation_releases 11,866; aaer 3,317; total_actions 15,183; aaer_share_pct 21.8.
WITH current_actions AS (
SELECT publish_date
FROM public.sec_enforcement_actions
WHERE valid_to IS NULL
AND snapshot_date = DATE '2026-06-25'
AND publish_date >= DATE '2020-01-01'
AND publish_date < DATE '2027-01-01'
)
SELECT extract(year FROM publish_date)::int AS year, count(*) AS total_actions
FROM current_actions
GROUP BY 1
ORDER BY 1;
-- Expected: 2020 388; 2021 369; 2022 392; 2023 425; 2024 352; 2025 271; 2026 129.
- Download SQL - the same query string served from the TypeScript constant.
- Download JSON - the committed aggregate snapshot.
- Download CSV - the year table.
Re-check the source snapshot
The source line is re-checkable: SEC Litigation Releases plus AAER listing pages, snapshot 2026-06-25. The raw source archive is part of the signed, attested, chained ingest record, and the public page is tied to this committed aggregate snapshot rather than a live query. Use Fonteum re-check for source snapshot audit work.
How to cite this
Fonteum (2026). SEC Enforcement Peaked in 2023 — and Has Fallen Every Year Since. Derived from SEC Litigation Releases and Accounting and Auditing Enforcement Releases, snapshot 2026-06-25. https://fonteum.com/gov/research/sec-enforcement-trend-2026
Canonical URL: https://fonteum.com/gov/research/sec-enforcement-trend-2026 · License: U.S. Government Works (public domain; 17 U.S.C. §105)
Related government evidence
- The US + EU Sanctions Universe →
- The UN Consolidated Sanctions List, Profiled →
- Federal Suspension & Debarment Scorecard →
- The Name-Only Exclusion List - SAM.gov identifier coverage →
- The Leakage Report - contracts awarded during an active exclusion →
- The State of Federal Contractor Integrity 2026 →
- Government records evidence - all studies →
Limitations
- The study counts published release rows, not investigations, penalties, settlement amounts, defendants, issuers, auditors, or unique parties.
- The AAER source page says the list highlights certain financial-reporting-related enforcement actions and is not a complete compilation of every action in that category.
- The 2026 row is partial through 2026-06-25; it should be re-run after year-end before being cited as a complete annual value.
- The page does not split respondent captions, infer identities, classify industries, assign severity labels, or score any party.
Sources
Two primary government sources: SEC Litigation Releases and SEC Accounting and Auditing Enforcement Releases. The committed snapshot date is 2026-06-25.
Source: U.S. Securities and Exchange Commission Litigation Releases and Accounting and Auditing Enforcement Releases, snapshot 2026-06-25. U.S. Government Works. AAER highlights certain financial-reporting-related actions and is not exhaustive.
SEC Litigation Releases · SEC Accounting and Auditing Enforcement Releases
Frequently asked questions
When did SEC enforcement output peak in this snapshot?
The combined SEC Litigation Releases plus AAER series peaks in 2023, with 425 published actions. The next rows are lower: 352 in 2024, 271 in 2025, and 129 in partial 2026 through 2026-06-25.
How large is the AAER accounting-and-auditing layer?
The committed snapshot contains 3,317 Accounting and Auditing Enforcement Releases out of 15,183 total actions, or 21.8%. That is about one in five published actions in the combined SEC enforcement-release table.
Does this page name any respondent, company, auditor, or individual?
No. The study reports only aggregate counts by release category and publication year. It does not render respondent captions, release titles, company names, individual names, or any per-release row.
Is the 2026 row a final annual count?
No. The 2026 row is partial through the 2026-06-25 snapshot. It is included to show the current published count in the same source table, but it should be re-run after year-end before being cited as a full-year figure.
How can I reproduce the figures?
Run the aggregate SQL in the Reproduce this block against public.sec_enforcement_actions. The queries count rows by release_category and by extract(year from publish_date). The page uses a committed snapshot, so it does not need live database credentials to render.