Job costing in field service: what each job earned after its own costs
Updated 16 October 2026
Job costing records every cost a job creates against that job: technician labor, the payroll costs on top of wages, parts, subcontractors, equipment, callbacks, permits, disposal and drive time. The result is a margin for each job. A full schedule tells an owner the phones are ringing. The job margin tells the owner whether the work on that schedule makes money. This page sets out what each job record holds, the arithmetic, how revenue is split by type, and the decisions the margins support.
What each job record holds
| Line | What goes in it |
|---|---|
| Job revenue | Everything the customer is billed for the job. |
| Direct labor | Technician or crew wages for the hours on the job. |
| Labor burden | Payroll taxes, benefits, workers' compensation and related costs on those wages. |
| Materials | Parts, supplies and stock used on the job. |
| Subcontractors | Outside labor or specialist work bought for the job. |
| Equipment | Rental, or a usage charge for owned equipment. |
| Travel and dispatch | Drive time, fuel and extra miles from routing. |
| Callbacks | Return visits that use labor and parts and bill nothing. |
| Gross profit | Job revenue less all the direct costs above. |
| Gross margin | Gross profit divided by job revenue. |
Storm Guard's 2026 Franchise Disclosure Document (FDD), the disclosure a franchisor hands a prospective franchisee, gives an average job size of $19,378.90. The Storm Guard page divides its profit and loss into a weekly job count: the top 15% of franchisees complete 5.6 jobs a week and the bottom 15% complete 0.8. That is 292.5 jobs a year against 43.0, a gap of about 250 jobs. At $19,378.90 a job, a Storm Guard owner reads each job record as a large share of the month, so every line above needs to be complete.
The arithmetic for one job
Start with job revenue. Subtract direct labor, labor burden, materials, subcontractors, equipment or rental, permits and disposal, and the cost of callbacks and warranty work. What remains is job gross profit. Divide it by job revenue to get the job's gross margin. Overhead, such as the office, dispatch and the owner's salary, sits below this line and is covered by the gross profit of all the jobs together.
A plumber bills $2,400 to replace a water heater. Three technician hours at $55 cost $165 in wages, and burden adds $41. The heater and fittings cost $950, a dolly rental $35, the permit and disposal $75, and a callback allowance $60. Direct costs total $1,326. Job gross profit is $1,074 and the gross margin is 44.75%. The figures are an illustration.
Splitting revenue by type inside a job
Some jobs mix labor revenue with resold materials and subcontracted work. Coding each type to its own revenue line lets the owner see the margin on labor and the markup on parts as separate figures. A franchise brand can also charge a different fee on each type, which makes the split a cost line of its own.
Mr. Handyman charges a 3.5% license fee on material and subcontractor revenue against 7% on the rest, with the 2% marketing fee applying to both. On a $742 Mr. Handyman job with $200 of material revenue, the license fee is $44.94. Coded as all labor, the same job would carry $51.94, which is $7.00 more. The $200 split is an illustration. The rates and the $742 average job come from the Mr. Handyman FDD.
What job margins decide
- Which services earn their keep and which are priced too low.
- Which technicians or crews produce the most gross profit.
- Which jobs lead to callbacks and warranty costs.
- Which customers or contract types fill the schedule at a thin margin.
- Whether flat-rate, hourly or project pricing needs to change.
- Whether the company can carry another truck, technician or crew.
Each of these comes from sorting the job records by a field: service type, technician, customer or contract. Bidding the next job also starts from the actual costs of the last ones.
Window Genie's average business sells $549 a job. The Window Genie page reports $1,231 at the top business and $262 at the lowest, 4.70 times apart, across a service mix that runs from gutter cleaning to whole-house window tinting. A Window Genie owner who sorts job records by service type finds which services sit near $262 and whether their margins cover the drive between them.
What this means for an owner
Each job carries its own labor, burden, parts, subcontractors, equipment, travel and callbacks. Job revenue less those costs is job gross profit, and dividing by revenue gives the margin. Revenue types inside a job get their own lines, and a franchise fee can differ by type. Sorting the job records answers which services, crews and customers earn money and whether the company can add capacity.
Have job costing set up and reviewed
Averan sets up job-level coding, closes each month and reviews job margins with the owner. The controller service page describes that work. The pricing and margin page shows how job costs feed the next price.
Where to next
Want the books off your plate?
Book a short call, and we'll give you an expert view of your situation.
Free Consult →Also here
If you want this done for you
What happens next
Reading about it and having it done are different things. Here is exactly what happens if you want the second one.
- The call takes thirty minutesYou describe the business and where the numbers are letting you down. We give you an expert view of your situation, and what we would start with. There is no pitch deck.
- We look at the fileYou give us read access to the books as they are. We come back with what is wrong, what it will take to fix, and whether the answer is bookkeeping, controller work, or something else.
- We send a written scope and a priceIt lists what we do each month, what you get, the date it lands and the fee. We agree it before anything starts, and it does not change unless you agree.
- We take over the books and close the first monthWe set up access and systems and enter the opening balances. The first close lands on the date in the scope, and every one after it does too.