Milestone payments split a project fee into stages, each released when a specific deliverable is completed and approved. A $6,000 project billed as three milestones means the freelancer collects $2,400 on signing, $1,800 on first draft approval, and $1,800 on final delivery. If the client stops responding after the first milestone, the freelancer is out $1,800, not $6,000. That is the point. Milestones cap exposure.
TL;DR
- Split the project fee into 2 to 4 milestones, each tied to a specific deliverable
- Charge 25% to 50% as a deposit before any work starts
- Never have more than one milestone's worth of work unpaid at any time
- Put the milestone schedule in the contract, not just in an email
- Each milestone invoice should include a one-click card payment link
- Stop work immediately if a milestone payment is late
Why milestone payments exist
A freelancer who bills 100% on completion carries all the risk. If the client disappears at month three of a four-month project, the freelancer has worked 600 hours and collected $0. A freelancer who bills 100% upfront puts the client at risk, which most clients will not agree to for projects over $1,000.
Milestone payments sit in the middle. The client pays in stages, so they are not handing over the full amount before seeing any work. The freelancer gets paid at each stage, so they are not carrying the entire project on their own cash flow. Each party has skin in the game at every point in the project.
According to data from Freelancers Union and freelance payment guides updated through August 2026, the most common milestone structure for freelance projects is a deposit plus two or three stage payments. The deposit is 25% to 50%. The remaining balance is split across deliverables.
How many milestones to use
The number of milestones depends on project size and duration.
For small projects under $2,000, two milestones work. A 50% deposit and 50% on delivery. The project is short enough that the freelancer is not exposed for long. A $1,500 project billed as $750 on signing and $750 on delivery means the freelancer is never owed more than $750 at any time.
Medium projects between $2,000 and $8,000 call for three milestones. A 30% to 40% deposit, a 30% to 40% midpoint payment, and the balance on delivery. A $5,000 project billed as $2,000 deposit, $1,500 at first draft approval, and $1,500 on final delivery means the freelancer collects $3,500 before the final deliverable ships.
Large projects over $8,000 may use four to six milestones tied to specific phases. A $15,000 website project billed as $4,500 on signing, $3,750 on approved wireframes, $3,750 on completed development, and $3,000 on launch and testing. The freelancer has collected $12,000 before the final invoice goes out.
The rule across all sizes: never have more than one milestone's worth of unpaid work sitting on the table. If the next milestone is worth $1,800, the freelancer should not have done $3,600 of work since the last payment.
How to structure the deposit
The deposit is the first milestone and the most important one. It gets paid before any work starts, which means the client has committed money before the freelancer opens a single file.
For new clients, 50% upfront is standard. The client has no track record of paying on time, and the 50% deposit protects against the risk that they turn out to be a slow payer.
For repeat clients, 25% to 30% is reasonable. The relationship has a payment history. A lower deposit signals trust without giving up the protection of having money in hand before work starts.
For projects under $1,000, many freelancers charge 100% upfront. The project takes less than a week, and the admin cost of chasing a $500 final payment outweighs the friction of asking for it all at once. Small projects are where most freelancers lose money to non-payment, because the amounts are small enough that the freelancer does not want to chase them.
A $2,000 project with a 40% deposit means the freelancer sends an $800 invoice on signing. Through PayFly, that invoice costs $23.20 in fees (2.9% flat rate) and the freelancer receives $776.80. That is $776.80 in the account on day one, before the project has started. The remaining $1,200 goes out on delivery.
What to tie each milestone to
Every milestone needs a trigger. The trigger is a deliverable the client can look at and approve. If the milestone is tied to a date instead of a deliverable, the client has no reason to review anything, and the freelancer has no proof the work is done.
Good triggers are concrete and reviewable. "Approved wireframes for all 12 pages." The client reviews the wireframes, approves them, and the milestone invoice goes out. "First draft of all website copy, delivered as a Google Doc." The client reads the copy, requests revisions or approves it, and the milestone payment is due. "Working prototype hosted on a staging URL." The client clicks through the prototype, confirms it matches the scope, and the next milestone is released.
Bad triggers are vague and unmeasurable. "Week 2 progress" could mean anything. "Halfway done" through what? A 40-page website is not halfway done at page 20 if the backend integration has not started. "Second draft" of what? All sections? Some sections?
The milestone language in the contract should describe what the deliverable is, how it will be delivered, and how long the client has to review it before payment is due. "Client has 3 business days to review and request revisions. If no revisions are requested within 3 business days, the milestone is considered approved and the invoice is due."
What to put in the contract
The milestone schedule belongs in the signed contract, not in an email thread. If the client disputes a payment later, the contract is what matters. Here is the language that works.
"The total project fee is $6,000, billed in three milestones. Milestone 1: $2,400 due upon signing this agreement, before work begins. Milestone 2: $1,800 due upon delivery and approval of the first draft of all website copy, as defined in the Scope of Work section. Milestone 3: $1,800 due upon delivery of the final approved website, hosted on the client's domain. The client has 3 business days to review each milestone deliverable and request revisions. If no revisions are requested within 3 business days of delivery, the milestone is considered approved and the invoice is due. Work pauses if any milestone invoice is more than 7 days overdue until payment is received."
That paragraph covers the schedule, the amounts, the triggers, the review window, and the stop-work clause. Every freelancer who has been stiffed on a final invoice wishes they had written that last sentence into the contract.
How to invoice each milestone
Each milestone gets its own invoice. The invoice should state which milestone it is, what the deliverable was, and the amount due. It should also include a one-click card payment link.
A PayFly invoice with a card payment link averages 2.3 days to payment. The client receives the invoice by email, clicks the link, enters their card number, and pays. No printing, no mailing a check, no waiting for a bank transfer to clear.
On a $1,800 milestone invoice, the PayFly fee is $52.20 (2.9% flat rate). The freelancer receives $1,747.80 in the account within two to three days. Compare that to $1,800 that arrives in 45 days by check, or $1,800 that arrives in 90 days after three follow-up emails and an uncomfortable phone call.
$1,747.80 in two days is worth more than $1,800 in two months. The freelancer can pay rent with $1,747.80 today. They cannot pay rent with $1,800 that is sitting in a client's accounts payable queue.
What happens when a client does not pay a milestone
This is where milestones earn their keep. If a client misses a milestone payment, the freelancer stops work. The contract says so. The milestone schedule says so. The freelancer is not being difficult. They are following the agreement.
On a $6,000 project with a $2,400 deposit and $1,800 milestones, a client who stops responding after the first milestone has been delivered and approved has paid $4,200. The freelancer has done $1,800 worth of additional work on the second milestone. The freelancer is exposed for $1,800, not $6,000. That is the value of milestones in one sentence.
Without milestones, the same project billed as 100% on completion means the freelancer has done the entire $6,000 worth of work and collected $0. The client has every reason to delay, dispute, or ghost. The freelancer has no bargaining power because the work is already delivered.
The stop-work clause is the freelancer's only real protection. Work pauses on day 8 if the milestone is unpaid. The freelancer sends one invoice, one reminder, and then stops. The client either pays or the project halts. Most clients pay at that point, because they want the project finished more than they want to delay one payment.
Start using milestones on every project over $1,000
Milestone payments are not complicated. They are a deposit, a set of deliverables, and a payment link on each invoice. The structure protects the freelancer's cash flow, gives the client proof of progress, and keeps the project moving because each stage has money attached to it.
PayFly invoices include card payment links, milestone fields, and automatic reminders. Send each milestone invoice, the client pays by card, the funds land in the account. No chasing. No waiting. No final invoice that sits unpaid for 90 days.