Short answer: job costing is establishing after the fact what an order, project or production run actually cost, compared to the estimate you made in advance. The value is not in the total amount, but in the difference and its cause: did you work more hours than budgeted (volume variance), were those hours more expensive than your rate (budget variance), or did the material get out of hand? Whoever knows that per order calculates more sharply next time. Below we explain the principle, with a calculator that splits the variance for you straight away, and we show how you automate it in Odoo.
Estimate and job costing: two sides of the same order
Every order starts with an estimate: you assess the hours, the material and the other costs, add your overhead markup on top and arrive at a price. That estimate is your plan, and often your standard cost as well.
Job costing is the reckoning with reality. You collect the actual hours logged, the actual material consumption and the actual rates, and put those next to the estimate. The difference is your learning moment:
- If the order structurally overruns on hours, you are calculating too tightly, or your process is stuttering.
- If the rates are higher than planned, your hourly rate is outdated or you are running below your normal capacity.
- If the material does not add up, there is waste in it, or your purchase price has gone up.
Without job costing you do know at the end of the year whether your business made a profit, but not on which orders and why. That is the difference between a result that happens to you and a result that you steer.
Work it out yourself
Fill in your estimate and actual cost. The tool calculates the result on the order and splits the difference into the three causes that together add up exactly to the total.
Estimate
What you calculated up front (the standard cost).
Actual
What the order actually cost.
The variance, split by cause:
- Volume variance (hours) € 0 More or fewer hours than estimated, at the standard rate.
- Rate/budget variance € 0 Each hour dearer or cheaper than the standard rate.
- Material variance € 0 Actual material used versus the estimate.
Illustrative model. A negative result means the order cost more than estimated. In a real manufacturing ledger these three variances roll out of your postings automatically, per order.
What you see happening above is the core of cost analysis: the total difference between estimate and actual cost falls apart exactly into three explainable pieces. That “exactly” is no coincidence but an arithmetic identity, and that is precisely why it is usable: every euro of variance has an address.
The difference broken down: volume, budget and material
The three variances from the tool are the standard language of cost accounting.
- Volume variance (hours).
(actual hours − calculated hours) × standard cost. This isolates the quantity of work: did you need more or fewer hours than planned? Valued at the standard cost, so that a rate change does not cloud the picture. - Budget or rate variance.
actual hours × (actual rate − standard cost). This isolates the price of an hour: did each hour worked turn out more expensive or cheaper than your standard cost? A higher actual rate often points to undercapacity, overtime or an outdated rate. - Material variance.
actual material − calculated material. Waste, price increase or an overly optimistic material calculation.
This split comes straight from the cost accounting textbooks (whoever has worked through Boekhouden Geboekstaafd part 3 will recognise the volume and budget variance). It works for a production run just as well as for a construction project, an installation job or a consulting assignment: everywhere you calculate in advance and register hours and material afterwards.
Job costing per sector
The principle is universal, the implementation differs per sector:
- Production. Job costing per production order, with material, machine hours and surcharges. If you want to have that balance out on your balance sheet (work in progress, standard cost, variance account), you end up at real manufacturing accounting.
- Construction and installation. Job costing per project or per specification: budgeted versus spent man-hours and material, with additional and reduced work. See also software for construction companies and software for field service installers.
- Project organisations and service providers. Job costing based on logged hours against a rate, often the determining factor for your margin.
Automating job costing in Odoo
The pitfall of job costing is that it becomes a loose exercise: afterwards putting hours from one system and costs from another side by side in a spreadsheet. Then the job costing is always too late and never complete.
Better is job costing that rolls out of your administration itself. In Odoo that works like this:
- Estimate as standard cost. You record the calculated cost price as the standard cost on the product or the project budget.
- Registration where the work happens. Hours on the work order or the project, material via stock movements, machine costs via work centers. Record once, at the place where it arises.
- The difference posts itself. On completion, the difference between actual costs and standard cost lands on a variance account, directly analysable per order and per customer via the cost analysis.
For production companies that want to carry this through to the operation step and onto the balance sheet, we have worked out the full posting flow in a separate demo: manufacturing accounting in Odoo. There you see how work in progress, coverage accounts and the variance posting land neatly on the trial balance.
Frequently asked questions
What is job costing? Establishing after the fact what an order, project or production run actually cost: all the hours, materials and costs spent, set against the estimate.
What is the difference between an estimate and job costing? An estimate is the cost price budgeted in advance (that you quote with); job costing is the actual cost price after the fact. The difference you split into volume, budget and material variance.
How do you calculate job costing? Actual hours times actual rate, plus actual material, minus the estimate. Split the difference by cause (hours, rate, material), as the calculator above does.
What is a volume variance and a budget variance? The volume variance comes from more or fewer hours than budgeted (at standard cost); the budget variance from a deviating hourly rate. Together with the material variance they explain the whole difference.
Can you automate job costing in Odoo? Yes, by working with a standard cost and registering hours and material on the order; the difference then posts itself automatically on a variance account, analysable per order and customer.
Want job costing to roll out of your system instead of out of a spreadsheet? Book a free Odoo scan - then we walk through your calculation, hours and material registration and show where job costing can happen automatically.
Read more: Calculating cost price: direct and indirect costs · Manufacturing accounting in Odoo · Odoo for manufacturing companies · Software for construction companies · Software for field service installers · What does an Odoo implementation cost? · The TARGET method