Milestone payments for freelance projects: how to split and track them
A two-month project billed entirely at the end is an interest-free loan you give your client. For eight weeks you work, cover your own costs and wait. If the client changes priorities halfway, runs out of budget or simply goes quiet, you are the one who lost those weeks. Milestone payments spread that risk: every time you deliver a piece of the work, you get paid for a piece of the work. This guide covers when milestones make sense, how to split a project into stages that hold up, how to word the payment schedule in your proposal, and how to keep track of every partial payment so none of them slips through.
What milestone payments are
A milestone is a point in the project where you hand over something concrete the client can review: a first design, a working version, a chapter, a report. Milestone payments tie each payment to one of those points. Instead of “USD 1,500 on completion”, the agreement says “one part to start, one part when stage 1 is delivered, one part when stage 2 is delivered and the rest at the end”.
This is not the same as a deposit, although the two work together. The deposit is the first payment, before you start; milestones are the payments that follow. If you have not settled the upfront part yet, the guide on how much deposit to ask as a freelancer covers it. This one focuses on what comes after.
When milestones make sense
Not every project needs them. A one-week job can be billed with a deposit and a balance, and adding more steps only creates admin. Milestones earn their place mainly in these situations:
- Long projects. If the work runs longer than a few weeks, waiting until the end to collect most of the money leaves you with a long gap without income from that client.
- New clients. With someone you have never worked with, every on-time payment is a sign the relationship works. If a payment is late, you find out early instead of after you have done everything.
- Projects with natural phases. If the work already has clear phases (research, design, build, revisions), tying payments to those phases is almost automatic.
- Large amounts for the client. Some clients find it easier to approve several smaller payments than one large one, especially if they need internal sign-off.
If none of these apply, keep the agreement simple: a deposit and a balance is enough.
How to split a project into milestones
A good milestone has three things: a deliverable the client can see, an estimated date and an amount. If any of the three is missing, the milestone becomes something to argue about.
1. Start from the deliverables, not the percentages. List what you will hand over during the project and group it into three or four meaningful blocks. More than four or five milestones is usually too much admin for a freelance project; fewer than two is no longer paying in stages.
2. Price each milestone by the work it takes. There is no correct way to split the total, and be careful with anyone who presents a fixed ratio as the rule. What makes sense is that each payment roughly matches the effort of that stage: if the build phase is the heaviest, it should not be the one that pays the least. Also check that the first milestone, together with the deposit, covers the work you do before the client sees anything.
3. Use estimated dates and say what they depend on. Many stages depend on the client replying on time. Write the dates as estimates and make it clear they move if the client’s review takes longer.
4. Define what “delivered” means. This is the point that prevents the most disputes. Is the milestone due when you send the files, or when the client approves them? If it depends on approval, set a window: for example, if there are no comments within an agreed number of business days, the stage counts as approved.
An example with numbers
Say you are building a website for USD 1,800 in three stages. The amounts are illustrative: the split depends on your project.
- Deposit, on acceptance: USD 400.
- Milestone 1, homepage design and site structure: USD 500, on design approval.
- Milestone 2, full site on a staging environment: USD 600, on delivery of the staging version.
- Final, last revisions and launch: USD 300, at launch.
Notice the last payment is not the largest. If most of the money sits at the end, you are back to the original problem: working a long time with little collected.
How to write it into your proposal
The payment schedule goes in the proposal or quote, next to the total price. It should never show up for the first time on an invoice. If you need the full structure, the freelance proposal template for US clients shows where each part goes, and how to quote a project in US dollars explains how to reach the total before you split it.
Wording you can adapt:
Total price: USD 1,800, in four payments. A USD 400 deposit to get started. USD 500 on approval of the homepage design. USD 600 on delivery of the full site on the staging environment. USD 300 at launch. Each stage is considered approved if there are no comments within 5 business days of delivery. Dates are estimates and will shift if reviews take longer.
The amounts and the 5-day window are examples: use whatever fits your case. Keep the tone plain. A payment schedule written without apologies reads as standard practice, because it is.
A note on tone for non-native speakers
Payment terms are where many non-native freelancers soften their English too much. Phrases like “if it is not a problem” or “I would appreciate if maybe” make a normal condition sound negotiable. You do not need them. Short, neutral sentences (“USD 500 on design approval”, “Work on the next stage begins once the previous payment is received”) are what clients see from every professional supplier. Polite does not mean hesitant.
Before you propose a schedule to a larger company, ask how they pay suppliers. Some have fixed payment runs or need a purchase order per payment, and it is easier to adapt your milestones to that than to find out after the first invoice.
What to do if a milestone is not paid
The advantage of paying in stages is that a payment problem shows up early. If you delivered a milestone and the payment does not arrive, send a friendly reminder a few days after the agreed date; a polite email to a client who hasn’t paid has messages you can adapt.
What helps most is agreeing in advance that the next stage starts once the previous payment clears. That way you never pile up unpaid work. If the client still has not paid after a couple of reminders, pausing the project is healthier than pushing on and hoping to collect everything at the end.
How to track each payment
With milestones, one project stops being one payment and becomes four or five. If you only write down “website project, USD 1,800”, by the end of the month you do not know which part arrived, which part is overdue and which part has not been invoiced yet. Record each milestone as its own payment: amount, expected date, actual date, the platform it came through, the fee and what you actually received.
The USD quote and payment tracker spreadsheet is built for that: you quote the project, log each partial payment with its platform and fee, and see in a summary how much you have collected and how much is still outstanding. If you are not sure what to charge for the whole project yet, the hourly rate calculator is free and helps you find that number before you split it into stages.
Disclaimer
This guide is general operational information: it is not legal or tax advice, nor accounting or financial advice. What you agree in writing with your client about payments, approvals and cancellations is binding on you: for large amounts or if you are unsure how to word those terms, consult a professional in your country.
Our products and articles are practical tools and informational content. They are not legal, accounting or tax advice. Every country and every payment platform has its own rules: talk to a professional before making tax decisions.