I want to start this one with a mild rant, and then I’ll behave for the rest of the article. Honestly, the contractors who get burned the most on deposits are the honest, hard-working ones. The guys who hate the idea of “charging before we’ve done anything,” the ones who trust a handshake, the ones who’ve been in business twenty years and have “never had a problem.” Those are the guys who eat the material cost when a homeowner ghosts the scheduled install. Those are the guys who show up on job day to find out the client hired somebody cheaper two days ago and forgot to mention it.
Meanwhile the fly-by-night operation with a truck magnet and a dream? They’re collecting 50% upfront, in cash, and laughing.
There’s something deeply unfair about that. Let’s fix it.
What a deposit actually is (hint: it’s not what you think)
Most contractors I talk to frame deposits like a concession they’re asking the client to make. “Look, I hate to bring this up, but we’re going to need a deposit before we can schedule.” That framing is the first problem. It puts you in the position of asking for a favor and it puts the client in the position of deciding whether to grant one.
A deposit is not a favor. A deposit is how both parties demonstrate commitment. You’re committing your calendar, your materials, your crew’s time. They’re committing their wallet. The deposit is just the two-sided version of “we’re both in.”
When you frame it that way, half the tension evaporates. The other half we’ll handle with scripts.
Why deposits protect the client, not just you
This is the part most contractors skip in the pitch and it’s the most persuasive part.
A client who pays a deposit is a client who has locked in their spot on your schedule. They now have first claim on the materials order, the crew, the install date. A client who hasn’t paid a deposit is on a wait-list that gets reshuffled every time someone else pays a deposit. If you’re running an honest shop, your deposit clients get better service, faster scheduling, and higher priority. That’s not a line. That’s just operational reality.
So the conversation isn’t “pay me or I won’t schedule you.” It’s “paying the deposit is how we hold your spot. Without it, you’re on the general list and we can’t guarantee the install window.”
That’s a completely different conversation. The client isn’t defending their wallet. They’re trying to get priority.
When to ask for the deposit
Timing matters more than percentage. The wrong ask at the right time beats the right ask at the wrong time, every single day of the week.
Here’s the sequence that works for most residential trades:
- Free estimate or consultation. No money changes hands. You’re building trust and scoping the job.
- Written estimate delivered. Still no money. The client reviews.
- Client says yes. Now you mention the deposit. “Great. To lock in a spot, we’ll need a deposit of X, and here’s what that covers.”
- Signed estimate + deposit received. Now they’re on the schedule. Not before.
- Balance collected on completion (or on a milestone schedule for bigger jobs).
The critical thing: the deposit ask comes after the client has said yes, not before. If you lead with the deposit in the first conversation you sound like the guy who needs the cash to buy lunch. If you lead with it after they’ve committed, you sound like a professional booking a job.
What percentage is reasonable
I want to be upfront about this. There is no primary-source study that publishes “average deposit percentage by trade” in a way that I’d stake a sentence on. The numbers I’m about to give are the industry ranges I’ve seen across dozens of contractor builds, calibrated to what actually gets accepted without pushback. Take them as starting points, not gospel.
- HVAC install / replacement: 25-50% deposit is typical. Material-heavy jobs skew higher. Straight service calls usually don’t take a deposit, they take payment-on-completion.
- Roofing: 30-50% deposit, often structured as “materials + first day of labor.” Insurance-claim roofs are different, those usually wait for the insurance check and then take a smaller deposit.
- Plumbing (project work, not service): 25-40% on anything involving fixtures the client picked out or specialty parts. Standard service calls, no deposit, pay on completion.
- Remodeling / general contracting: 10-30% deposit at contract signing, followed by progress payments at defined milestones. The upfront should cover materials and first phase of labor, not more.
- Painting / flooring: 25-50% deposit, especially if you’re ordering a specific color / product for the client.
- Emergency service calls: No deposit. You’re not holding a schedule, you’re responding right now.
A few cross-trade rules of thumb. If you’re ordering materials the client picked (custom cabinets, specialty tile, specific fixtures), the deposit should at minimum cover those materials. If you’re pulling permits, the deposit should cover the permit fee. If the job is small enough that the deposit math would be under $200, just charge a flat booking fee and move on with your life.
The actual script
This is the part contractors always ask me for. Here’s a version that works across most trades. Adapt the specifics, but keep the structure.
“Awesome, glad the estimate works for you. The way we do this is pretty standard. Once you sign off, we collect a [X]% deposit to hold your spot on the calendar and cover the [materials / permit / first-phase labor]. That gets you locked in for [install window]. Balance is due on completion. I can send you the signed estimate and a secure payment link right now, or we can do it over the phone. Whichever’s easier for you.”
Let’s break down why that script works.
- “The way we do this is pretty standard” – this is the single most important phrase. You’re not asking for a favor. You’re describing normal business practice. The client isn’t being asked to break a precedent, they’re being slotted into one.
- “To hold your spot on the calendar” – reframes the deposit as their benefit, not yours.
- “And cover the [materials / permit / first-phase labor]” – explains the math. The client now knows you’re not pocketing their deposit as profit, you’re using it to do their job.
- “Balance is due on completion” – reassures that you’re not trying to get the full amount upfront.
- “I can send you a link now, or we can do it over the phone” – gives them the choice of method, not the choice of whether. Classic sales move and completely honest here.
Handling the pushback
You will occasionally get a client who says “I’ve never had to pay a deposit before” or “my last guy didn’t make me do this.” Two honest responses, in order of preference:
Response one (the one I use): “Yeah, a lot of smaller operations don’t, and it’s usually because they don’t have much coming up on the calendar. We run a booked schedule, so the deposit is how we keep the install windows honest. I get that it’s an extra step. The upside for you is, once you’re in, you’re in. We won’t bump you.”
Response two (for a softer client): “Totally fair question. Most of our jobs involve [materials / permits / a crew block] that we commit to before your install date, and the deposit just makes that math work. If it’s easier, we can structure it as a materials-only deposit and invoice labor on completion, your call.”
Notice what I’m not doing. I’m not apologizing. I’m not saying “I totally understand, I hate this too.” I’m treating the deposit like a normal professional arrangement, because that’s what it is. If the client still refuses, that’s fine, they’ve just told you something important about how they run their finances and how the job is going to go. You can decline the work, or you can proceed with a smaller deposit and a very, very tight contract. But you’ve learned something either way.
The client who can’t or won’t pay a deposit
Let me be honest here. Sometimes the “won’t pay a deposit” client isn’t being cheap. They might be cash-poor right now, or they might have had a bad experience with a contractor who took a deposit and ghosted. Those are different problems and they deserve different responses.
For the cash-poor client, offer financing if you have a partner, or offer a smaller materials-only deposit with the balance in phases. For the burned-by-a-previous-contractor client, offer references, a physical business address they can verify, and a contract that specifies exactly what happens if you fail to perform. If you’re a real business, you can back all of that up. Fly-by-nights can’t, which is exactly why offering it builds trust.
The client who has the money and the history and still refuses on principle? That’s a red flag. Those jobs tend to get ugly at the payment stage, not the deposit stage. Trust the early signal.
Automating the deposit collection
The single biggest upgrade you can make to your deposit process is removing the friction between “yes” and “paid.” The gap between those two moments is where deals die. If the client has to find their checkbook, or mail a check, or drive to your office, you are going to lose a percentage of them to second thoughts and calendar drift.
The fix is boring and effective. Plug a payment processor into your estimate flow. Stripe, Square, or the billing layer inside your CRM (we use GoHighLevel on most Zealous Growth builds, but there are several that work). When the client hits “accept” on the estimate, the next screen is the deposit payment. Signature and payment in one motion. Ideally mobile-friendly, because half your clients are going to sign this on their phone in the driveway.
If you’re running a WordPress site, this usually means wiring your website’s estimate flow into your CRM so the estimate, signature, and deposit live in one system. When the client signs, the CRM creates the deposit invoice, the automation sends the payment link, and your calendar updates only after the payment clears. That removes the “did they pay?” call that your office manager currently makes three times a day.
Receipts, records, and the boring stuff
Every deposit needs, at minimum: a signed estimate referencing the deposit amount and what it applies to, a payment receipt with the transaction ID, and a note in the client’s file about the install date the deposit is holding. If you’re doing progress payments on a larger job, each milestone payment gets the same treatment.
This sounds obvious. It is not obvious to a surprising number of contractors I’ve worked with. If you have to go to small claims court over a dispute, the paper trail is what wins or loses the case. Build it automatically so nobody has to remember.
The pattern across everything
The deposit conversation, done right, is not a conflict. It’s a mutual commitment. You’re saying “I’ll block my calendar, order your materials, and show up.” They’re saying “I’ll pay a fraction of the job to hold that.” Framed correctly, the clients who say yes are the clients you want, and the clients who say no have just filtered themselves out of your pipeline at no cost to you.
The contractors who struggle with deposits are usually trying to make the deposit conversation disappear. It’s not going to disappear. It’s a necessary moment of commitment in the sales process and it is worth getting good at. The ones who get it right stop losing jobs to material write-offs, stop getting jerked around on scheduling, and stop working for clients who were never going to actually pay anyway.
The ones who don’t? They keep eating those write-offs. They keep telling themselves that “my clients aren’t like that.” And every six months they get reminded, expensively, that their clients are in fact exactly like that.
Don’t be that guy. Have the conversation. Book the deposit. Do good work. Collect the balance. Repeat.
If you want to see how this plays out in a full quote-to-booking flow, take a look at the booking flow article or flip through the portfolio for recent contractor builds where the deposit step is baked into the estimate handoff. And if you want someone to audit your current flow and tell you where it’s leaking, that’s what the audit page is for.
Also, one last aside. I’m not a contractor. I build the systems contractors use to run their businesses, and I’ve seen a couple hundred of these deposit conversations go right and wrong. If your gut tells you to tweak the script based on how your customers actually talk, listen to your gut. The structure matters more than the exact words.