Skip to content

Help centre · Money

What a job actually made

Parts and labour cost against what you sold, job by job on the ticket — and a plain refusal, never a zero, when a cost is not on file.

For owner, manager · checked against the product on 2026-09-15

Open a repair order and look down the money rail, under the totals. The panel is called Profitability and it is folded: its one line carries the whole order's profit, or the words cost not set when there is no honest figure to give. Open it and it answers one question per job: what you sold it for, what it cost you, and what is left. The rail remembers if you leave it open.

It has one rule, printed at the top of the panel, and everything else follows from it: A cost we do not have is never a zero. If nobody clocked the job or the parts have no cost on file, the panel says so in words and shows no figure at all. It does not show zero, it does not show a dash and call that an answer, and it will not quietly add up a total from a half it does not have.

Reading the panel

Three rows for the whole ticket — Parts, Labor, Total — and then a By job section repeating the same three for each job, with what that job sold for above them.

A row that knows its answer reads the retail figure, then the cost, the profit and the percentage, and then says where the number came from — something like from 2.1 h clocked at Kwame Osei's rate or from 3 part lines with cost on file. A loss is shown as a loss, with the word on it as well as the colour.

Parts cost is what you paid, per line. Labour cost is clocked time priced at the rate that applied on the day the shift started — and for a technician on flat rate or hybrid, it is their allocated billed hours at their rate instead, which the provenance line spells out. Shop time with no job on it never lands on a job.

Everything here is before tax and before any order-level discount. If the ticket carries a discount the panel says so: the discount comes off the total and is not spread across the lines, so the real margin is lower than the one shown. That is worth remembering before you quote a percentage at somebody.

A core deposit is not in any of it. If a part carries one — a reman alternator, a caliper, a pair of axles — the customer is billed the deposit and the panel holds it out of retail, out of profit and out of the percentage, and says so underneath: of core deposit is billed on this repair order and is not in the figures above. That money is the customer's, held against the dirty unit and paid straight back to your vendor, so counting it as profit would show you a hundred percent margin on money you never keep. The same holds on the profit reports, which name the deposits they left out.

Commission uses the same base. A scheme set to Percent of eligible retail pays on labour, parts and outside work as the invoice froze them, less the discount given — before tax, without shop fees and without core deposits. Percent of labor sold pays on the frozen labour total on the same terms. Neither pays a percentage of the state's tax. A scheme belongs to the location where it was created; editing, retiring or restoring it from another location is refused.

Once the invoice is paid, the cost evidence is frozen onto it. The panel switches from Cost evidence is live until the invoice is paid. to Cost evidence was frozen when this invoice was paid. A punch added next week does not rewrite last week's margin.

The nine reasons it will not tell you

A refused row reads cost not set — lowercase, in place of the figure — then a sentence naming what is wrong, then a button to the desk where you fix it. These are the nine:

  • Nobody has clocked time to a job on this ticket. Nothing was punched. The button opens the time clock.
  • Somebody is still clocked on — the labor cost is still growing. Not an error; come back when they punch out.
  • No cost on any of the 4 part lines. Or 2 of 4 part lines have no cost. The button goes to the parts room.
  • No vendor cost on any of the 2 sublet lines. Or 1 of 2 sublet lines have no vendor cost. Outside work the shop paid for and never recorded. The button goes to the jobs on the ticket, not to the parts room.
  • No pay rate on file covering the day Dana Reyes worked. Rates are dated; this one has a hole in it. The button goes to the team screen.
  • Dana Reyes is salaried — hours don't price their time. Not a gap to fill. A salary is not an hourly cost.
  • Dana Reyes is paid by the billed hour and this job has none on it yet — flat-rate pay is the book time, and nobody has set it. Price the labor line.
  • The labor split set on this job no longer covers everyone who clocked to it (Jo Park), so it isn't being used and nothing has been guessed in its place.
  • Labor cost is not known, so the total isn't either. The total refuses whenever any component does, and it names the ones that failed — so this same sentence can read Parts cost is not known or Sublets cost is not known instead.

A job with no parts on it at all is not a refusal — it is a known zero, and says so. A percentage on a job that sold for nothing is withheld rather than shown as 0%, because a margin on nothing is not a number.

One reason a brand-new repair order reads cost not set when you were expecting a figure: a repair order made with Duplicate carries the original's part costs across, but never its sublet vendor costs. What a part costs you belongs to the part, so it copies alongside the price. What an outside vendor charged belongs to one car on one day, and nobody has sent the new car out yet — so that one starts empty and the outside-work margin waits for it. Open Edit on the sublet line on the ticket to put the figure in when the invoice arrives; until then it reads Vendor cost not set there.

There is a related sentence you will see on tickets with nobody on them: Work is underway and no technician is on this ticket — nobody is booked on it, clocked to it, or inspecting it. That is not about cost; it is about the car.

The same figures across the shop

Reports has a report called Order Profitability in the catalogue, one row per job, with a column headed Why no margin carrying the short form of the same reasons. Elsewhere on the page a missing margin shows as a dash plus a phrase like no time clocked to a job, with the full sentences collected once under Why a margin is missing. Same rule everywhere: a gap is named, never rounded to zero.

Who can see it

On the ticket, two money dimensions at once — What parts cost, and what they make and What labor costs the shop. Without both, the panel is replaced rather than removed, with a sentence explaining that the totals above are what the customer is charged and that an owner can switch the rest on. The carve-out that lets you see your own pay does not apply here: a technician does not get a ticket's cost just because they worked it.

Customer view hides it separately, with Profitability is hidden while customer view is on. Both gates have to agree before a figure is drawn.