billable.dev

How Much Deposit to Charge for Freelance Dev Work

By Mark Fulton · 2026-08-14 · 13 min read

How Much Deposit to Charge for Freelance Dev Work

For freelance web development the working range is 25% to 50% up front, and two inputs decide where you land: how much this client has already paid you, and how much unbilled work you'd be carrying without a deposit. A new client on a project under $5,000 is 50%. A new client on a $5,000–$15,000 build is 33%, with milestone invoices behind it. A repeat client who has paid every invoice on terms is 25%, or zero if you're billing them every two weeks anyway. A first engagement under about $1,500 is cleaner at 100% up front, framed as a minimum engagement rather than a deposit. The percentage isn't the real decision — the real decision is the maximum amount of unpaid work you're willing to be carrying at any moment, and the deposit is just one of three levers that sets it.

Almost every answer to this question is "50%," which is a fine answer to a question nobody asked. Fifty percent of a $1,200 landing page is $600 and barely worth the second invoice. Fifty percent of a $40,000 platform build is a $20,000 wire that a seed-stage startup's finance process will escalate, delay, and possibly refuse on policy grounds — not because they doubt you, but because prepaying twenty thousand dollars to an individual contractor trips an internal control. Same percentage, completely different conversations.

So work the problem the other way round. Start from what you're protecting, then back out the number.

Why do developers charge deposits at all?

A deposit does three separate jobs, and it's worth knowing which one you're buying, because different structures buy different ones.

It proves the client can actually move money. This is the underrated job. A client who can't get $4,000 out the door in the first week is a client who won't get $8,000 out the door in week six either, and you'd rather learn that before you've written the auth flow. The deposit is a cheap, early test of a process you're going to depend on for months — their approval chain, their vendor onboarding, their bank.

It caps your exposure. Every week you work unbilled, you're financing the project. The deposit reduces the peak amount of delivered-but-unpaid work you're carrying, which is the number that actually hurts if things go wrong.

It changes the client's behaviour. Money already committed is money already justified internally. Projects with a paid deposit get scheduled, get their stakeholder time, and get killed less casually than projects where nothing has moved yet.

Notice that milestone invoicing does the second job and the third job but not the first, and a signed contract does the third but neither of the others. That's why the answer is usually a combination rather than a single percentage. If your terms, deposits and late fees are still ad hoc, the wider playbook is in getting paid on time with net terms, deposits and late fees — this post is the deposit chapter of it, in detail.

What percentage should the deposit be?

Run the tree. Payment history is the first branch because it's the only input that's evidence rather than a guess.

START — how much has this client actually paid you before?

├── Nothing. New client.
│   ├── Project under $1,500 (a week or less)
│   │   └── 100% up front. Call it a minimum engagement fee,
│   │       not a deposit. Two invoices on a four-day job is
│   │       admin nobody wants.
│   ├── Project $1,500 – $5,000
│   │   └── 50% deposit, balance on delivery.
│   ├── Project $5,000 – $15,000
│   │   └── 33% deposit + milestone invoices every 2 weeks.
│   └── Project over $15,000
│       └── 25% deposit + milestones sized so that unbilled
│           work never exceeds one milestone.
│
├── One or two projects, every invoice paid on or before terms.
│   ├── Under $5,000        → 25%, or none if you invoice weekly
│   ├── $5,000 – $15,000    → 25% + milestones
│   └── Over $15,000        → 25% + milestones
│
├── Long-running client who pays through an AP department
│   with purchase orders.
│   └── 0% deposit is normal here. Get a PO instead and bill
│       monthly. A PO is their internal commitment of funds —
│       treat it as the deposit substitute it is.
│
└── Any client who has paid late, disputed an invoice, or gone
    quiet mid-project — regardless of how long you've worked
    together.
    └── Go back to the new-client branch and take one tier more.
        Payment history overrides relationship length. Always.

As a lookup table, the same thing:

Project size New client 1–2 projects, paid on terms Long-standing, AP department
Under $1,500 100% up front 50% 0%, bill on completion
$1,500 – $5,000 50% 25–33% 0–25%
$5,000 – $15,000 33% + milestones 25% + milestones 0% + PO + milestones
Over $15,000 25% + milestones 25% + milestones 0% + PO + milestones

The number underneath the percentage

Here's the part the percentage debate skips. Take a $12,000 fixed-price build scheduled over six weeks — call it $2,000 of value delivered per week. The deposit and the invoicing cadence together decide how much delivered work you're carrying unpaid at the worst moment of the project.

Billing structure Cash before you start Invoices during the build Peak unbilled work Weeks of work at risk
Single invoice on delivery $0 0 $12,000 6
25% deposit, balance on delivery $3,000 0 $9,000 4.5
50% deposit, balance on delivery $6,000 0 $6,000 3
33% deposit + milestone at week 3 $4,000 1 $2,000 1
No deposit, weekly invoicing $0 5 $2,000 1

