State OSHA plan civil penalty maximums by violation type compared with federal
Maximum civil penalty amounts for workplace safety violations in each OSHA-approved State Plan, compared with the federal OSHA baseline. Each record is one state-plan jurisdiction and one violation type (serious, willful, repeat, other-than-serious, failure-to-abate, regulatory/posting). Gives the state's maximum and minimum penalty, the corresponding federal amount, and key structural differences in how the penalty is computed (severity tiers, employer-size reductions, good-faith adjustments). Answers 'what is the maximum fine for a serious OSHA violation in [state]' and 'how does [state]'s penalty structure differ from federal OSHA'. Special note for 2026: the October 2025 CPI-U was not produced due to the government shutdown, so federal penalties were not adjusted — but some state plans (CA, OR) adjusted independently, widening the gap.
The data
| Jurisdiction | Violation type | Penalty maximum | Federal maximum | Effective date | Computation method | Statute citation | Penalty minimum |
|---|---|---|---|---|---|---|---|
| California | failure-to-abate | $15,000 | $16,550 | January 1, 2025 | Daily additional penalty based on initial Gravity-based penalty, adjusted for Size, Good Faith, and History at time of reinspection; may be reduced up to 90% for first 120 days for regulatory/general, up to 50% thereafter | Cal. Code Regs. tit. 8, § 336(f) | |
| California | other-than-serious | $16,285 | $16,550 | January 1, 2025 | General violation: base penalty $1,000–$2,000 based on Severity (Low/Medium/High), adjusted for Extent (±25%) and Likelihood (±25%), then Size, Good Faith, History; 50% abatement credit | Cal. Code Regs. tit. 8, § 336(b) | |
| California | regulatory | $16,285 | $16,550 | January 1, 2025 | Minimum proposed penalty of $500 representing gravity; adjusted for Size, Good Faith, and History; no abatement credit | Cal. Code Regs. tit. 8, § 336(a) | $500 |
| California | repeat | $162,851 | $165,514 | January 1, 2025 | 1st repeat: Proposed Penalty x2; 2nd repeat: x4; 3rd repeat: x10; not subject to adjustment other than Size | Cal. Code Regs. tit. 8, § 336(g) | |
| California | serious | $25,000 | $16,550 | January 1, 2025 | Initial base penalty of $18,000, adjusted for Extent (±25%) and Likelihood (±25%) to get Gravity-based penalty, then further adjusted for Size (up to 40% for ≤10 employees), Good Faith (up to 30%), and History (up to 10%); abatement credit of 50% available if abated before citation or within abatement period | Cal. Code Regs. tit. 8, § 336(c) | |
| California | willful | $162,851 | $165,514 | January 1, 2025 | Proposed Penalty multiplied by five; minimum $11,632, maximum $162,851 | Cal. Code Regs. tit. 8, § 336(h) | $11,632 |
| Federal | failure-to-abate | $16,550 | $16,550 | January 15, 2026 | Up to $16,550 per day beyond abatement date, generally limited to 30 days maximum | 29 C.F.R. 1903.15 | |
| Federal | other-than-serious | $16,550 | $16,550 | January 15, 2026 | Only minimal severity assigned; Area Director may propose up to $16,550 for deterrent effect | 29 C.F.R. 1903.15 | $0 |
| Federal | posting | $16,550 | $16,550 | January 15, 2026 | Same as other-than-serious | 29 C.F.R. 1903.15 | $0 |
| Federal | repeat | $165,514 | $165,514 | January 15, 2026 | Gravity-based penalty with size, history, good faith adjustments; minimum $472 for repeated OTS with no initial penalty | 29 C.F.R. 1903.15 | $4,256 |
| Federal | serious | $16,550 | $16,550 | January 15, 2026 | Gravity-based penalty using severity x probability scale; high gravity = $16,550, moderate = $9,457–$14,187, low = $7,093; reduced by size (up to 70% for 1–25 employees), history (up to 20%), and good faith (up to 25%) | 29 C.F.R. 1903.15 | $1,085 |
| Federal | willful | $165,514 | $165,514 | January 15, 2026 | Minimum $11,823 required by statute; gravity-based penalty with size, history, good faith adjustments | 29 C.F.R. 1903.15 | $11,823 |
| Nevada | failure-to-abate | $16,550 | $16,550 | January 15, 2025 | Mirrors federal per SB 40 (2019); per day unabated beyond abatement date, generally limited to 30 days maximum | SB 40 (2019 Legislative Session) | |
| Nevada | other-than-serious | $16,550 | $16,550 | January 15, 2025 | Mirrors federal per SB 40 (2019); automatically adopts federal penalty amounts | SB 40 (2019 Legislative Session) | |
| Nevada | posting | $16,550 | $16,550 | January 15, 2025 | Mirrors federal per SB 40 (2019); automatically adopts federal penalty amounts | SB 40 (2019 Legislative Session) | |
| Nevada | repeat | $165,514 | $165,514 | January 15, 2025 | Mirrors federal per SB 40 (2019); automatically adopts federal penalty amounts | SB 40 (2019 Legislative Session) | |
| Nevada | serious | $16,550 | $16,550 | January 15, 2025 | Mirrors federal per SB 40 (2019); automatically adopts federal penalty amounts | SB 40 (2019 Legislative Session) | |
| Nevada | willful | $165,514 | $165,514 | January 15, 2025 | Mirrors federal per SB 40 (2019); automatically adopts federal penalty amounts | SB 40 (2019 Legislative Session) | |
| Oregon | failure-to-abate | $16,550 | January 1, 2026 | Per OAR 437-001-0135 through 437-001-0203; specific failure-to-abate amounts not listed in this summary sheet | OAR 437-001-0135 through 437-001-0203 | ||
| Oregon | other-than-serious | $300 | $16,550 | January 1, 2026 | Low probability = $0, High probability = $300; first-instance only | OAR 437-001-0135 through 437-001-0203 | $0 |
| Oregon | repeat | $170,046 | $165,514 | January 1, 2026 | First-instance serious initial penalty x4 for 1st repeat, x6 for 2nd, x8 for 3rd; OTS repeat = $12,147; size reduction of $7,618 for employers with ≤50 employees | OAR 437-001-0135 through 437-001-0203 | $12,147 |
| Oregon | serious | $17,004 | $16,550 | January 1, 2026 | Severity x Probability matrix; base penalties from $3,643 (Low/Low) to $17,004 (High/High or death); adjusted for good faith (±20%), size (up to 75% for 1–10 employees), history (±10%), immediate correction (10%) | OAR 437-001-0135 through 437-001-0203 | $1,214 |
| Oregon | willful | $170,046 | $165,514 | January 1, 2026 | Severity x Probability matrix for serious-rated; OTS willful = $12,147; serious physical harm from $27,206 to $54,412, death from $81,617 to $141,470 | OAR 437-001-0135 through 437-001-0203 | $12,147 |
| Washington | other-than-serious | $200 | $16,550 | February 17, 2025 | First time nonstatutory general violation = $0; base penalty $200 used for willful, repeat, or failure-to-abate calculations | WAC 296-900-14010; RCW 49.17.180 | $0 |
| Washington | serious | $16,550 | $16,550 | February 17, 2025 | Gravity = Severity (1–3) x Probability (1–3); base penalties from $1,020 to $7,140 + Inflation Factor + 2% catch-up; adjusted for size, good faith, history; minimum $100 required by statute | WAC 296-900-14010; RCW 49.17.180 | $100 |
Where this came from
Every record above links the page it was taken from and quotes the sentence that states it. These are the 5 sources this dataset was assembled from.
- dir.ca.govhttps://www.dir.ca.gov/title8/336.html
- osha.govhttps://www.osha.gov/memos/2026-05-21/2026-annual-adjustments-osha-civil-penalties
- business.nv.govhttps://www.business.nv.gov/news-media/press-releases/2025/industrial-relations/nevada-osha-s-2025-workplace-safety-violation-penalties-increase-in-accordance-with-federal-adjustment-for-inflation/
- osha.oregon.govhttps://osha.oregon.gov/OSHAPubs/5632-2026.pdf
- app.leg.wa.govhttps://app.leg.wa.gov/wac/default.aspx?cite=296-900-14010
Machine-readable
- data.jsonThe whole dataset — every record with its source URL and source quote.
- Open Knowledge Format bundleOne JSON object per line — every record's frontmatter and quoted span exactly as it is held here, in one fetch.
- data.csvThe same records as one flat table, for a spreadsheet or a dataframe. The last four columns are the source URL, the quoted sentence it was read from, the date we last checked it, and which columns are our reading rather than the page's words.
- How this is made and checkedWhat "verified against source" does and does not mean.
From your own code
Same records, same quotes, without scraping the page: refsource is on PyPI and npm. Each value comes back carrying the URL it was read from and the sentence on that page that states it — .source and .quote sit on the value itself rather than in a side channel, so the checking step is available instead of skipped.
pip install refsource
refsource lookup state-osha-plan-penalty-maximums jurisdiction=California
npx -y refsource lookup state-osha-plan-penalty-maximums jurisdiction=California
Set your AI assistant up to use this
Two files and no account. Put this in .mcp.json at the root of your project — Claude Code, Cursor, Windsurf, VS Code and Codex all read that file — and your assistant can look this dataset up instead of recalling it. The server is remote, keyless and read-only.
{
"mcpServers": {
"referencesource": {
"type": "http",
"url": "https://referencesource.org/mcp"
}
}
}Add to Cursor · or, on the command line: claude mcp add --transport http referencesource https://referencesource.org/mcp --scope project
Then one line in the project's CLAUDE.md or AGENTS.md, so the assistant knows when to reach for it:
When a question needs "State OSHA plan civil penalty maximums by violation type compared with federal", call the referencesource MCP server at https://referencesource.org/mcp (tool `search_records`, dataset_slug `state-osha-plan-penalty-maximums`) instead of answering from memory — every record it returns carries its source URL and a verbatim quote from that page.What each tool does, and the servers built over single registers: Connect your AI assistant.