State Worker Classification Tests — Independent Contractor vs Employee
Which legal test each U.S. state uses to distinguish employees from independent contractors (ABC test, common law/right-to-control, or modified ABC), the statutory citation, key exemptions by industry or occupation, and the date the current test took effect.
The data
| state | test type | test scope | statutory citation | key exemptions | last amended | misclassification penalty |
|---|---|---|---|---|---|---|
| California | ABC | all | Cal. Lab. Code § 2775 | expressly made by a provision of this code, the Unemployment Insurance Code, or in an applicable order of the Industrial Welfare Commission | September 4, 2020 | |
| Delaware | ABC | unemployment-insurance | 19 Del. C. § 3302(10)(K) | Service performed by an individual in agricultural labor | ||
| Florida | common-law | unemployment-insurance | Fla. Stat. § 443.1216(1)(a)2 | A church or a convention or association of churches | ||
| Illinois | ABC | unemployment-insurance | 820 ILCS 405/212 | services performed by an individual as an operator of a truck, truck-tractor, or tractor | ||
| Massachusetts | ABC | wage-and-hour | Mass. Gen. Laws Ch. 149 § 148B | Services authorized under Chapter 149 | Criminal and civil remedies including debarment as provided in section 27C of this chapter; for workers' compensation violations, punished as provided in section 14 of said chapter 152 and civil remedies including debarment provided in section 27C | |
| Minnesota | statutory-multi-factor | all | Minn. Stat. § 181.723 | This section only applies to persons providing or performing building construction or improvement services | ||
| Nevada | statutory-multi-factor | wage-and-hour | NRS 608.0155 | |||
| Ohio | common-law | unemployment-insurance | Ohio Rev. Code § 4141.01(B)(1) | |||
| Virginia | common-law | wage-and-hour | Va. Code § 40.1-28.7:7 | a hiring party providing an individual with personal protective equipment in response to a disaster caused by a communicable disease of public health threat for which a state of emergency has been declared | liable to the aggrieved individual for the applicable remedies, damages, or other relief available | |
| Washington | modified-ABC | unemployment-insurance | RCW 50.04.140 |
Where this came from
Every record above links the page it was taken from and quotes the sentence that states it. These are the 10 sources this dataset was assembled from.
- leginfo.legislature.ca.govhttps://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB§ionNum=2775.
- delcode.delaware.govhttps://delcode.delaware.gov/title19/c033/sc01/index.html
- leg.state.fl.ushttp://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0400-0499/0443/Sections/0443.1216.html
- ilga.govhttps://www.ilga.gov/legislation/ilcs/ilcs3.asp?ActID=2434&ChapterID=68
- malegislature.govhttps://malegislature.gov/Laws/GeneralLaws/PartI/TitleXXI/Chapter149/Section148B
- revisor.mn.govhttps://www.revisor.mn.gov/statutes/cite/181.723
- leg.state.nv.ushttps://www.leg.state.nv.us/nrs/nrs-608.html
- codes.ohio.govhttps://codes.ohio.gov/ohio-revised-code/section-4141.01
- law.lis.virginia.govhttps://law.lis.virginia.gov/vacode/title40.1/section40.1-28.7:7/
- app.leg.wa.govhttps://app.leg.wa.gov/rcw/default.aspx?cite=50.04.140
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-worker-classification-tests state=California
npx -y refsource lookup state-worker-classification-tests state=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 Worker Classification Tests — Independent Contractor vs Employee", call the referencesource MCP server at https://referencesource.org/mcp (tool `search_records`, dataset_slug `state-worker-classification-tests`) 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.