This article provides an overview of how the Job Costing feature works.
ServiceM8's Job Costing feature is designed to be super simple. It gives you a quick estimated profit/loss figure on each job, which is based on the purchase costs of each material, the direct costs of labour, and the "hidden cost" of administration time. This enables you to:
- Helps prevent under-quoting for jobs
- Check that you've remembered to charge for all labour recorded against a job
- See which types of jobs are good for your business, and which ones are not
It's important to remember that the numbers produced by the Job Costing add-on are estimates. The Job Costing add-on has been specifically designed to work without any extra administration burden -- it uses all data sources that are available, and will never prompt you to enter data if that data can be estimated from something that ServiceM8 already knows. If you require profit/loss reports that are guaranteed to be 100% accurate, you should perform this task in your accounting package.
How to View Profit Information
When the Job Costing add-on is activated, you will see an extra icon on the Quotes & Invoicing tab of the Job Card which shows the estimated profit for that job. Move your mouse over the icon to view a simple breakdown of Materials versus Labor profit. Click the icon to view a more detailed breakdown.
How Profit is Calculated
The profit on each job is calculated as follows:
Profit = (Invoiced Amount) - (Material Cost + Labor Cost + Admin Cost)
The Invoiced Amount is simply the amount that appears on the invoice you send to the customer. The following sections explain how each cost is estimated.
The GP% column shows the Gross Profit, i.e. the percentage of the selling price which is profit. For example, if you buy an item for $100 and sell it for $150, then the total profit is $50 and the GP% is 33% (50/150 = 0.333333 = 33%).
Material Costs
Each material/service in ServiceM8 has a Price (what you sell the item for) and a Purchase Cost (your cost to buy the item). If your ServiceM8 account is integrated with an accounting package, the Purchase Cost from your accounting package will automatically sync to ServiceM8. Otherwise, you can enter the Purchase Cost in Settings > Materials/Services.
If the Purchase Cost of a material is $0.00, ServiceM8 assumes that the material has not had its correct Purchase Cost set up yet. While calculating profit for a job, ServiceM8 treats these materials as if their Purchase Cost was equal to their sell Price (i.e. zero profit). This prevents ServiceM8 from over-estimating the profit on a job and potentially costing your business money. If you sell materials that actually have no cost (e.g. surcharges or fees), then set their Purchase Cost to $0.01 to ensure that their sell price is treated as pure profit.
You can adjust the sell price of each item in the Quotes & Invoicing tab of the job card, however there is no column for "Cost" in the Material/Services list (because the job costing & profit add-on is designed to not add extra data entry tasks), so you cannot adjust the purchase costs there. If you need to be able to set Purchase Cost for each Material/Service on a job, you can enable the Margin Billing add-on which will add "Cost" and "Margin" columns to the Job Card. Otherwise, purchase costs should be set in your accounting package or in the Settings area.
Labor Costs
If a Material/Service has the keyword "labor" or "labour" in its Item Number or Name, then ServiceM8 treats it as a Labor item and its costs/profits will be included in the Labor section of the profit breakdown. The hourly cost of labor items comes from the "Purchase Cost" field of the Material/Service item, and is set up in the same way as for materials. If the Purchase Cost of your labour items is set to $0.00, then the labor will be treated as zero-profit rather than zero-cost, as described above in the Material Costs section.
To calculate labor costs for a job, ServiceM8 needs to determine two things: the number of hours worked on the job, and the hourly rate for labor.
Hours Worked
If check-in data is available, then it will be used as the source for determining the number of hours worked on the job. Otherwise, the total quantity of Labor items billed will be used. In this case, the profit breakdown will show "Estimated" labour time instead of "On Site" labour time.
Hourly Rate
The hourly rate is determined by the Purchase Cost of the labor item, which is synced from your accounting package or manually set up in Settings > Materials/Services. In cases where multiple different labor rates are billed on a single job (e.g. Apprentice Labor and Tradesman Labor), the weighted average of the rates is used as the hourly cost for all check-in times on that job. If you want to override this, you can assign a labor rate to each individual check-in item in the check-in editor window.
If there is check-in data recorded, but no labor items have been added to the Quotes & Invoicing tab of the job, then ServiceM8 will default to most frequently used labor rate to calculate the hourly rate.
Admin Costs
Administration costs are a "hidden cost" for many businesses, and the Job Costing add-on helps you to see where your admin time is being spent. It does this by tracking the total amount of time you spend inside ServiceM8 working on the Job Card. This helps to highlight situations where you spend hours preparing a detailed quote for a relatively low-value job. Admin time tracking only counts time spent with the Job Card open and the mouse/keyboard active -- so if you leave the Job Card open while you go to lunch, ServiceM8 is smart enough to exclude that from the "Admin Time" total.
The hourly rate for admin time defaults to $20/hr. You can change this by editing Purchase Cost of the "Admin Time" Material/Service item that ServiceM8 automatically creates when Job Costing is activated.