Milestone Based Billing
Milestone-based billing is the billing model common in companies with project-driven revenues. This type of billing typically occurs only as certain project milestones have been attained. Tracking the milestones using the project Gantt chart makes it just as easy to track the billing invoices for the project in the same way as the actual deliverable milestones of the project.
Alternatively, depending on how the payment milestones for your projects are structured, you can bill your clients on specific dates regardless of your project’s progress. This too can be achieved using the milestone-based billing techniques suggested in this manual.
At the end of this manual, you will learn how to:
- Define billing milestones that are part of your project.
- Use invoicing reports to track project billing
Invoicing Fields
In this scenario, sending an invoice to the client becomes one of the tasks in the project plan. Using Celoxis default and custom fields, we will create several additional attributes which will allow you to set a special type of task - an Invoice task. You can create custom fields under Top Menu ▸ ▸ Admin ▸ Account Management ▸ Custom Fields.
Date Invoiced
- Name: Date Invoiced
- Type: Date
- Required financial privilege to view: Yes
- Required?: No
- Formula Key: date_invoiced
- Attached To: Task
- Rational: to record the date when the invoice was sent
Date Paid
- Name: Date Paid
- Type: Date
- Required financial privilege to view: Yes
- Required?: No
- Formula Key: date_paid
- Attached To: Task
- Rational: to record the date when the invoice was paid
Invoice Status
- Name: Invoice Status
- Type: Formula, use the below mentioned formula.
${ label = 'Unknown'; now = Date.now(); label = !empty entity.date_invoiced ? 'INVOICED' : label; label = Date.before(entity.startCalendar, now ) && entity.date_invoiced < now ? 'OVERDUE' : label; label = !empty entity.date_paid ? 'PAID' : label; label = Date.after(entity.startCalendar, now) ? 'FUTURE' : label; label }
** These options can be customized.
- Required financial privilege to view: Yes
- Required?: No
- Formula Key: invoice_status
- Attached To: Task
Adding Invoice Milestones to the project timeline
When you put together contracts, or statements of work defining the project (note that this work is done outside of, and independent of Celoxis), you are likely to have the Payment Milestone section of the contract, defining exactly what payments are made, and when. Depending on the rules of the contract, and on the nature of work you perform, the payment milestones may be tied to specific deliverables, specific days or both. In order to track the project’ billing using the task attributes we set in the previous section, you will need to create an Invoice task for every payment milestone, and configure it according to the rules of your contract.
For example, imagine the scenario where you are building a Corporate Intranet for the client, under a $100,000 fixed price contract. Your payment schedule may look something like this:
# | Project Milestone | % | Amount | Projected Date | Rules and Dependencies |
---|---|---|---|---|---|
1 | Project Kick Off | 10 | $10,000 | 09/25/17 | Invoice on the specified date, regardless of the project status |
2 | Conclusion of SRS Phase | 25 | $25,000 | 11/14/17 | Invoice once the specified project milestone was attained |
3 | Conclusion of the Development Phase | 25 | $25,000 | 01/02/18 | Invoice once the specified project milestone was attained |
4 | Final acceptance | 40 | $40,000 | 01/12/18 | Invoice once the specified project milestone was attained |
TOTAL | 100 | $100,000 |
In this situation, the payment milestone #1 will need to be manually scheduled in the project plan to occur on 9/25/17, while all other invoices may be delayed, if the project timeline is extended through the duration of the project.
To ensure proper milestone-based billing in this scenario:
Add the Invoicing milestone tasks to your project plan
These tasks are going to be your milestone tasks (Add ▸ Milestone)
Note that the task 6 is manually scheduled, as indicated by the M icon next to the task ID.
Manual scheduling in this case allows the task to be scheduled for a specific date.The remaining milestones 7, 27 and 32, are scheduled to start when the preceding phases are complete, as dictated by the project contract.
If delays are introduced, assuming that the project plan is maintained properly, the invoice milestone dates will keep shifting along with the rest of the project plan.Set milestone tasks’ attributes
Here, it is time to put the Fixed Price amounts on these milestones. For each of the Invoice milestone tasks, set these amounts under the Edit Task ▸ Advanced tab.
- Set Billing Type to Fixed Price
- Set the Fixed Price
- Under the Custom Fields tab, you can also set the Date Invoiced so that you can see the details as described in step 3.
Status of the invoices
As the project progresses, and you invoice your client, the Invoice Status will automatically be calculated based on logic defined above.
You can modify the logic to add your own calculations to this field.Once the payment is received, you can mark the Date Paid against the milestone so that the Invoice Status automatically sets to Paid.
Invoicing Reports
Below are the examples of the reports that can be used to track the billing of the projects:
Project Billing Milestones
Cross-project table, showing Fixed Price and Invoice Status for all invoices: Paid, Sent or Invoiced.
To create this task-based report, use the Milestone filter set to Yes, including only the tasks which are your payment milestones.
Projects Invoices by Status
Bar chart, showing Invoice Status for all active projects. This is again a task report.
Just like any other chart in Celoxis, this report is interactive. Click on each bar to reveal the detailed information for the invoices of the chosen status.
A Sample dashboard for your Accountant to track the Invoice details:
Conclusion/Final Points
As shown in the examples above, it is very easy to create and maintain the milestone-based billing setup in Celoxis.