Job Costing for Project Businesses: Know Each Job's Margin Before It Closes

Code every cost to a job, apply overhead with a predetermined rate and estimate cost to complete each month, with an example job whose margin slid from 20% to 6% and showed it by month 3.

The figure 6% in large type on a blue grid beside a line drawing of a falling line that drops below a threshold, with the later points in black
In this article
  1. What Job Costing Is and Who Needs It
  2. Set Up Job Codes and Cost Categories Before Work Starts
  3. Allocate Overhead to Jobs
  4. Estimate Cost to Complete: The Number That Warns You Early
  5. Variations and Requests Made Mid-Job
  6. The Same Data Feeds Your Accounts and Your Tax
  7. Where to Start

Businesses that work in projects, such as interior fit-out contractors, system installers, custom software shops and advertising agencies, can usually see the company's profit for the year in their financial statements. What they cannot see is which jobs made money and which lost it, and most find out only after a job is finished, when nothing can be done about it.

Job costing fixes this by collecting costs job by job and reviewing every month where each job is heading. This article explains how the system is built, how to set up job codes, how to allocate overhead, and a worked example of estimating cost to complete that shows a problem months before the job closes.

What Job Costing Is and Who Needs It

OpenStax's managerial accounting textbook defines job order costing as an accounting system that traces individual costs directly to a final job or service rather than to a production department. It suits businesses where every job is different and costs are easy to trace to a job. The same text lists building construction, print services, advertising, accounting firms, consulting and repair services as examples.

Each job's cost has three parts.

  • Direct materials: materials bought for or issued from stock to that job.
  • Direct labor: pay for the people who do the work on that job, based on the hours actually spent. A subcontractor hired only for that job is also a cost you can trace directly to it.
  • Overhead: costs shared by many jobs, such as warehouse rent, vehicles, tools and supervisors' salaries, which have to be allocated to jobs.

All three accumulate on a job cost sheet for each job. While the job is in progress, these costs are work in process, and they become cost of goods sold when the job is delivered.

Set Up Job Codes and Cost Categories Before Work Starts

Whether the system works is decided on day one. If the documents created during a job carry no job code, the accounting team ends up guessing afterward which receipt belongs to which job.

  • Open a job code as soon as the customer accepts, and use it on every purchase order, stock requisition, timesheet and subcontractor invoice.
  • Set cost categories that match the lines in your quotation, such as materials, labor, subcontractors, equipment and other costs, so you can compare budget to actual line by line.
  • Record the job's cost budget from the quotation the customer accepted, not a number reset after work begins.
  • Have site teams log hours by job daily or weekly. Labor is the cost that disappears most easily without timesheets.

You do not need expensive software. A chart of accounts with a "job" dimension, or even a spreadsheet reconciled to the books every month, is enough to start. What you cannot skip is the discipline of coding every document at the source.

Allocate Overhead to Jobs

Overhead is incurred all year and is not tied to any single job. The standard method is to set a predetermined overhead rate at the start of the year and use it throughout.

Overhead rate = budgeted overhead for the year ÷ budgeted level of the allocation base

Overhead applied to a job = overhead rate × the base the job actually used

Common allocation bases are direct labor hours, direct labor cost and machine hours. Pick the base that moves most closely with how jobs actually consume shared resources.

Illustrative example: a fit-out contractor budgets annual overhead of THB 2,400,000 and expects 12,000 direct labor hours for the year. The overhead rate is THB 200 per hour, so a job that uses 1,500 labor hours absorbs THB 300,000 of overhead.

Actual overhead never matches the budget exactly. If actual overhead for the year is THB 2,600,000 but only THB 2,400,000 was applied to jobs, the THB 200,000 difference is underapplied overhead. The usual treatment is to adjust it into cost of goods sold at period end. From a management view, the gap tells you that quotations built on the old rate understated cost, and the rate should be revisited before you price the next job.

Estimate Cost to Complete: The Number That Warns You Early

