MILESTONE BILLING
The milestone closes. The invoice is already drafted.
Close the ticket. The invoice is already there.
Handl watches the tickets in Jira, Linear, Asana, Monday or ClickUp. When a milestone's work is done, it drafts the invoice for you to confirm and send.
Free for 7 days, then flat plans from $29/mo.
- Drafted when the work is done
- You confirm before anything sends
- Lands in QuickBooks or Xero
- Drafted when the work is done
- You confirm before anything sends
- Lands in QuickBooks or Xero
Questions this page answers
- Did we invoice the design phase yet?
- Which milestone are we actually up to?
- Who's meant to send the deposit invoice?
How it runs
- Three milestone nodes on a line: deposit $6,000, design and build $18,000, launch $6,000.
Set the milestones once.
Amount, dates and who's on it. Add a deposit to the billing plan.
- A board whose Done column holds all five cards, the last one lime: milestone met.
The work closes them.
Tickets finish in your PM tool and Handl tracks progress.
- A Confirm and bill button with an arrow to an $18,000 draft invoice.
The invoice is waiting.
Confirm the milestone and the draft is ready to send.
Try it, no sign-up
Project margin calculator
Fee, hours by role and what your people cost. See the real margin and what you should have quoted. Result on the page, no sign-up.
Open the calculatorWhat you get
- Drafted from the milestone
- $18,000
- Nothing sends until you press it
Questions people ask first
Do I have to leave QuickBooks or Xero?
No. Invoices push straight into them. Your accountant doesn't change a thing.
Will it invoice without me?
Never for milestones. Handl drafts, you confirm and send.
What if a milestone finishes early or late?
It follows the work, not the calendar. When the tickets close, you confirm and it drafts.
Can I take a deposit?
Yes. Add it to the billing plan and it drafts when the client signs.
What does it cost?
From $29 a month. 7-day free trial on every plan.
What if the project runs over budget?
You get an alert at 80% of budget, while there's still time to talk.
Mix and match
Works alongside your other billing models
Milestones rarely live alone. Big build on milestones, an ongoing retainer beside it, some hourly for the bits outside scope. Handl handles all four together.
Integrations
Works with the tools you already run.
Monday, Asana, Jira, ClickUp and Linear for the work. QuickBooks or Xero for the books. Stripe for the payments.
See how QuickBooks and Xero connect. Paying contractors? Pay them from your own Wise or Airwallex balance.
The problem
Why milestone billing breaks most invoicing tools
Milestone billing is meant to protect your cash. Bill at kickoff, bill at design sign-off, bill at launch — money comes in as the work moves. Clean on paper. The problem is the trigger. The thing that's supposed to fire the invoice — “stage 2 approved” — happens in your project tool, in a Slack thread, in someone's head. It does not happen in your invoicing tool. So the deliverable gets signed off on a Tuesday, everyone moves on to the next fire, and the invoice sits unraised until someone notices a fortnight later.
So you get the worst of both worlds. The protection of milestone billing only works if you actually bill on the milestone. Miss the trigger and you're funding the next phase out of your own pocket, then sending a stale invoice for work that finished weeks ago.

“The invoice trigger lives in the work, not in the billing tool — and most tools can't see the work at all.”
How Handl handles it
Handl links your milestones to the actual tasks in your PM tool. When you mark the phase done, or confirm the prompt from your PM tool, Handl drafts the invoice and you press send. Milestone invoices never send themselves; hourly and retainer invoices can, if you switch that on.
Bills on sign-off, not on memory
Connect the milestone to a task in Monday, Asana, Jira, ClickUp or Linear. It's approved, Handl drafts the invoice the same day, every time. You press send.
Keeps the client in the loop
The client portal shows them what’s coming before it lands. A client who’s been kept informed approves milestones faster. No surprise invoices, fewer disputes. Client new to this way of billing? Send them the client-friendly guide to milestone billing.
Syncs the money side automatically
Invoice pushes to QuickBooks or Xero, payment runs through Stripe, reconciliation happens on its own. You don't touch a spreadsheet.
See what's coming in.
The milestones ahead show what you'll invoice and roughly when.
This is the original Handl move: the work says it's time to bill, so Handl bills. No one has to remember.

What is milestone billing?
Milestone billing is when you invoice a client at agreed points in a project rather than by the hour or on a recurring cycle. Each milestone is a deliverable — kickoff, discovery done, design signed off, launch — and reaching it is what triggers the invoice for that stage. Milestone invoicing is the same thing described from the accounts side: the schedule of invoices sits in the contract from day one, so nobody’s negotiating a number halfway through.
You see it most on defined-scope work with a real start and a real end. Website builds, brand identities, app projects — anything with a long runway. And the reason it exists is cash. On a long build you don’t want to carry a whole quarter of payroll and then hope the final invoice clears. You bill as the work lands.

How do you set up milestone invoicing in Handl?
Add the milestones to the project with an amount and a date, then connect each one to its tickets in your PM tool. Handl tracks progress from there, and drafts the invoice when the milestone’s work is done.
One setup note: milestone invoices only draft when a billing-plan item is linked to the milestone. Add the item to the billing plan, link it to the milestone, and the draft follows. A deposit works the same way: add it to the billing plan and it drafts when the client signs the quote, ready for you to review and send.
When does milestone billing beat hourly or a retainer?
Milestone billing wins when the scope is defined, the project has an end date, and you need the money arriving as the work does. It ties cash to output instead of time — the client pays for something they can point at, not a number of hours they have to take your word for. That’s a much easier invoice to get approved.
Where it’s the wrong call is fuzzy scope. If nobody can say what “design signed off” actually means, you’ll be arguing about whether a milestone is done while the invoice sits unraised. That’s hourly’s job — discovery, open-ended builds, the overflow work that changes shape weekly. Hourly is the honest model when you genuinely can’t scope it.
And if the relationship is ongoing rather than a project, it’s not a milestone at all. That’s retainer billing — different rhythm, same principle.
How do you structure milestones for cash flow?
Take a deposit before anything starts. Then break the rest into stage sign-offs sized so no gap between payments runs longer than about four weeks. And keep the final milestone small — small enough that it isn’t worth a client sitting on it to squeeze you at the end.
That’s most of it. The classic mistake is half up front, half on delivery, on a twenty-week build — which means somewhere around week twelve you’re funding the whole thing yourself and quietly checking the business account on a Sunday night. More, smaller milestones beats fewer, fatter ones every time.
One more thing that saves arguments: tie each milestone to something the client can look at and say yes to. “Backend mostly done” isn’t a milestone, it’s a debate. “Staging site live for review” is.

Questions, answered
Can I schedule invoices based on project milestones?
What's the best way to automate milestone invoicing?
How do consulting firms automate milestone invoicing?
What is milestone billing software?
Pricing
From $29/mo. The automation's on every plan.
Every milestone, every project, every client — the automation’s on every plan, including the $29 one. No “premium” tier hiding it behind a paywall. Three plans, and the top one caps at $199/mo with unlimited team members — it never grows per head. Talk to Darren →
Get started — $29/moReclaim your time
Close the ticket. The invoice is already there.
Handl drafts it from the milestone. You confirm and press send.



