- A material or labour item left at a $0.00 purchase cost can make the job profit ServiceM8 shows unreliable.
- ServiceM8 reads a $0.00 material cost as a sign that setup is incomplete, not as a true cost of nothing.
- A labour item at $0.00 is treated as zero profit rather than zero cost, so that line adds nothing to profit.
- Use $0.01 only for materials that truly have no cost, such as fees.
- Treat the job profit view as a check for jobs worth a second look, and keep your accounting package as the record.
Two settings can distort ServiceM8 job profit: a material or labour item with a purchase cost of $0.00.
Key takeaways
Why one number gets so much attention
After a field job, most owners and dispatchers want one answer: did this job make money? You look at what the customer was charged, look at what the job cost to deliver, and decide whether the quote held up once the van, the parts, and the hours were counted. It is a good habit, and it is one that busy trade businesses rely on.
The figure is only as good as the costs behind it. If a cost is missing, or has been entered as zero, the profit still appears as a finished number. That gap is the subject of this post.
Two settings in particular can distort job profit when they sit at $0.00. Neither is a bug in the everyday sense. They are fields that were left at zero, either on purpose or by accident, and ServiceM8 treats them in ways that are easy to miss when you review a job at the end of the day. Below we look at each one, how to spot it, and how to fix it without creating a new problem.
Start with what the profit figure is for
Before you act on the number, be clear about what it is for. ServiceM8's own guide on job costing says that if you require profit or loss reports that are guaranteed to be 100% accurate, you should perform that task in your accounting package (Job Costing Overview). Read that as a statement of scope. The job profit view is an operational check. It shows you which jobs deserve a second look. It is not the record you would give an accountant, and it is not the tool for closing a month.
That distinction makes the rest of this post easier to apply. A job-level check is useful because it is quick, but it is only as reliable as the costs that feed it. When a figure looks odd, the first question is what went into it, not what it says about the business as a whole.
How GP% is worked out
The same guide shows how profit and gross profit percentage are calculated. Its example: if you buy an item for $100 and sell it for $150, the total profit is $50 and the GP% is 33%, because 50 divided by 150 is 0.333333, or 33% (Job Costing Overview).
Notice the denominator. GP% is measured against the sell price, not the cost. That means the percentage moves whenever either number moves. If a cost is wrong, the dollar profit and the percentage are both wrong, so the percentage is not an independent check on the profit. That looks impressive and tells you nothing about the job.
Where purchase cost comes from
Purchase cost is the figure behind each material and labour item on a job. The guide says that if your ServiceM8 account is integrated with an accounting package, the purchase cost from that package will automatically sync to ServiceM8 (Job Costing Overview). When that works, the cost on the job reflects what you actually paid, and you maintain it in one place.
Not every item is that clean. Some materials are entered by hand and never pass through the accounting package. Some are small charges, such as fees, that were added once and then forgotten. Some labour rates were typed in when the price list was first built and have not been revisited since. Any of these can end up with a purchase cost of $0.00, and a zero is easy to overlook because it looks tidy at a glance.
Setting one: materials at $0.00
Here is the first setting. The guide states that 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 (Job Costing Overview). The software is not reading that zero as a true cost of nothing. It is reading it as a sign that setup is incomplete.
That affects how you read the profit figure. A job that used a $0.00 material carries a cost line that does not reflect what the part cost your business. The customer paid for that material. Your business still had to buy it. The profit view simply does not show that second half.
This one is easy to miss. The invoice goes out, the customer total is right, and the sell side of the job checks out. Only the cost side is wrong, and that is the side people tend to skip when they review a job quickly.
The fix is to correct the purchase cost at source. Find materials that carry a $0.00 purchase cost, confirm the real figure from the supplier invoice, and enter it. If the item comes across from your accounting package, correct it there so the right number syncs. Then look at recent jobs that used the same material, because they may carry the same error.
Setting two: labour at $0.00
The same guide says that if the purchase cost of your labour items is set to $0.00, the labour will be treated as zero-profit rather than zero-cost, as described in the material costs section above (Job Costing Overview). In plain terms, a labour line with a zero purchase cost adds nothing to the profit figure. The customer was billed for those hours, but the job shows no margin on them.
For many trade businesses, labour is a large part of the margin. A job that ran to time, used the right people, and was billed at the right rate can still look weak in the report if its labour item was left at zero. The result is a job that looks like it barely broke even when the work itself went well.
Dispatchers and office staff often add labour lines quickly, before anyone has confirmed the rate. If the item they pick was set up without a real purchase cost, every job that uses it will carry the same gap. That is why this setting is a team issue, not just a job for the owner to catch at the end.
The fix is to review every labour item in your price list. Each one should carry the labour cost your business has agreed to count against that work, set deliberately rather than left at zero. Do not reach for $0.01 here. The guide's $0.01 workaround is for materials that truly have no cost, such as fees. Labour usually has a cost you can put a figure on, and that figure is the one the profit view needs.
The $0.01 workaround, and when it is right
Some items genuinely have no cost. The guide's example is fees. If you sell materials that actually have no cost, such as fees, the guide says to set their purchase cost to $0.01 so that their sell price is treated as pure profit (Job Costing Overview). That is a deliberate workaround, and it is a sensible one for the right items.
The rule for using it is narrow. It applies only when the cost is truly nothing. It does not apply to a part you forgot to price, a labour item you have not decided on, or a material whose supplier price you have not looked up. A $0.01 cost on a real part is the same kind of error as a $0.00 cost, just with a different number. It only looks more deliberate.
Keep a short list of the items you have set this way, and review it now and then. A charge that had no cost when you set it up may pick up one later.
Illustrative example: a $0.00 material line
Take an illustrative job where a part sells for $150 and its purchase cost is $100. The margin on that line is $50. Now suppose the purchase cost was never entered and still reads $0.00. ServiceM8 treats that as a setup gap, not a real cost, so the job figure is not one to trust. Put the real $100 cost back into the item, recalculate the job, and compare the new profit with the old one.
The point of the exercise is not to chase a target percentage. It is to make sure the cost lines describe the work that was actually done.
Common places zeros creep in
Zeros rarely appear on purpose. They tend to come from a handful of ordinary situations, and it helps to know them so you can watch for them.
A quote built over the phone is one. Someone adds a part or a labour line during the call, picks an item from the list, and moves on. The cost may never have been checked because the goal was to get the quote out.
Parts bought for a specific job are another. The supplier invoice may arrive days later, and in the meantime the item sits at $0.00 in the job. If nobody goes back to it, the zero stays.
Items built by copying an older item are a third. The new item may carry the old setup, or none at all. Price lists also drift over time. An item that was set up correctly years ago may now have no cost on record.
Work done for free or at a discount is a fourth. The sell price may be zero or reduced, but the costs are real. Record the costs anyway, so the job shows what it cost to deliver. A goodwill visit with zero sell and zero cost hides the cost of the trip and the parts.
Set up the price list once, carefully
So the cheapest fix is a clean price list. Go through items one at a time and confirm each has a purchase cost that matches what the business pays or has agreed to count. Work through materials first, because they change with supplier prices, then labour items, which change less often but affect every job.
Group items by type so they are easy to review. Use clear names that say what the item is, so a dispatcher choosing from a list is less likely to pick a near-duplicate with no cost. If two items do the same job, decide which one to keep and stop using the other, instead of keeping both with different costs. For a wider look at setup, see job costing setup for field service.
Write down how each cost was set and when it was last checked. A short note kept with your price list makes the next review quicker, and it stops a future team member from guessing. Set a date to recheck costs, especially when supplier prices move. A cost that was right last year may now be wrong.
Who checks what
Owners tend to read the profit figure. Dispatchers tend to build the job. Office staff tend to match invoices. The two settings in this post sit at the point where those roles meet, so it helps to be clear about who does what.
Dispatchers should check the cost of any line they add, or flag a zero to the owner before the job is closed. Office staff should match supplier invoices to material items and tell the owner when a cost is missing. Owners should run the weekly sweep and decide how zeros get resolved, including any that touch fee items. A work order checklist for dispatch handoffs can help make that handoff routine.
If one person does all of this, the same routine still applies. Do the steps in order, one job at a time.
A short weekly sweep
Finding zeros one job at a time works, but a short weekly pass catches more. Pick a fixed time, such as the same morning each week, and review jobs completed since the last pass.
Start with the jobs that look unusual.
Then look at the items, not just the jobs. If the same material or labour item shows up with a $0.00 cost in several jobs, fix the item once. That is more effective than correcting each job by hand, and it stops the error from spreading.
Finally, write down what you changed and why. A simple note in a shared document is enough. Over a few months, it shows which items were most often left at zero, which tells you where setup needs a tighter routine.
Next step for today
Open the job profit view for the last few completed jobs and look for any material or labour line with a purchase cost of $0.00. Correct each item once, at source, then recheck the jobs that used it.
Questions owners ask
Should I set every cost to $0.01 so nothing looks missing?
No. That hides the gap instead of closing it. The guide reserves $0.01 for materials that truly have no cost, such as fees. Using it for everything turns the profit figure into a list of guesses.
What if I do not know the cost yet?
Leave a clear note on the job or the item so the gap is visible, and come back to it once the invoice or rate is confirmed. A visible gap is better than a convincing zero.
Does the job profit view replace my accounting package?
No. The guide says that if you need profit or loss reports guaranteed to be 100% accurate, you should do that work in your accounting package (Job Costing Overview). Use the job view to find jobs worth a look, and the accounting package for the record.
Do I need to fix old jobs too?
It depends on what you use the figures for. If you compare past jobs to plan pricing, a bad zero can mislead that comparison. Correct the items first, then review the older jobs that matter most to your decisions.
Make zero mean unknown
Put this in your team's routine as one plain rule: zero means unknown, not free. Everything else needs a real figure.
The guide's treatment of $0.00 materials shows that ServiceM8 reads a zero as a setup gap. Its treatment of labour shows that a zero changes the margin you see. Neither outcome is what you want from a number you are using to judge a job.
Closing
The two settings are simple to understand and easy to overlook. Set a purchase cost on every material and labour item, reserve $0.01 for real no-cost charges, and check the cost lines before you read the profit. A zero in a cost field is a question waiting to be answered. Answer it, and the profit figure becomes something you can use.