Project Task and Milestone Billing in Odoo#
For professional services with deliverable-based billing, Odoo allows invoicing directly from project milestones - ensuring you bill when agreed deliverables are completed, not on an arbitrary schedule.
Setting Up Milestone Billing#
On the sale order:
Sales → [Sale Order] → Order Lines:
- Product: Implementation Project (service type)
- Billing: Milestones
- Quantity: 1
- Price: $20,000
Milestones tab (on the order line):
- Milestone 1: Requirements Document → $5,000
- Milestone 2: Development Complete → $10,000
- Milestone 3: Go-Live → $5,000
Linking Milestones to Project Tasks#
Sales → [Sale Order] → Project button → opens the auto-created project:
Project → Settings → Milestones → link each milestone to a task:
- "Requirements Document" milestone → linked to "Deliver Requirements Specification" task
- "Development Complete" → linked to "Development Sprint Complete" task
- "Go-Live" → linked to "Production Deployment" task
Billing When a Milestone Is Reached#
When the task is completed and the milestone is ready to bill:
Project → [Task] → Mark Done → milestone status updates to "Reached"
Sales → [Sale Order] → Create Invoice → Milestone:
- Select: Milestone 1 (Requirements Document - $5,000)
- Invoice is created for $5,000
Customer receives the invoice immediately after the deliverable is completed - no lag between work done and billing.
Milestone Approval Before Billing#
For formal client sign-off:
Project → Milestones → [Milestone] → Request Approval:
- Client signs off on the milestone completion (via Odoo portal or email)
- On approval: invoice is triggered automatically
Progress Billing (Percentage Complete)#
For ongoing work billed by completion percentage:
Sale Order → Billing Method: Percentage of Completion
Update percentage on the project:
Project → [Task] → Progress: 50%
Invoice:
Sales → Create Invoice → Based on Progress → invoices 50% of the project total → $10,000
Subsequent invoices bill incremental progress: 50% → 75% → invoices $5,000 more.
Reporting#
Project → Reporting → Profitability:
- Billed vs. total project value
- Outstanding milestones (not yet billed)
- Revenue recognized vs. deferred (for proper revenue recognition)