Two things fall out of that table. First, a 33% deposit with one mid-project milestone protects you three times better than a 50% deposit with nothing behind it — a smaller ask, a better outcome. Second, weekly invoicing gets your exposure just as low as a deposit does, which is why it's the honest fallback when a client genuinely cannot prepay. What it doesn't do is test whether they can pay before you start, so it's a substitute for one of the deposit's three jobs, not all three.

Also note that these are unbilled figures. Net terms sit on top: with net 30, add another month of float to every row. That's the real reason to send the deposit invoice due on receipt rather than on your usual terms.

Fixed-price work makes this arithmetic easy because the total is known in advance. On hourly engagements the same logic applies with a prepaid block of hours instead of a percentage — the comparison between the two models is in hourly vs fixed-price billing for developers.

How do you word the deposit request without awkwardness?

The awkwardness comes from asking as though it's a favour. State it as a scheduling fact and it stops being a negotiation. Three moments matter.

In the proposal, before anyone has said yes. Put it in the payment section as plain mechanics, not as a request:

Payment: 33% ($4,000) on signature, which reserves the start date; $4,000 on staging demo; $4,000 on production deploy. Invoices are due on receipt for the deposit and net 14 thereafter.

The words "which reserves the start date" do most of the work. They give the client a reason that isn't about trust — you're holding calendar space, and calendar space has to be held by something.

When they say "we don't pay deposits." Sometimes this is a real policy and sometimes it's an opening position. Find out which without arguing:

That's no problem — plenty of companies can't prepay a contractor, it's usually a controls thing rather than a trust thing. In that case I'd bill fortnightly in arrears instead, so nothing ever runs more than two weeks unpaid, and we'd start on the 2nd instead of the 26th since I schedule around committed work. Does fortnightly billing clear your process more easily?

You've conceded nothing structural. You swapped a deposit for a shorter exposure window, and you moved the start date, which is honest — unpaid slots are the ones that get bumped when a paying client asks for a week.

When the deposit hasn't landed and the start date is coming. Short, no drama:

Quick heads-up: INV-0041 ($4,000 deposit) hasn't come through yet, so I've got Monday the 18th pencilled rather than confirmed. Once it clears I'll lock the sprint and send the schedule. Anything I can do on my end to help it through — a PO number, W-9, vendor form?

Offering to fix the paperwork is the fastest way to find out that the delay is paperwork, which it usually is.

What goes on a deposit invoice?

A deposit invoice is a real invoice, not a note. It gets its own sequential number, its own dates, and enough description that an accounts-payable clerk who has never heard of your project can approve it without emailing anyone. Five details do the heavy lifting: the percentage and the project total in the description, a reference to the signed document that authorises it, due-on-receipt terms, an explicit statement that work begins on receipt, and a line confirming the deposit is credited against the final balance.

INV-0041                                    Issued: 14 Aug 2026
                                            Due:    on receipt

Deposit — 33% of project fee
Acme dashboard rebuild, per SOW dated 8 Aug 2026
(total project fee $12,000.00)                       $4,000.00
                                            ------------------
Subtotal                                             $4,000.00
Total due                                            $4,000.00

Terms: due on receipt. Scheduled start date is confirmed on
receipt of this payment. This deposit is applied against
milestone 1 and reconciled on the final invoice.

Then the closing invoice shows the whole project adding up, so nobody has to reconstruct it from three PDFs:

INV-0048                                    Issued: 25 Sep 2026
                                            Due:    9 Oct 2026 (net 14)

Milestone 3 — production deploy, DNS cutover,
  handover documentation                             $4,000.00
Change order CO-01 — CSV export endpoint
  (approved 11 Sep 2026)                             $  600.00
                                            ------------------
Subtotal                                             $4,600.00
Total due                                            $4,600.00

Project reconciliation — for reference, no action required
  Project fee per SOW                               $12,000.00
  Change order CO-01                                $   600.00
  Paid — INV-0041, deposit (16 Aug 2026)            -$4,000.00
  Paid — INV-0044, milestone 2 (10 Sep 2026)        -$4,000.00
  This invoice                                       $4,600.00

That reconciliation block costs you two minutes and removes the single most common cause of a final invoice sitting in a queue: someone in finance who wasn't copied on the deposit, seeing $4,600 against a $12,000 SOW and asking a question that takes a week to answer. The rest of the fields — entity names, PO numbers, tax IDs, due dates as real calendar dates — are the same on a deposit invoice as on any other, and they're covered field by field in what belongs on a software development invoice.

