Most sales tax nexus discussions online are written for e-commerce sellers, and they all say some version of "you're fine until you cross $100,000 in sales or 200 transactions in a state." That rule doesn't apply to a roofing crew. Construction contractors get nexus from physical presence — a jobsite, a crew on the ground, equipment parked in a lot overnight — not from a revenue counter. For a company that chases storm work or takes on out-of-state commercial re-roofs, that difference is the gap between one clean job and a tax bill nobody budgeted for.
Why One Jobsite Is Enough
For a retailer shipping product into a state, economic nexus thresholds give real breathing room before registration is required. Contractors don't get that cushion. Establishing a jobsite, sending employees to perform work, leasing or storing equipment, or keeping even a temporary office or storage trailer in a state are each generally enough on their own to create nexus and trigger a filing obligation — sales tax, use tax, and often business or income tax registration as well. There's no established "safe number of days" or dollar floor that lets a contractor work a job in another state without creating that obligation. A three-week storm job and a six-month commercial re-roof are treated the same way at the moment the crew shows up.
Worked Example: Same Season, $12,900 Apart in Exposure
Two roofing contractors, each based in the same home state, each pick up $340,000 in storm restoration work in a neighboring state after a hail event. Materials run roughly 40% of contract value — about $136,000 — bought locally and installed on-site.
| Item | Contractor A (Registers Day One) | Contractor B (Treats It Like a Local Job) |
|---|---|---|
| Materials purchased for the job | $136,000 | $136,000 |
| Sales/use tax registered and remitted at time of purchase | Yes — collected and paid correctly | No — treated as home-state exempt |
| Use tax assessed on audit (illustrative 7% rate) | $0 | $9,520 |
| Failure-to-register / negligence penalty | $0 | $2,380 |
| Back interest, ~14 months to discovery | $0 | ~$1,000 |
Contractor A registered in the storm state before the first purchase order went out, so materials tax was handled correctly at the point of sale and the job closed clean. Contractor B assumed the home-state exemption certificate covered the job, kept buying materials under it, and finished the season without registering anywhere. The state caught it fourteen months later through a building permit cross-check — a routine method most state revenue departments now use — and assessed use tax on every material purchase from that job, plus penalty and interest. That's roughly $12,900 in exposure on a single storm season, and it doesn't include the cost of the amended returns and the state income tax nexus question the audit also opened.
The Resale Certificate That Doesn't Travel
A resale or exemption certificate issued by one state's revenue department is only good in that state. It doesn't transfer to a job three states over, and states don't treat contractors uniformly to begin with — some treat a roofing contractor as the end consumer of materials, taxing the purchase and letting labor pass untaxed; others treat the contractor as a retailer, requiring materials to be billed and tax collected separately from the customer. A contractor who assumes "materials work the same way everywhere I've operated" is guessing, and the guess is usually wrong in at least one direction on every new state.
Why Storm Restoration Crews Hit This Hardest
Storm chasing is built around moving fast into a state the moment a hail or wind event hits, often ahead of any local competitor, and registration paperwork is the last thing on anyone's mind during a two-week sprint to close as many insurance jobs as possible. That urgency is exactly what creates the exposure — nexus is triggered on day one of the job, not after a season of billing, and insurance funding the repair changes nothing about the sales tax analysis. A full roof replacement paid by an insurance carrier is taxed the same way as one paid directly by the homeowner in that state.
Where This Connects to Your Books
In QuickBooks Online, every job should be tagged with the state it's performed in from the estimate stage, not discovered later from a materials receipt. That tag should drive a state-specific sales tax liability account so out-of-state jobs don't quietly get coded against the home-state exemption by default. Before mobilizing into a new state, confirm registration requirements and how that state classifies contractors for materials tax — a five-minute call to the state's revenue department or a construction-focused CPA before the first purchase order beats an audit letter fourteen months later every time. At JobCostBooks, clients expanding into new states get job-level state tagging built into the chart of accounts from the first job, so exposure gets caught at setup instead of at audit. For the broader tax picture beyond sales tax, see our guide: Tax Planning Guide for Roofing Contractors.