Job Cost Tracking: Know Your Profit on Every Service Call
After six months running an aircon service team, Khun Apirak had a problem he could not see. Revenue looked fine. The team was busy. But at the end of each month, the cash balance never quite reflected what he thought the business had earned. There was always a reason — a slow payment, a big parts order, a van repair. He raised his prices by 10 percent. The cash position barely moved.
The issue was not his pricing. It was that he had no idea which jobs were profitable and which were quietly draining the business. He was averaging across every job, and the profitable ones were subsidizing the money-losers without him knowing.
This is the default operating mode for most small Thai installation businesses. Revenue goes in, costs go out, and the owner looks at the bank balance as a proxy for profit. It works until it does not — until the business gets bigger, or margins compress, or one loss-making job type quietly grows to dominate the calendar.
Job cost tracking is the practice of recording what each individual job actually cost to complete, then comparing that to what the customer paid. It is not accounting software or a full ERP — it is a discipline of closing the loop on every job with four numbers: what you charged, what you paid for labor, what you paid for parts, and what you spent to get there and back.
Why Do Most Small Install Businesses Skip This?
The answer is almost always the same: it seems like more work than it is worth, and the business has survived fine without it.
Both assumptions are understandable and both turn out to be wrong.
The extra work is smaller than it looks. Most of the data already exists — the invoice amount is on the quote, the labor time is on the technician’s schedule, the parts cost is on the supplier receipt. The missing step is collecting those three numbers against a single job record before the job closes. Once that habit is in place, you are not doing more work — you are capturing data that was always there but walking out the door uncaptured.
The “survived fine” assumption holds until a specific moment: when the business tries to grow, when a customer pushes back on pricing, or when a competitor undercuts a quote and you cannot tell whether matching the price would make money or lose it. At that point, not knowing your real job margins is a decision-making disability.
What Does a Job Actually Cost?
Four buckets cover almost everything.
Labor. The hours a technician spends on the job, multiplied by their cost per hour. For a full-time technician earning 18,000–25,000 baht per month plus social security, the all-in cost per working hour sits somewhere between 120 and 180 baht, depending on the employee. If the job took three hours and two technicians attended, the labor cost is roughly 720–1,080 baht before you have touched a single part.
Most owners undercount labor because they think about the technician’s monthly salary rather than the per-hour cost. The salary is a fixed cost whether or not the technician is working — but the job consumed real hours that could have been sold on a different job. Thinking in hours per job is the clearest way to see labor accurately.
Parts and materials. The cost you paid the supplier, not the price you billed the customer. A capacitor bought for 180 baht and billed at 350 baht carries 170 baht gross margin. A refrigerant charge bought at 420 baht and billed at 420 baht carries zero. Both look identical in revenue but are completely different in contribution. Tracking parts cost per job makes this visible.
Travel. The fuel and time to reach the site. A job 60 km from the nearest technician is not the same as a job 8 km away, even if the on-site work is identical. At 7–8 baht per km in fuel alone, a 120 km round trip adds roughly 840–960 baht to the job’s cost before anyone starts work. This cost rarely appears on the invoice.
Overhead allocation. This one is optional to start with, but worth understanding. Every job contributes to covering the fixed costs of the business — the van, the office line, the owner’s time managing the schedule. A rough allocation — say, 15–20 percent of revenue — ensures that job costing does not accidentally show a profit that is really just covering fixed costs.
What Happens When You Track Costs for 90 Days?
Businesses that start recording these four numbers consistently for a quarter almost always find the same two or three patterns.
One job type is noticeably more profitable than the others. It might be CCTV installs that bill well and use expensive parts that the business marks up cleanly. It might be annual MA visits on aircon units that are short, predictable, and require no parts. Whatever it is, knowing it lets you prioritize that work.
One job type is breaking even or worse. Emergency call-outs are a common culprit: the customer pays a flat emergency fee, but the job required two technicians, a long drive, and an after-hours visit that ate three hours of evening time. Alternatively, it is the small repeat jobs — the 350-baht service call that takes 90 minutes door to door and barely covers the technician’s hourly cost.
Distant sites are less profitable than they look. A job 80 km out of the city that bills 4,500 baht can be less profitable than a 2,500-baht job in the neighboring district, once travel time and fuel are subtracted.
Which Jobs Are Quietly Costing You Money?
The jobs most likely to lose money share a few characteristics.
Jobs priced flat without a time buffer are dangerous when they run long. A flat-fee aircon clean priced at 600 baht assumes 45 minutes on site. When the unit turns out to be a ceiling cassette requiring a ladder and two people, the actual time doubles and the margin disappears.
Jobs outside the core service zone consistently underperform because travel cost inflates without the invoice changing. If you notice a cluster of jobs in a particular area that always feel “not worth the drive,” cost tracking will quantify what your instinct is already telling you.
Jobs that require a second visit destroy margin twice: the first visit’s profit evaporates, and the return costs labor and travel with zero additional revenue. First-visit completion rate is one of the most important metrics in field service. A work order system that captures required parts before dispatch and confirms completion on-site directly protects this margin.
How Do You Start Without a Complicated System?
Start with four columns on a shared spreadsheet: job ID, revenue billed, labor cost (hours × rate), parts cost. Leave travel and overhead for a second iteration.
Run this for every job that closes in a month. At the end of the month, sum each column and compute gross margin by job type. This alone — three to four hours of data collection across the month — will surface patterns that have been invisible for years.
The common objection is that technicians will not record hours accurately. This improves dramatically when they check in and check out digitally — the clock runs automatically rather than relying on memory. Once that habit is in place, the next step is capturing parts costs at the point of dispatch rather than reconciling supplier invoices at month-end. Most owners find this step makes the biggest difference.
FAQ
What is a healthy gross margin for a Thai installation job?
It varies by job type, but as a rough benchmark, standard maintenance visits should gross 40–55 percent (before overhead), while equipment installation jobs — where parts cost is high — typically gross 25–35 percent. If you are netting below 15 percent gross on most jobs, pricing, parts cost, or labor efficiency is worth examining.
Do I need accounting software to track job costs?
No, not to start. A shared spreadsheet with job ID, revenue, labor hours, and parts cost captures the core data. Accounting software helps once you have enough volume that manual entry becomes the bottleneck, or when you want to reconcile job costs directly against your invoices and bank.
What is the difference between job costing and job pricing?
Pricing sets what you charge the customer before the job happens. Costing records what the job actually cost after it closes. Pricing without costing means your prices are based on guesses and competitor benchmarks. Costing without pricing discipline means you know your margins but cannot easily improve them. The two practices work best together: price from a known cost base, then track actual costs to keep the estimate accurate.
OnSiteQ is designed for Thai installation and maintenance businesses. Work orders capture labor time, parts used, and completion status on-site — giving you the per-job data that makes cost tracking straightforward rather than a second job after the job.
Ready to get your queue under control?
Start free today, no credit card required.