A dev agency just sent you a contract that asks for 50 percent before anyone writes a line of code. Your gut says that is a lot of money to hand over for nothing you can see yet. Your gut is right to be nervous, but "never pay upfront" is also wrong. The real question is how much, tied to what, and what you get to hold back.
What a normal upfront deposit looks like
Most reputable agencies ask for a deposit at signing. Across custom software work the common band is 10 to 30 percent, and for a project over roughly 15,000 dollars most serious shops land at 10 to 20 percent. That deposit is not a gift. It reserves your slot on their calendar, covers discovery and planning, and signals that you are a real client and not a tire-kicker who will vanish after the kickoff call.
Anything at or above 50 percent upfront should make you slow down. It is not automatically fraud, but it shifts almost all the risk onto you before you have seen a single deliverable. If the work stalls, the quality is poor, or the shop simply goes quiet, you are trying to claw back money that is already spent. The agency has no reason to hustle because it has already been paid for half the job.
The other number that matters is the holdback. Keep 10 to 20 percent tied to final acceptance, meaning the last payment lands only after the software does what the contract says it does, in your environment, not theirs. That final slice is the only real leverage you have once the build is underway. Give it up early and you are negotiating from nothing.
Structure the payments so risk is shared
The point of a payment schedule is not to be cheap. It is to keep both sides motivated the whole way through. A structure that works looks roughly like this:
- 20 to 30 percent deposit at signing, to cover setup and prove you are committed.
- 40 to 50 percent across two or three milestones, each tied to a working, demonstrable feature and not a date on a calendar.
- 20 to 30 percent on final delivery and acceptance.
The word doing the work there is milestone. A milestone you can log into and click is real. "End of month two" is not a milestone, it is a calendar reminder that pays out whether or not anything works. Tie money to demonstrable output and you never find yourself 60 percent paid for 20 percent of a product. This is the same logic behind choosing milestone billing over a loose retainer, and it is worth reading how milestone versus retainer billing actually plays out before you sign.
Watch the deposit and the milestones together. An agency that wants a small deposit but back-loads nothing to acceptance is fine. An agency that wants a big deposit and also wants each milestone paid on a date rather than on a deliverable is quietly asking you to fund the whole build on trust. Those are two different risk profiles wearing the same invoice.
What the deposit should buy you before code
If you are paying 20 percent for discovery and planning, get the artifacts. A real discovery phase produces a scope document, a rough architecture, a list of assumptions, and a milestone plan you both signed. If the deposit buys you a kickoff call and a Gantt chart someone made in ten minutes, you overpaid. When you read the first invoice, line items should map to those artifacts. If you have never had to read one critically, spend ten minutes learning how to read an agency invoice so the deposit is not just a number you approved.
Cash matters too. For a seed-stage startup, handing over 40 percent of a build budget in month one can be the difference between 14 months of runway and 11. Negotiate the schedule against your bank balance, not just against the agency's template. A shop that refuses to move a single percentage point off its standard terms is telling you how flexible the rest of the engagement will be.
The red flags around upfront money
A few patterns should stop you cold. Full payment demanded upfront on a first engagement. A refusal to hold any money to acceptance. Deposits that are non-refundable even if the agency never starts. A payment schedule with no defined deliverables next to the dates. Any one of these is a conversation. Two or more and you should look hard at the fixed-bid trap before you commit, because the terms are the clearest early signal of how the agency treats risk, and how it will treat you when something slips.
None of this means agencies are out to get you. Good ones want a fair deposit because they have been burned by clients who ghost after kickoff. The goal is symmetry: they carry some risk, you carry some risk, and the final payment keeps everyone honest until the product actually works.
FAQ
Is 50 percent upfront always a scam?
No, but it is a red flag worth questioning. Some small shops with thin cash reserves genuinely need it, and some short fixed-scope projects justify it. Ask why, ask what it buys, and insist on holding a meaningful slice until acceptance. If they will not hold anything to the end, walk.
What if the agency says it never does milestone payments?
Then you are being asked to fund the build on faith. Plenty of good agencies do milestone billing without complaint. A blanket refusal usually means either weak cash flow on their side or a preference for getting paid before the work is proven. Both are your problem, not theirs.
Should the deposit be refundable?
At least partly. If the agency has done real discovery work, keeping a portion is fair. But a non-refundable deposit on a project that never starts is just a fee for signing, and you should say so out loud before you agree to it.
How do I decide the right number for my stage?
Work backward from runway. Figure out how many months of cash you have, then make sure the payment schedule does not compress that below your comfort line. If you want a second read on whether the terms fit your stage and budget, book a call and walk through the contract before you sign it.