Cost incurred to date only tells you how much you have spent, not what the job will earn. At each month-end, ask the site lead how much more it will cost to finish, then calculate three numbers.

Estimated total cost = cost to date + cost to complete

Projected gross profit = contract value − estimated total cost

Projected gross margin = projected gross profit ÷ contract value

Worked example

Illustrative example: an office fit-out worth THB 2,000,000 with a quoted cost budget of THB 1,600,000, for a planned gross profit of THB 400,000, or 20%, over five months. The month-end reviews look like this (THB).

Month-endCost to dateCost to completeEstimated totalProjected profitMargin
1300,0001,300,0001,600,000400,00020.0%
2650,000970,0001,620,000380,00019.0%
31,000,000800,0001,800,000200,00010.0%
41,450,000400,0001,850,000150,0007.5%
5 (done)1,880,00001,880,000120,0006.0%

The signal is clear at the end of month 3, when the site lead reports THB 800,000 still to spend and projected profit drops from THB 380,000 to THB 200,000 in a single month. Looking only at the THB 1,000,000 spent against a THB 1,600,000 budget, you would see 62.5% of the budget used, which does not look unusual.

Bar chart of projected gross margin for the example THB 2,000,000 job at each month-end review: 20.0%, 19.0%, 10.0%, 7.5% and 6.0% for months 1 to 5, against the 20% target in the quotation
The job's profit did not vanish at close. It started slipping in month 3, with two months still left to act.

Seeing the signal in month 3 still leaves the owner options: find out whether the cause is material prices, rework or scope the customer added; switch materials not yet ordered; or negotiate a price for work outside the contract. Finding out in month 5 leaves only one option, which is to accept the result.

Variations and Requests Made Mid-Job

The most common leak in project profit is extra work the customer asks for verbally and the site team does on the spot. The cost goes into the job but the revenue never follows. To prevent it:

  • Require a document with the customer's approved price before any extra work starts.
  • Open a separate sub-code for each variation, so you can see whether the extra work itself is profitable.
  • Update the contract value and cost budget on the job cost sheet as soon as a variation is approved, so variations do not get mixed up with overruns on the original scope.

The Same Data Feeds Your Accounts and Your Tax

Job cost data is not only a management tool. Jobs that span a financial year-end often have to recognize revenue by stage of completion, and if you measure completion by the share of cost incurred, you need both cost to date and estimated total cost. The table above is the same data your accountant needs (details in our article on revenue recognition for services, projects and subscriptions).

On the tax side, Revenue Department Order Tor.Por. 1/2528, clause 3.6, requires companies and juristic partnerships in the construction business to include the related income and expenses in each accounting period according to the percentage of work completed under generally accepted accounting methods. A business without job costs will find it hard to compute income on that basis.

Where to Start

  1. Pick one job that is about to start, open a job code, and set cost categories that match the quotation lines.
  2. Require every purchase order, stock requisition and timesheet to carry a job code.
  3. Calculate this year's overhead rate from the budget for shared costs and the expected labor hours.
  4. Hold a short month-end meeting with each site lead to update cost to complete, then review projected profit on every job against a trigger for immediate investigation. The chart above uses 15%, which the example job breached in month 3.
  5. When a job closes, compare actual cost with the quotation category by category, and use the gaps to adjust how you price the next job.

Job costing does not make every job profitable. It shows you the jobs that are losing money while there is still time to act, and it lets your next quotation rest on actual costs rather than memory.

Sources

About Unigin Ventures

A venture capital firm investing in startups and SMEs in Thailand and the CLMV countries, with support across business strategy, accounting, legal matters and technology.

About us

This article is general information for learning purposes, not investment, legal, accounting or tax advice for your specific situation. Laws and tax rates change; please check with the relevant authority or a qualified adviser before making decisions.

Unigin Ventures

Building something worth backing?

Unigin Ventures invests in and supports startups and SMEs with capital and advice on finance, accounting, legal matters and technology.