How to See If a Job Made Money with Job Costing in ZartonAI
Put timesheet hours and materials used next to what you quoted, invoiced and were paid — and find out which jobs, job types and customers really pay the bills

The invoice went out, the customer paid, and the job felt like a good one. But did it actually make money? Two extra days on site, a second trip to the supply house and a helper you forgot to price in can quietly turn a “good job” into one that barely covered its costs.
This guide shows you how to use job costing in ZartonAI to see what each job really cost against what you quoted and invoiced. You will log the hours and materials that went into a job, read its margin, compare it with similar jobs and with that customer’s other work, and use what you learn to price the next one.
Why job costing matters for a trade business
Most electricians, plumbers, HVAC companies, body shops and contractors know their revenue to the dollar and their profit per job only roughly. The estimate says what you planned to spend; the bank balance says what happened across the whole month. Neither tells you which jobs, job types or customers are carrying the business and which ones are dragging it down.
ZartonAI already holds the pieces: the estimate on the job, the invoices and payments, the hours your team logs on their timesheets and the materials taken out of stock for the job. Job costing puts them side by side, so each job ends with a real number instead of a feeling.
What a job costing report shows
| Line | Where it comes from |
|---|---|
| Quoted | The estimate the customer accepted for the job |
| Invoiced and paid | The invoices raised for the job and the payments recorded against them |
| Labour | Hours logged against the job on timesheets, multiplied by each person’s hourly cost |
| Materials | Stock used on the job, net of anything returned |
| Cost and margin | Labour plus materials, and what is left of the job’s revenue, in dollars and as a percentage |
| Comparisons | Finished jobs of the same type, and this customer’s other jobs and their average margin |
How to use job costing in ZartonAI, step by step
- Give each job a type. When you create or edit a job, set its type — installation, repair, maintenance, inspection, service call, remodel, new construction, emergency or other. Job costing compares a job with finished jobs of the same type, so a water heater swap is measured against other service calls, not against a kitchen remodel.
- Make sure each person has an hourly cost. Labour cost is worked out from the hours a person logs and what an hour of their time costs the business. That cost is kept on their team record, not on the job, and job costing shows labour as hours and a total for the job rather than person by person.
- Have the crew log hours against the job. On My hours, each worked row has a job picker, with the person’s own jobs listed first. Choosing a job also records its site. When someone puts hours on a job, those hours count toward its labour cost.
- Require a job on worked hours (optional but recommended). In the timesheet settings, under the pay code rules, a manager can turn on Hours by job: off, warn, or refuse to submit a week when worked hours don’t say which job they were for. You can apply it only to people who are on jobs, and decide whether people can pick any open job or only their own, and whether they can pick a job site instead.
- Record the materials that went on the job. When parts leave the shelf or the van for a job, record them as used on that job from the location they came from. If something comes back unused, record a return from the job. Job costing counts what was used minus what was returned, at the stock item’s cost.
- Read the job’s costing. Open job costing for the job to see what was quoted, invoiced and paid, the labour hours and their cost, the materials, the total cost and the margin. Underneath, it shows how the job compares with finished jobs of the same type and with this customer’s other jobs.
- Review your recent finished jobs together. Leave the job out and job costing lists the margins of your recent finished jobs, lowest first, with the average. Start at the top: the jobs that made the least are the ones worth a conversation.
- Price the next job from what similar jobs really cost. Before you write the next estimate, look at what jobs of that type actually cost, not just what you charged last time. If one kind of job keeps landing under your target margin, adjust your rates or the way you build that service up.
Tips and common mistakes
- No hours logged means no labour cost. If nobody picked the job on their timesheet, the job shows zero labour and a margin that looks far better than reality. A margin near 100% almost always means the costs were never recorded, not that the job was free to do.
- Record materials as you go. “I’ll log it later” becomes never. Recording use from the van on the day keeps both your stock count and your job cost honest.
- Don’t forget returns. Leftover wire or fittings that go back on the shelf should be returned from the job, or the job carries a cost it didn’t have.
- Compare like with like. A job with no type, or the wrong one, gets compared with the wrong jobs. Keep job types accurate.
- Look at customers, not just jobs. A customer whose jobs average a thin margin may be worth repricing, even if each single job looked fine.
Do it with Claude
ZartonAI works with Claude through the Zarton connector, so you can ask about job profit in plain language from your phone or laptop. Claude reads the job costing and quotes its figures; it reports labour as a total and never states a person’s pay rate. Try requests like:
“Did JOB-14 make money? Show me labour, materials and the margin.”
“Which of our recent finished jobs had the lowest margin?”
“How does the Elm Street water heater job compare with our other service calls?”
“What materials went on JOB-12, and what did they cost?”
“I need to price a panel upgrade. What did similar jobs actually cost us, and what did we charge?”
See what else Claude can do on our Works with Claude page.
Frequently asked questions
Where does ZartonAI get the labour cost for a job?
From the hours your team logs against the job on their timesheets, multiplied by each person’s hourly cost from their team record. The report shows the labour total only, not individual pay.
Does job costing show what each person is paid?
No. Labour is shown as hours and a total cost for the job. Each person’s hourly cost stays on their team record.
How are materials counted?
Stock recorded as used on the job, minus anything returned from the job, at the item’s cost.
Why does a job show a 100% margin?
Because no hours or materials were recorded against it. Ask the crew to pick the job on their timesheets and record the materials used, and the margin will reflect what the job really cost.
Can I see margins for all my recent jobs at once?
Yes. Open job costing without choosing a job to list your recent finished jobs by margin, lowest first, with the average.
Related reading
- How to Run Jobs from First Call to Final Invoice in ZartonAI — set up the job that job costing measures.
- How to Track Parts and Materials Stock in ZartonAI — record the materials that go on each job.
- How to Create and Send Estimates in ZartonAI — price the next job from what you learned.
Know which jobs pay the bills. Log your hours and materials against your next job in ZartonAI and see its real margin the day it closes.
Try it at zartonai.com











Comments
No comments yet — be the first to share your thoughts.
Join the discussion