The Job Costing module can be used to keep track of expenditure which has gone into performing a job for a customer.

Expenditure can be both inventory and service in nature. The Job Costing module can be used to accumulate this expenditure and produce an invoice for the customer potentially charging the margin.


To create a new job you will need to:

  • Navigate to the Production module and click New Job

  • Within the New Job screen you will be required to provide the job description, the customer for whom the job will be performed (once a customer is selected, most of the information will be automatically filled such as the Contact details, Project Manager, etc. You can change this information in the screen if required) and expense account where the expenditure for the job will be accumulated (once an account is selected, a specific sub-account for this particular job will be created under this account), the status of the job (if the job is kept in Prospect, you will not be able to accumulate any expenses against the sub-account), estimated value if known, a budgeted margin as well as a tax rule.

  • You can also create additional attributes within the job. This will give you the ability to add additional information that is not already present in the screen. You will first need to create the Attribute Set within the Settings area before adding it to the particular job.

  • You have the ability to set a Start Date and also a Completed Date if it is known.

  • Next, you have the ability to create an automatic invoice with a starting date and a recurrence frequency, which can be Monthly, Weekly, Fortnightly, Quarterly, Half-Yearly and Annually. 

  • Then create milestones at which the customer will be invoiced. You then have the ability to create notes, create attachments, invoice the customer, and view history of all the invoices generated.



  • Once you've completed the job header, you can move on to creating milestones, which will be used to invoice the client.

Example, in the case of painting the fence, we'll first need to remove the paint, and then provide a comment, enter in an estimated and actual date then add another milestone, which will be paint the fence. Repeat this process as many times as necessary.



  • Then save the job and begin accumulating expenses to this particular job.


In this scenario we are going to remove the paint as the first milestone. We are going to require materials for this and we're also going to outsource the actual paint removal to an external company. We need to create a regular purchase order as described here.
The only thing to remember is to select the sub-account for this particular job in the Inventory account field.



In this example we will create a purchase order for Paint Stripper, Paint inventory items and Paint Removal service Item:



All stock receipts and purchase invoices need to be authorized.

Once the relevant goods have been received and the services have been performed, we have the ability to invoice the customer.

To do this, we need to return to our job:

  • Navigate to Production,
  • View the list of all jobs.
  • Then navigate to the Invoicing tab of the job and select the relevant milestone to invoice.
  • Here we can see the invoice from the supplier for the paint as well as the services that were provided with the relevant margin and the invoice amount.
  • Select this expenditure and then generate an invoice for the customer.



In this example we won't generate any invoice here, we will bill the client for the entire job at the very end. Prior to billing we also want to allocate some of our own labor expenses to this job that went into physically painting the fence. To do this we will need to use the Issue to Production module to write off labor expenses.




After the Issue to Production is Complete we have the ability to invoice the client for the complete job.
We need to:

  • Return to the list of all jobs.
  • Select the relevant job.
  • Within the Invoicing tab, we can select the milestone, Painting Fence, and we can then select the relevant expenditure to be invoiced.



To generate the invoice for the customer we'll need to click the Generate button.



This will create a sale task with the relevant invoice that can be viewed by navigating to the link. As we can see here, a service-based sale will be created for this customer and will include all items or all expenditure that incurred during the job. We then need to process the invoice as usual.