How to set up milestone-based invoicing for solar projects
This tutorial walks you through configuring a payment schedule on a solar project, assigning billing amounts to each milestone, and tracking payments so every invoice fires automatically when a milestone is completed - with zero manual triggers.
- Set payment schedule on deal
- Assign billing to each milestone
- Confirm client and invoice details
- Track payments and outstanding balances
4 steps to automated milestone billing
Set up once - invoices fire automatically every time a milestone is completed.
Step 1: Set the payment schedule on the deal
The payment schedule is the backbone of milestone billing. It defines how the total project value is split across billing events - usually tied to project phases. Set it at the deal stage so everything is agreed before work starts.
- 1Open the deal record → scroll to "Payment Schedule"
- 2Click "Add Payment Schedule"
- 3Choose schedule type: Milestone-based, Date-based or Manual
- 4For milestone-based: add each billing event with amount and trigger milestone
- 5Common structure: 30% deposit on deal sign, 40% on installation start, 30% on commissioning
- 6Save payment schedule - client can see this in the proposal
Step 2: Link billing amounts to project milestones
Once the project is created from the won deal, link each payment schedule tranche to a specific project milestone. When that milestone is marked complete, the invoice is created automatically.
- 1Open the project → go to Milestones
- 2Click a milestone → "Set Billing Trigger"
- 3Enter the invoice amount or select from the payment schedule tranche
- 4Set tax rate (VAT, GST or none) applicable to this invoice
- 5Confirm client billing details (invoice recipient, address, payment terms)
- 6Repeat for each billable milestone
Step 3: Review and send invoices
When a milestone is marked complete, CrmLeaf creates the invoice automatically. Review it, personalise if needed and send. The client receives the invoice by email with payment instructions.
- 1Milestone marked complete → notification appears in Finance dashboard
- 2Go to Invoices → the new invoice shows as "Draft"
- 3Review: client name, invoice date, line items, amount and tax are pre-filled from the milestone
- 4Add any notes (e.g. "Payment due within 14 days per contract")
- 5Click "Send Invoice" - client receives email with invoice PDF
- 6Invoice status updates to "Sent"
Step 4: Track payments and manage outstanding balances
As clients pay, record payments against invoices. CrmLeaf tracks partial payments, outstanding balances and overdue invoices - giving finance a live view of cash position at all times.
- 1Go to Invoices → click an invoice → "Record Payment"
- 2Enter payment amount, date and payment method
- 3If partial: CrmLeaf updates balance - invoice status becomes "Partially Paid"
- 4Overdue invoices appear in the Overdue report automatically after the due date passes
- 5Send payment reminders from within the invoice record
- 6Revenue dashboard shows total collected, outstanding and overdue by project, client and month
Tutorial complete
Automated billing
Milestones complete → invoices fire automatically. Zero manual billing triggers. Zero missed invoices.
Live cash position
Revenue collected, outstanding and overdue visible in real time. Finance has accurate cash flow data without chasing project managers.
Overdue alerts
Automatic overdue notifications prevent late invoices from sitting unnoticed. Collections team alerted before the delay becomes a problem.
Common questions
Start your free trial
and follow this guide.
14 days free - no credit card. Set up your account, invite your team and follow each step with your own live data.
Free 14-day trial · Free onboarding · No credit card
