Reference Source

US state hazardous waste generator annual fees by category

State-by-state annual registration and compliance fees for hazardous waste generators. Each record is one state’s fee for one generator category (VSQG, SQG, LQG, transporter, TSD facility), with the dollar amount, the fee basis (flat annual, per-ton, revenue-based), the due date, and the legal citation. Answers 'what is the annual hazardous waste fee for an SQG in [state]', 'which states charge VSQGs', 'what are the hazardous waste fees in North Carolina vs Vermont'. Fees range from $75 (Vermont VSQG) to $3,880+ (Massachusetts SQG) — a 50× range across states for equivalent generator categories.

Records29
Sources9
Verified
Review by
Licenceunknown

The data

StateGenerator CategoryAnnual FeeFee BasisDue DateEffective DateLegal CitationTonnage Fee
WashingtonAll generators$69flat annual (revenue-based threshold: applies if gross income exceeded $12,000)August 202025RCW 70A.300
New JerseyCESQG$50flat annual (adjusted annually)N.J.A.C. 7:26G-3.3
North CarolinaDisposer$1,992flat annualJuly 1, 2025N.C.G.S. 130A-294.1$2.45/ton received (commercial facilities only)
IllinoisIncineration Facility$4,000flat annual415 ILCS 5/22.15
District of ColumbiaLQG$1,000flat annualMarch 120 DCMR 4390
IllinoisLQG$500flat annual415 ILCS 5/22.15
IowaLQG$250flat annualApril 15Iowa Code 455B.424
New JerseyLQG$940flat annual (adjusted annually)N.J.A.C. 7:26G-3.3
North CarolinaLQG$1,660flat annualJuly 1, 2025N.C.G.S. 130A-294.1$0.70/ton generated
VermontLQG$600flat annualApril 3010 VSA Section 6608(f)
VirginiaLQG$1,000flat annualAugust 27, 20149VAC20-60-1285
WisconsinLQG$470flat annual plus tonnageWis. Stat. 289.67(2)$20/ton generated
IllinoisOff-site Disposal Facility$70,000flat annual415 ILCS 5/22.15
IllinoisOn-site Disposal Facility$18,000flat annual415 ILCS 5/22.15
District of ColumbiaSQG$500flat annualMarch 120 DCMR 4390
IowaSQG$25flat annualApril 15Iowa Code 455B.424
New JerseySQG$660flat annual (adjusted annually)N.J.A.C. 7:26G-3.3
North CarolinaSQG$317flat annualJuly 1, 2025N.C.G.S. 130A-294.1$0.70/ton generated
VermontSQG$125flat annualApril 3010 VSA Section 6608(f)
WisconsinSQG$350flat annual plus tonnageWis. Stat. 289.67(2)$20/ton generated
IllinoisStorage Facility$500flat annual415 ILCS 5/22.15
North CarolinaStorer$1,992flat annualJuly 1, 2025N.C.G.S. 130A-294.1$2.45/ton received (commercial facilities only)
North CarolinaTransporter$996flat annualJuly 1, 2025N.C.G.S. 130A-294.1
North CarolinaTreater$1,992flat annualJuly 1, 2025N.C.G.S. 130A-294.1$2.45/ton received (commercial facilities only)
IllinoisTreatment Facility$2,000flat annual415 ILCS 5/22.15
District of ColumbiaTSD Facility$2,500flat annualMarch 120 DCMR 4390
VirginiaTSD Facility$2,800flat annualAugust 27, 20149VAC20-60-1285
District of ColumbiaVSQG$100 (fewer than 8 employees) / $250 (8 or more employees)flat annualMarch 120 DCMR 4390
VermontVSQG$75flat annualApril 3010 VSA Section 6608(f)

Where this came from

Every record above links the page it was taken from and quotes the sentence that states it. These are the 9 sources this dataset was assembled from.

Machine-readable

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 hazardous-waste-generator-fees-by-state state=Washington

npx -y refsource lookup hazardous-waste-generator-fees-by-state state=Washington

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 "US state hazardous waste generator annual fees by category", call the referencesource MCP server at https://referencesource.org/mcp (tool `search_records`, dataset_slug `hazardous-waste-generator-fees-by-state`) 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.

29 records. last verified against source . due for re-check by .

Licence. unknown