I talked to a contractor last month who landed a $22K patio job. Great job. Good margin. Customer seemed solid.
He bought $6K in materials on his credit card. Paid his guys. Finished the job in two weeks.
Then the customer took five weeks to pay. "Oh sorry, been busy." "Check's in the mail." "Can you resend the invoice?"
He made money on paper. But for almost two months, he was out $6K plus labor. His credit card was accruing interest. He couldn't take on the next job because he was tapped out.
This happens constantly.
Here's the thing nobody tells you when you start out: you're not just a contractor. You're also accidentally a bank.
Every time you buy materials before getting paid, you're giving your customer an interest-free loan. Every time you wait until the job's done to collect, you're floating their project.
And unlike an actual bank, you don't charge interest. You just eat it.
The fix is stupid simple. You just have to actually do it.
Put the payment schedule on the proposal. Not verbally. Not "we'll figure it out." Printed. Right there with the price.
"50% due when you sign. 50% when we're done."
Or for bigger jobs: "30% to start. 40% when the hardscape is in. 30% at final walkthrough."

When it's written down, it's not a negotiation. It's just how you operate. The customer either agrees or they don't. Most do. The ones who push back hard on paying a deposit? Those are the same ones who'll ghost you on the final invoice.
I know why contractors don't do this. It feels awkward. You don't want to seem like you don't trust them. You're worried they'll go with someone else who doesn't ask for money upfront.
But think about it from the customer's side. They're about to hand you $15K to rip up their backyard. A deposit isn't weird to them. It's expected. Every other trade does it. The plumber. The roofer. The electrician.
You asking for a deposit doesn't make you look desperate. It makes you look like you run an actual business.

The contractors I know who stopped stressing about money all did the same thing. They stopped asking for deposits and started requiring them.
It's on the proposal. It's part of signing. The customer pays the deposit, and then you order materials. Not before.
You're not being a hardass. You're just not being a bank anymore.