How-To Guides

Milestone-based Billing


Milestone-based billing is the billing model common in companies with the 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.  

While Celoxis does not provide the out-of-the-box method for the milestone-based billing, the flexibility of Celoxis custom fields will allow you to track your billing cycles with ease, once the proper fields are defined. At the end of this manual you will learn how to

  • Use the custom fields to define billing milestones  
  • Use invoicing reports to track project billing

Custom Invoicing Fields

In this scenario, sending an invoice to the client becomes one of the tasks in the project plan. Using Celoxis 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 Administration >> Account Management >> Custom Fields >> + Add >> [type of field]. Administration privilege is required to add or configure the custom fields.

fig1.pngFigure 1: Custom Fields on the Administration Page

While the unique needs of your company may require a different set of the attributes, here is the most common set of tasks to consider:

a) Task Type

    • Name: Task Type
    • Type: Single-select Drop Down
      • Drop down options:
        • Invoice
    • Required financial privilege to view: Yes
    • Required?: No
    • Formula Key: task_type
    • Attached To: Task
    • Rational:  Eventually you may choose to have other special types of tasks, which is why the single-select drop down is recommended.



Figure 2: Custom Single-select Drop Down field

b) Invoice Amount

    • Name: Invoice Amt
    • Type: Currency
    • Required financial privilege to view: Yes
    • Required?: No


  • Min/Max value: depends on the needs of your organization
  • Show Total in Report: Yes


  • Formula Key: invoice_amt
  • Attached To: Task
  • Rational:  You will want to set the amount for every invoicing milestone, providing the system with the ability to run quantitative reports on the outgoing invoices, and the  payments received.


c) Invoice Status

    • Name: Invoice Status
    • Type: Single-select Drop Down
      • Drop Down options:


  • Scheduled
  • Sent
  • Paid


Your options set may look  differently, depending on the needs of your organization.

  • Required financial privilege to view: Yes
  • Required?: No
  • Formula Key: invoice_status
  • Attached To: Task
  • Rational:  We recommend setting the status to Scheduled for every new invoice task added to the project plan. Afterwards you will need to change the status accordingly to Sent, and eventually to Paid


c) 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


c) 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


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



Projected date

Rules and Dependencies


Project kick off




Invoice on the specified date, regardless of the project status


Conclusion of SRS Phase




Invoice once the specified project milestone was attained


Conclusion of Development Phase




Invoice once the specified project milestone was attained


Final acceptance




Invoice once the specified project milestone was attained






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:


Step 1: Add the Invoicing milestone tasks to your project plan

Figure 3: Manual and auto-scheduled invoice tasks in the Interactive Gantt

Note that the task 6 is manually scheduled, as indicated by the
icon next to the task ID. Manual scheduling in this case allows the task to be scheduled for a specific date, without the risk of Celoxis changing the date of the task automatically.

fig4.pngFigure 4: Manually scheduled task


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.


Step 2: Set milestone tasks’ attributes


Here, it is time to put  the custom fields set in the previous section of this manual  to work. For each of the Invoice milestone tasks, set the custom fields under the Edit Task >> Custom Fields tab.

fig5.pngFigure 5: Custom Fields in the Edit Task dialog

Step 3: Maintain status of the invoices

As the project progresses, modify the status of each invoice through their life cycles from Scheduled to Sent, and finally to Paid.

If your job requires you to track invoices on daily basis, you may find it useful to add the billing milestone fields to your default Interactive Gantt view. This will provide better visibility into the project’s billing, as well as  allow editing of the billing milestone attributes in the spreadsheet mode, directly from the Interactive Gantt.

Figure 6: Custom fields columns in the Interactive Gantt


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 Invoice Amount and Invoice Status for all invoices: Paid, Sent, or Scheduled.

To create this task-based report, use the Task Type filter, including only the tasks with the Task Type = Invoice.  Reminder: you can create unlimited number of custom reports under Reports >> All Reports + New Report >> [report type]

fig7.pngFigure 7: Project Billing Milestones cross-project report


Projects Invoices by Status

Bar chart, showing Scheduled, Sent and Paid invoices 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.

Figure 8: Project Invoices by Status cross-project bar chart


Project Invoices view

Add Project Billing as one of the default project views to have easy access to the project-specific billing information. Again, to set the view  use the Task Type filter, including only the tasks with the Task Type = Invoice.  Reminder: you can add project views under Administration >> Project Management >> +Project View >> + Add >> [type of view]. Administration rights are required to create or edit the project views.

Figure 9: Project Billing view

Other Scenarios


  1. Can I calculate the Invoice Amounts based on the % of the project’s fixed price?

    Yes you can, using a different type of setup

         a) Add a new custom field: Invoice %, attached to Task.

         Note the Formula Key field value: Invoice_percentage.This value will be used in the calculation formula

Figure 10: Invoice % - custom numeric field


         b) Add another custom field Invoice Amt Calc, attached to Task.
            This is going to be the Formula-type field. This field is not editable. Instead, the value will be                                                  calculated automatically based on the Fixed Price of the project, and the Invoice % value set for the previously described field.

Make sure you use the proper syntax for the formula. If you do not -  the reports containing the field will display the error message instead of the calculated value.


Figure 11: Invoice Amount Calc - Custom formula field

Make sure to use these columns in the Invoicing reports, instead of the Invoice Amount defined in the earlier sections of this document.


Figure 12: Project Billing view with the percentage-based invoicing fields


Conclusion/Final Points


As shown in the examples above, it is very easy to create and maintain the the milestone based billing setup in Celoxis. Here are some of the inputs and outputs mentioned in the manual.  Please remember that most of the fields here are the custom fields that must be created by your system administrator.

Naturally, the custom fields in this manual are based on the practical application used by one of the active Celoxis clients. This particular set up may fit the exact needs of your organization, or you may find the need to create additional custom fields that further suit your particular requirements. Either way, the flexibility of Celoxis will allow you create just the configuration you need.


Inputs by user:

Project Fixed Price

System field

Used to define the flat price of the project with the billing type of Fixed Price

Task Type

Custom Single-select drop down field

Defines the key payment milestone as Invoice

Invoice Amount

Custom currency field

Used for the manual entry of the amount for the invoice milestone

Invoice %

Custom numeric field

Used for the manual entry of the percentage share of the total fixed price of the project  for the invoice milestone

Invoice Status

Custom Single-select drop down field

Defines the status for each invoice, in terms of states such as Scheduled, Sent, or Paid  

Date Invoiced

Custom date field. Defines the date when the invoice was sent to the client.

Date Paid

Custom date field. Defines the date when the invoice was paid by the client.


Invoice Amt Calc

Custom formula field

Used to calculate the invoice amount based on the Fixed Price of the project,  and the value of the Invoice % field


Was this article helpful?
1 out of 1 found this helpful
Return to top