Skip to content
SoloWOS
Start your free trial

Getting paid

Milestone billing for freelance projects

By SoloWOS teamPublished

IN SHORT

Milestone billing splits a project fee into payments tied to defined deliverables, such as 40% upfront, 30% at design approval and 30% at launch. Each milestone needs an acceptance rule and a due date so the client can't stall payment by withholding approval. On a $6,000 project, 40/30/30 cuts your peak unpaid work from $3,000 to $1,800 compared with 50/50.

Prices and limits as of .

Key takeaways

  • On a $6,000, 9-week project, 50/50 leaves up to $3,000 of finished work unpaid; 40/30/30 leaves at most $1,800.
  • Tie each payment to a deliverable the client can see, not to a date you might miss.
  • Add a deemed-acceptance rule: if the client sends no written feedback within 5 business days, the milestone counts as approved.
  • New York and California freelance laws require the payment dates, or how they're set, in the written contract.

A deposit protects the start of a project; milestones protect the middle. This post, part of our getting paid series, follows the deposit guide and shows how to split the rest. The pricing guide covers how to set the total in the first place.

Three schedules for a $6,000 project

The example: a $6,000 website over 9 weeks, with work spread evenly (about $667 of work a week). "Peak unpaid work" is the most finished work the client hasn't paid for at any moment, which is what you lose if they vanish.

Peak unpaid work assumes each invoice is paid on the day it's sent. Late payment adds to it.
SchedulePaymentsPeak unpaid workBest for
50/50$3,000 to start, $3,000 at launch$3,000, just before launchProjects under about 6 weeks
40/30/30$2,400 to start, $1,800 at design approval (week 4), $1,800 at launch$1,800, just before launchDesign and build projects with a clear approval point
Monthly in arrears, net 15$2,000 at the end of each monthAbout $3,000 (a month of work plus 15 days)Long projects with fuzzy phases; avoid if you can
Monthly in advance$2,000 at the start of each month$0Ongoing work; see retainers

WORKED EXAMPLE

Worked example: 40/30/30 week by week

Week 0: invoice $2,400; work starts once it's paid. Week 4: design is done ($2,667 of work) and you've been paid $2,400, so $267 is at risk. The client approves and pays $1,800, bringing the total to $4,200. Weeks 5 to 9: build. By launch you've done $6,000 of work against $4,200 paid, so $1,800 is at risk until the final invoice is paid, and you release the final files only after it is. With 50/50 that last gap would be $3,000. The project cost calculator helps you price each phase before you split the fee.

How to define a milestone

  1. Name a deliverable the client can see: "homepage and two inner-page designs in Figma", not "design phase".
  2. Say how it's accepted: written approval, or no feedback within 5 business days.
  3. Set the payment trigger: the invoice is sent on acceptance and due [7] days later.
  4. Say what happens to the next phase if the invoice isn't paid: work pauses until it is.
  5. Keep milestones to 3 or 4. More than that and the admin eats the benefit.

The acceptance rule that stops stalling

The common failure is a client who never says "approved", so the milestone invoice never goes out. A deemed-acceptance clause fixes it: if the client sends no written feedback within a set number of business days after delivery, the milestone counts as accepted. Pair it with a limit on revision rounds per milestone so "one more tweak" can't hold payment forever. The business days calculator gives the exact date when the window closes.

Milestone payment clause
PAYMENT SCHEDULE. The project fee of $[6,000] is payable in three parts:
1. Deposit: [40]% ($[2,400]), due before work starts.
2. Design milestone: [30]% ($[1,800]), invoiced when the [homepage and two inner-page designs] are delivered and accepted.
3. Launch milestone: [30]% ($[1,800]), invoiced when the site is ready to launch, and due before final files and admin access are transferred.

ACCEPTANCE. Each milestone includes [2] rounds of revisions. A milestone is accepted when Client approves it in writing, or [5] business days after delivery if Client has not sent written feedback by then.

DUE DATES. Milestone invoices are due [7] days after the invoice date. Contractor may pause work on the next milestone while any invoice is overdue.

Change requests between milestones

New requests in the middle of a phase are where milestone schedules break down. Quote each change separately, get written approval, and bill it on its own invoice when it's done instead of folding it into the next milestone. That keeps the milestone amounts in the contract intact and means a dispute over one change can't hold up the payment for an approved phase.

What freelance laws require

New York's Freelance Isn't Free Act (jobs of $800 or more) and California's SB 988 (jobs of $250 or more, since January 1, 2025) require a written contract that includes the date payment is due or how that date is set. A milestone schedule with an acceptance rule does exactly that. If the contract sets no date, both laws default to payment within 30 days after the work is completed, which on a long project is much later than you want.

Taxes when milestones cross a year end

Under the cash method most freelancers use, each milestone payment is income in the year you receive it (IRS Publication 538). A design milestone paid in December and a launch milestone paid in January land in different tax years, which can help you even out income.

In SoloWOS

In Proposals, write the schedule in the terms block and set the Deposit field to your first percentage. When the client accepts, the proposal page offers "Invoice the deposit" for that share and "Invoice the remaining" share for the balance, with line items copied over. Those buttons cover two parts, so for 40/30/30 invoice the 40% deposit from the proposal and create the two 30% invoices yourself in Invoicing when each milestone is accepted. If you track hours, "Add unbilled time" pulls billable Time Tracking entries into an invoice, useful for change requests between milestones.

Questions

What is a typical milestone payment schedule for freelancers?

Common splits are 50/50 for short projects, 40/30/30 or 30/40/30 for design-and-build work, and 25/25/25/25 for longer projects. The first payment is a deposit before work starts and the last is due before final files are handed over.

What's the difference between milestone billing and progress billing?

Milestone billing invoices fixed amounts when defined deliverables are accepted. Progress billing invoices a percentage of the total based on how much of the work is complete, which is common in construction. For freelancers, milestones are easier to explain and harder to dispute.

What if the client won't approve a milestone?

That's what the deemed-acceptance clause is for: after the set number of business days without written feedback, you invoice. If the client sends feedback, deliver the revision rounds in the contract; extra rounds are a change request quoted separately.

Should milestones be tied to dates or deliverables?

Deliverables. A date-based payment gets disputed if you're late, and a client who's slow with feedback can push your delivery past the date. Tie payment to delivery and acceptance, and give each milestone a target date for planning only.

Sources

Facts checked against these sources on October 18, 2026. Rules and amounts change, so confirm them at the source before you file or sign.

  1. New York State Department of Labor: Freelance Isn't Free Act
  2. California SB 988 (2024), Freelance Worker Protection Act, Business and Professions Code §§ 18100 to 18107
  3. IRS Publication 538, Accounting Periods and Methods (cash method)

Last reviewed:

SoloWOS tools mentioned here

Run your client work from one account

14 days free, no card needed · Then Basic for $2/month.

Start your free trial