It's the second week of January. You've got a short list of guys who worked for you last year, and the IRS wants you to mail each of them a 1099 by the end of the month. The 1099 is just the form that reports what you paid a contractor over the year. Trouble is, half your list is a first name and a phone number.
One guy changed his number. Another moved, and the address you've got is from two winters back. A third does clean work but goes dark the second the season ends, and now you need his legal name and his tax ID before you can file a thing. So you lose a week texting, calling, and chasing paperwork for money you paid out months ago.
Here's the fix, and it's boring on purpose. Grab the paperwork the first time you hire a sub, before a dollar changes hands. Build the file in July so January is a non-event.
Why the scramble happens every January
The rule itself is simple. If you paid an unincorporated sub 600 dollars or more over the year for his labor, you're supposed to file a 1099 that reports it and send him a copy. To fill that out you need his legal name, his mailing address, and his taxpayer ID, which is either a Social Security number or an EIN (the business version of a Social Security number).
None of that is hard to collect. It's just that nobody collects it in the moment. You needed a guy on a roof Tuesday, he showed up, did the work, you paid him, and the paperwork felt like it could wait. Then it waited until it was a problem.
By January the trail's gone cold. Numbers change, guys roll onto other crews, and the ones behind on their own taxes aren't thrilled to hand you a form that puts their income on paper. You wind up negotiating for information you had every right to collect back in the spring.
What a W-9 actually gets you
The W-9 is the one-page IRS form where a sub writes down everything you need to file his 1099. Legal name, business name if he's got one, mailing address, taxpayer ID, and whether he's a sole proprietor, an LLC, or a corporation. One form, all of it in one place.
That last line matters more than people think. If a sub is set up as a corporation, you usually don't owe him a 1099 at all. The W-9 tells you that up front, so you're not filing forms you don't need or chasing a guy who was never on the hook.
Here's what you actually want from day one on every sub:
- Legal name and business name. The name the IRS has, not just "Mike the framer."
- Mailing address. Where the 1099 copy gets sent in January.
- Taxpayer ID. SSN or EIN. This is the piece that's hardest to pry loose later.
- Entity type. Sole proprietor, LLC, or corporation, so you know whether a 1099 is even required.
- A signed W-9. The form itself, dated, so you've got a record that you asked and he answered.
Set up a one-text request
You don't need software for this, but a little setup makes it automatic. The idea is one text you fire off the first time you bring a sub on, with a link that collects the W-9 and his mailing info before he's ever on a job.
Build a simple intake form (a free form tool works fine) with the fields above, and let him either upload a photo of a filled-out W-9 or type the info straight in. Save the link in your phone as a canned text. New sub, one tap, done.
- Make a short intake form with the five items listed above.
- Write one text: "Before we get you on a job, fill this out so I've got your W-9 and address on file. Two minutes." Paste the link.
- Save that text as a template or keyboard shortcut on your phone.
- Drop each reply into one folder, a single file per sub, named with his name and the year.
- Check it off before he swings a hammer.
Want it fully hands-off? A setup can text the link the moment you add a sub, then nudge the guy who ignores it a day later, so you're not the one remembering. That saves you the follow-up, but be straight with yourself about what it can't do. A tool can send and nag. It can't make a man fill out a form. That's what the next part is for.
Make "no W-9, no check" the rule
This is the part that does the real work. The form only gets filled out reliably when the first check is tied to it. No W-9, no check. Say it plain when you hire.
It sounds blunt, but it's fair, and most subs get it on the spot because they run the same way with their own customers. You're asking for information you'll genuinely need, and you're asking while you've still got leverage, which is before you've paid him a nickel.
Guys who balk at a W-9 are telling you something. Maybe they're not reporting the income, maybe they're just disorganized. Either way, better to learn that in July than to find out in January when you're the one stuck holding the form.
Where it still gets messy
A few things trip people up even with a clean system, so keep them in mind:
- Addresses go stale. A guy who works for you three seasons running might move twice. A quick "still at the same address?" text each January keeps the file current.
- Automation sends, it doesn't force. The link and the reminders can run themselves, but the check rule is still what gets the form filled out. Lean on both.
- Cash still counts. Paying a sub in cash doesn't make the 1099 disappear. If it's 600 dollars or more for labor, it's reportable, so collect the W-9 the same way you would on a check.
Worth doing this week
- Build a five-field intake form today: legal name, business name, mailing address, taxpayer ID, and entity type, plus a spot to upload a W-9.
- Write the one text and save it as a shortcut on your phone so it's one tap from now on.
- Send it to every sub working for you right now, not just the new ones. Backfill the file while the season's still live.
- Make one folder, a single file per sub, and move last year's stragglers into it as they come back.
- Starting with the next hire, make it "no W-9, no first check," and say it out loud when you shake on the job.
If wiring up the text and the reminders sounds like one more thing you don't have time to set up, that's the kind of small automation we build for Massachusetts crews so the file is already done by the time the forms are due.