Best Practice: Billing Professional Services

Project management relies on some common tools to control the work. You can use, for example, milestones to set project phases, marking major events like the project start, the completion of certain deliverables, or a review. Time and material, however, represent the actual effort spent on a project.

Now if your business sells professional services on a project base, there are, accordingly, two basic approaches for your invoicing:

  • You record the spent time and material and charge the actually used "consumptions".
  • You charge fix prices for your project milestones and align your invoicing schedule to the given project phases.

Solution Outline

Assume you control your projects in Salesforce based on projects and milestones and track the efforts with times and expenses. You can do so using the corresponding objects as introduced with a dedicated app like aduno, or with custom objects created particularly for that purpose.

Then set up JustOn to bill either the recorded times and expenses or the milestones. The following graphic shows the two invoicing approaches.

Project invoicing: time & material or milestones

Time & Material

For the time and material-based solution, your service staff record the spent times and expenses. Based on this data, you invoice the actually involved effort.

Consequently, you make use of these JustOn features:

Your billing solution may thus work as follows:

(1) When creating a new project, you have JustOn automatically generate a statement of work (based on JustOn's Subscription object). It serves as the "blueprint" for the future time and material invoices.

(2) While your service staff record the spent times and expenses, JustOn periodically retrieves this information as usage data. With the continuous invoice run, JustOn itemizes the usage data, matches it against the defined SOW items and evaluates the provided quantity information. On this basis, it calculates the invoice line item's subtotal.


To illustrate the (flat) milestone-based solution, think of this example. There are three milestones in your project: project start, acceptance and ongoing service. You request an upfront payment at the project start, then you bill the remaining implementation costs on the acceptance date. Finally, you charge a recurring service fee.

To this end, you combine the following JustOn features:

According to the outlined example, the milestone-based solution may work like this:

(1) The first milestone is the project start. At this point, you request an upfront payment. To this end, you have JustOn create a deposit invoice from milestone #1. When your customer pays the deposit, you register the corresponding payment with the deposit invoice.


Deposit invoices do a trick, which may come in handy – in particular with new customers: You state your payment request, but you are not liable to taxes as long as the payment has not been made.

(2) Before milestone #2, you close the deposit invoice. This allows for issuing the final invoice and unregisters the payment from the invoice.

(3) Upon completing the implementation, you reach the second milestone – the project acceptance. On this date, you create the final invoice from milestone #2, which is automatically assigned the received payment. This reduces the amount to pay.

(4) The third milestone is when your project reaches the maintenance stage. During this phase, you repeatedly bill a service fee using JustOn's recurring billing capabilities from milestone #3.

Additional Features

Depending on your specific use case, you may need additional features like