One bookkeeping note, and it surprises people: if you're on the cash method, money received in advance is generally income in the year you receive it, even though you haven't done the work yet. The IRS states the rule directly in Publication 334, Tax Guide for Small Business — advance payments are included in gross income when received under the cash method. A December deposit for a January project lands in the earlier tax year. Worth knowing before you take a large deposit in late Q4. This is general information, not tax advice, and the treatment differs for accrual-method taxpayers and outside the US.

When is zero deposit acceptable?

Genuinely fine, no deposit needed:

  • The client pays through an AP department with purchase orders. A PO is a committed budget line with an internal approval already behind it. Take the PO, put its number on every invoice, and bill monthly or per milestone.
  • The work is escrowed by a platform. If the funds are already held, the deposit's job is done by the platform.
  • There's an existing retainer in good standing. You're already paid in advance; a project deposit on top is double-charging the same risk.
  • A deliberately short paid trial. A one-week scoping engagement billed weekly in arrears is a reasonable way for a cautious client to start, and it exposes you to one week.
  • Public sector and some large enterprises, where prepayment to contractors is barred by procurement policy. Substitute short milestones and accept it.

The combination to refuse is specific: no deposit, and a single invoice at the end, and net 30 or longer. That's the top row of the exposure table plus a month, on a client whose ability to pay you has never been tested. Change any one of the three and you're fine.

One legal footnote worth knowing rather than relying on. Several US jurisdictions now require a written contract for freelance engagements above a dollar threshold: Freelancers Union reports that the Freelance Isn't Free laws it has championed require a contract for work over $800, require payment within 30 days of completion where the contract is silent, and allow freelancers to recover double damages and attorneys' fees. Your deposit terms belong in that written contract, not only in an email thread — and if you're covered by one of those statutes, an unwritten deal is already a problem before the deposit question comes up.

FAQ

Is 50% upfront too much to ask?

Not for a new client on a project under about $5,000, where it's routine and rarely questioned. What makes 50% land badly isn't the percentage, it's the absolute number — the same client who signs a $2,500 deposit without blinking will send a $15,000 deposit request to their CFO. If you're getting pushback at 50%, the fix is usually to drop to 33% and add a mid-project milestone, which protects you more, not less. Watch which objection you're actually hearing: "that's a lot of money up front" is a cash-flow problem you can solve with structure, while "we don't prepay vendors" is a policy you should stop negotiating and route around.

Is a deposit refundable if the project is cancelled?

It depends entirely on what your contract says and on where you are, which is why "non-refundable deposit" needs to be written down before the money moves. In common-law systems, a sum agreed in advance to cover a loss is treated very differently from a sum designed to punish someone for pulling out: Cornell's Legal Information Institute notes that courts will not enforce a liquidated damages clause that is punitive, illegal, unconscionable or contrary to public policy. In practice, a deposit that plausibly reflects work done plus calendar reserved holds up far better than a round number that just keeps everything. The cleanest structure is a deposit that's applied against completed work first, with a separate cancellation fee handling the reserved-capacity loss — that split is covered in kill fees for freelance developers. Contract law varies by jurisdiction; have a lawyer where you are review the wording before you rely on it.

Do I invoice the deposit before signing or after?

After the contract or SOW is signed, and before any work starts. Invoicing before signature puts a payment demand in front of someone who hasn't yet agreed to the terms it enforces, which reads as pushy and gives you nothing to point at if it's questioned. Signature first, deposit invoice the same day, start date confirmed when it clears. The one exception is a client who needs an invoice to create the payment — some procurement systems can't raise a payment without an invoice number to attach it to — in which case send it alongside the countersigned document, not ahead of it.

How do deposits interact with milestones?

Treat the deposit as milestone zero. The cleanest scheme on a three-milestone project is a deposit equal to the first milestone, applied against it: you're paid for phase one before you start it, then each subsequent milestone is invoiced on approval, so your exposure never exceeds one phase. The alternative — a deposit held separately and only credited on the final invoice — also works, but it makes every intermediate invoice look larger than the work delivered, and it's the version clients query. Whichever you pick, say which one it is in the contract and repeat it in the deposit invoice's terms line, because "the deposit is applied against milestone 1" and "the deposit is credited at the end" produce different numbers on every invoice in between.

Sources


Got a deposit to collect? Create the deposit invoice free at billable.dev — number it, set the terms to due on receipt, and label the line "Deposit — 33% of project total." Nothing leaves your browser and no account is needed. If you'd rather start from a filled-in structure, the free invoice template for developers shows the layout; Pro ($4/mo billed as $24 every 6 months, or $79 once) adds saved clients and invoice history so the final reconciliation writes itself.

This post is general information, not legal or tax advice. Contract enforceability, deposit rules and the tax treatment of advance payments vary by country and by state. Check your own position, or ask a professional in your jurisdiction, before relying on any of it.


Billable is a free, client-side invoice generator for developers. Your data stays in your browser.