That rule of thumb is not stupid. It was calibrated, once, against a real order book — and it stays right for exactly as long as the work stays the same shape. The trouble is that a job shop’s work never stays the same shape. A fabrication order that is mostly plate and a few hours of welding sits in the same order book as a machining order that is a cheap casting and three days on the VMC. One rule cannot price both.

What follows is the four-layer build-up, worked to the rupee on two real-shaped batches from the same Gujarat job shop — and the one decision inside it that quietly decides whether the shop makes money.

Two batches of forty costed two ways — the material-heavy frame job and the work-heavy valve body job, each shown as a stack of material, labour and overhead, with the overhead block inverting between absorbing on material value and absorbing on machine hours
Same two jobs, same overhead pool, two absorption bases. Only the orange block moves — and it moves in opposite directions.

The four layers — and what is not in them

Every rupee a job costs you falls into one of four buckets, and they get harder to measure as you go down the list.

1
Direct material

Everything that physically leaves the store against this job. Traceable, countable, and the only layer most shops get roughly right.

2
Direct labour

The hours people spent on this job, at what those people actually cost you. Traceable in principle; almost always priced wrong.

3
Machine and process cost

The time the job occupied a machine or a work centre. Setup once per batch, cycle time per piece — and the two behave completely differently.

4
Factory overhead

Everything the factory spends that cannot be pinned to one job — rent, power, the supervisor, depreciation. Not traceable at all. This is the layer that has to be allocated, and the allocation is a choice you make.

Two things are deliberately not on that list, and keeping them off it matters.

⚠️
Selling and admin cost does not belong in a job cost

Office rent and salaries, director remuneration, interest on the cash credit limit, marketing, travel, audit fees, bad debts — these are period costs. They come out of gross margin, not into factory cost. Push them into the job and you have double-counted, because the margin you then add on top is exactly what is supposed to be covering them.

Layer 1 — The material that leaves the store

The BOM line says 62 kg. Stores issued 71 kg. The job cost is 71 kg.

That gap — offcut, cutting loss, the end of a bar that will not make another piece, the sheet that was nested badly — is real money and it is not optional. If you cost the finished weight, you have handed the difference to the customer for free.

Three decisions to make once, and then stop re-arguing:

Gross input, or net weight plus a scrap percentage?

Either works. What matters is that the number you use is the number you buy. For an MS frame at 62 kg finished, cut from 71 kg of plate, gross input is 71 kg — and 71 kg at ₹58/kg is ₹4,118, against ₹3,596 if you costed the finished weight. On a batch of 40, that is ₹20,880 you were about to give away. Our material cost calculator and metal weight calculator do this build-up for you, and How to Calculate Metal Weight covers the formulas.

Do you credit recovered scrap?

MS offcut that sells at ₹28/kg against a ₹58/kg purchase rate is worth crediting — 9 kg of it is ₹252 a frame. Whether you carry the full gross cost and credit scrap separately, or net it off inside the material rate, is a matter of taste. Doing both, or neither, is not. For moulders this question is the whole ball game; Tracking Material Wastage in Plastic Injection Moulding goes into runner and regrind accounting in detail.

Which rate — the last purchase, the average, or the lot you issued?

This is where quoting and accounting part ways, legitimately.

Keeping those two separate is the point of the exercise. The gap between them is either a purchasing problem or a quoting problem, and you cannot tell which until you can see both numbers side by side.

Layer 2 — What an hour of your own labour actually costs

Almost every shop we onboard is using the wage as the labour cost. Take a skilled machinist on ₹25,000 gross: divide by 26 days of 8 hours and you get ₹120 an hour, and that is the number in the quote.

Two things are wrong with it. The wage is not what he costs you, and paid hours are not hours on jobs.

The real hourly rate for one skilled machinist
LineAmountNote
Gross monthly wage₹25,000What appears on the wage sheet
Employer PF (~13% on the ₹15,000 wage ceiling)₹1,95012% PF plus EDLI and admin charges
Employer ESINilGross is above the ₹21,000 coverage limit
Bonus accrual₹1,750Diwali bonus, spread monthly
Gratuity accrual₹800~4.81% of basic
Cost of employment₹29,50018% above the wage
Paid hours (26 × 8)208 hrsWhat you are billed for
Productive hours on jobs155 hrsAfter leave, tea, waiting for material, meetings, cleaning
Rate most shops use (₹25,000 ÷ 208)₹120/hrWage ÷ paid hours
Rate you should use (₹29,500 ÷ 155)₹190/hrCost of employment ÷ productive hours
📉
₹120 against ₹190 — the real rate is 58% higher

And it is not a rounding error you can absorb, because it applies to every labour hour in every quote you have issued this year. Helpers and unskilled hands run lower, but the same two corrections apply to them. Factory Payroll in India works through the PF, ESI, bonus and gratuity arithmetic in full.

The 155-hour figure is the one people argue about, and it should be argued about — it is your number, not ours. But be honest when you set it. An operator does not spend 208 hours a month cutting metal. He arrives, he waits for the crane, the material has not come from stores, the previous job is still on the machine, he goes to the canteen. Seventy-five per cent of paid hours actually on jobs is a good shop, not a bad one.

Layer 3 — Setup is a batch cost, cycle time is a piece cost

This is the layer that catches out repeat orders, and it catches them out badly.

A job needs 90 minutes of setup: fixture on the bed, tool offsets, first-off inspection, adjust, run. During those 90 minutes the machine is occupied and the operator is on it — so it costs the combined labour and overhead rate. Take ₹190 labour plus ₹420 overhead (we get to that figure in a moment) and setup runs at ₹610 an hour. Ninety minutes is ₹915.

Setup cost per piece = setup cost per batch ÷ batch quantity

₹915 over 40 pieces is ₹23 a piece. The same ₹915 over 4 pieces is ₹229 a piece.

A ₹206 swing per piece on an identical part, caused by nothing except the quantity on the order. This is why the customer who liked your price for 40 and came back for a repeat order of 4 is not doing you a favour, and why a cost per piece is meaningless without a batch quantity written next to it.

One machine rate, or one per work centre?

A single blended rate across the whole shop is fine when the machines are similar. It stops being fine the moment you have a ₹40 lakh VMC and a ₹80,000 pillar drill absorbing at the same rate — the drilling work then quietly subsidises the VMC work, and your VMC jobs look cheaper than they are.

The same argument applies to labour-paced work. Welding, assembly and painting are not set by a machine; they are set by a person. If half your shop is labour-paced and half is machine-paced, one rate for everything reproduces the exact error this article is about, just at a smaller scale. Two rates — a machine-hour rate for the machine shop, a labour-hour rate for fabrication and assembly — is usually enough. Capacity Planning for Small Factories covers working out those hours when the machines, not the material, are the constraint.

Layer 4 — The pool, the base, and the rate

Overhead is the only layer you cannot measure per job, so it has to be spread. Spreading it takes two numbers: a pool (how much there is) and a base (what you spread it across).

The pool: one year of factory overhead

Take last year’s accounts. Our worked shop is a 22-person fabrication and machining unit near Ahmedabad doing about ₹3 crore, with 16 direct workers and 6 indirect.

Factory overhead (annual)Amount
Factory rent₹4,80,000
Power₹9,60,000
Indirect salaries — supervisor, storekeeper, QC, helpers₹12,00,000
Maintenance, spares, shop consumables₹5,40,000
Depreciation on plant₹6,00,000
Tooling and fixtures amortised₹2,40,000
Insurance, safety, housekeeping₹1,80,000
Total overhead pool₹42,00,000

The base: what does the job actually consume?

The shop has 6 principal work centres. One shift, 8 hours, 25 days a month, 12 months gives 14,400 theoretical machine hours. It never runs 14,400 — realistic utilisation is around 70%, so call it 10,000 productive machine hours.

Overhead rate = ₹42,00,000 ÷ 10,000 hrs = ₹420 per machine hour

ℹ️
Absorb on expected hours, not theoretical hours

Divide the same ₹42 lakh by 14,400 theoretical hours and the rate drops to ₹292. It looks more competitive and it is simply wrong — you would end the year having recovered about ₹29 lakh of a ₹42 lakh pool, and the missing ₹13 lakh shows up as a P&L that will not match your job cards. Use the machine utilisation calculator or the production capacity calculator to get an honest hours figure before you divide by it.

The base most Indian shops actually use

Here is the same pool, spread the common way. The shop consumed ₹1.20 crore of material last year against ₹42 lakh of overhead, so:

₹42,00,000 ÷ ₹1,20,00,000 = 35% of material cost

Which is where “add thirty-five per cent for overheads” comes from. It is honestly derived, it recovers exactly the right total across a year — and it is still the wrong base.

Why wrong? Because material value has almost nothing to do with what a job takes out of the factory. A tonne of plate sitting on the floor for two hours consumes rent, power and supervision for two hours. A ₹46,000 batch of castings that occupies a machine for three weeks consumes it for three weeks. The rupee value of the steel does not know how long the job ran.

Two jobs, same shop, same week

Now watch what that choice does. Two batches of 40, both real shapes of work for this shop.

 Job A — 40 MS base framesJob B — 40 machined valve bodies
CharacterMaterial-heavy, quick to makeCheap material, slow to make
Direct material₹3,600/pc → ₹1,44,000₹1,150/pc → ₹46,000
Direct labour1.5 hrs × ₹190 → ₹11,4003.2 hrs × ₹190 → ₹24,320
Machine hours0.8 hrs/pc → 32 hrs3.5 hrs/pc → 140 hrs

Job A eats three times the steel. Job B eats four times the factory. Now cost them both ways.

Job A — 40 MS base frames
LayerOverhead at 35% of materialOverhead at ₹420/machine hour
Direct material₹1,44,000₹1,44,000
Direct labour₹11,400₹11,400
Factory overhead₹50,400₹13,440
Batch cost₹2,05,800₹1,68,840
Cost per frame₹5,145₹4,221
Job B — 40 machined valve bodies
LayerOverhead at 35% of materialOverhead at ₹420/machine hour
Direct material₹46,000₹46,000
Direct labour₹24,320₹24,320
Factory overhead₹16,100₹58,800
Batch cost₹86,420₹1,29,120
Cost per body₹2,161₹3,228

The overhead figures do not just differ. They invert. Job A picks up ₹50,400 on one method and ₹13,440 on the other; Job B picks up ₹16,100 and ₹58,800. The pool never changed — both methods recover ₹42 lakh across the year.

⚖️
Overhead allocation is zero-sum

Every rupee you over-absorb onto one job is a rupee you have under-absorbed onto another. This is why the mistake is invisible in the annual accounts: the total is always right. Only the per-job numbers are wrong, and nobody audits those.

Why this makes you win your worst jobs

Costing is only interesting because quoting depends on it. So quote both jobs at cost plus 18%, using the percentage-of-material figures — the numbers actually in this shop’s spreadsheet.

 Job A — framesJob B — valve bodies
Cost per piece used for the quote₹5,145₹2,161
Quoted at cost + 18%₹6,071₹2,549
What the piece really costs₹4,221₹3,228
What happensCompetitor quotes ₹5,400. You lose the order.You win the order.
ResultA job you would have made 28% on, gone−₹679 a piece, −₹27,160 on the batch

Read that as a pattern rather than as two jobs, because that is what it is. Every quote where the base misprices you upward, you lose. Every quote where it misprices you downward, you win. The market is doing the selection, and it is selecting against you, one enquiry at a time.

The consequence is slow and has no obvious cause, which is why it is so rarely diagnosed. Over two or three years the order book drifts towards the low-material, high-work jobs — because those are the ones you keep winning — and margin drains away while turnover looks healthy. The owner sees a full shop and a thin bank balance and concludes that the market has got competitive. The market has not got competitive. The absorption base has been sorting his enquiries for him.

🔎
A one-hour test on your own order book

Take the last twenty enquiries you quoted. Mark each won or lost, and write the material value and the machine hours against each. If the ones you lost are clustered at high material and low hours, and the ones you won are clustered at low material and high hours, you have this problem. It shows up in the quote log long before it shows up in the P&L.

The number that closes the loop

Everything so far is planned cost — what the BOM and the routing said the job would take. It is what the quote was built on, and it is a forecast.

Then the job runs, and three things move.

That last point deserves its own arithmetic, because the cost of a rejected piece does not disappear — it lands on the pieces that survived.

Cost per good piece = total batch cost ÷ quantity passed

Job B: ₹1,29,120 ÷ 40 = ₹3,228. But ₹1,29,120 ÷ 37 = ₹3,490. A 7.5% rejection rate adds 8% to unit cost — and any costing that divides by the quantity ordered rather than the quantity that passed will never see it.

Planned versus actual is the only feedback a quoting system gets. Without it you are not costing jobs, you are repeating an assumption made when somebody first typed the item master — and repeating it into every quote for the next five years.

Six ways job costing goes wrong

1 · Overhead spread on material value

The whole subject of this article. It recovers the right total, so the accounts look fine, and it misprices every individual job in a way that systematically loses the good work.

Fix: absorb on machine hours where machines set the pace and on direct labour hours where people do. Two rates is usually enough; one is usually too few.

2 · Costing the BOM quantity instead of the issued quantity

The BOM is what the product needs. The issue slip is what the job took. The difference is offcut, rework, over-issue and the odd unrecorded scrap — and on sheet metal or bar stock it is routinely 10–15%.

Cost: a margin that is 10–15% thinner than the quote claimed, on every material-heavy job. Fix: cost the goods issue against the manufacturing order, and keep the BOM figure alongside it as the plan.

3 · Using the wage instead of the cost of employment

₹25,000 divided by 208 hours is not a labour rate. It ignores PF, ESI, bonus and gratuity, and it pretends every paid hour is a productive hour.

Cost: every labour hour in every quote priced at ₹120 when it costs ₹190 — the whole of a typical margin, and then some. Fix: cost of employment ÷ productive hours. Recalculate it once a year, after the wage revision.

4 · Setup spread as though every batch is the same size

The rate was worked out on a batch of 40. The repeat order is for 4. The setup cost per piece has gone up ten times and the quote has not moved.

Cost: repeat orders and sample batches quoted at production rates — almost always at a loss, and almost never noticed because they are small. Fix: hold setup and cycle time as separate figures on the routing, so the cost per piece recalculates when quantity changes.

5 · Office and finance cost pushed into the factory pool

Director remuneration, the CC interest, the accountant, marketing. Adding them to the overhead pool inflates every job cost, and then you add a margin on top that was meant to cover exactly those things.

Cost: double-counted period costs, uncompetitive quotes, and no way to tell whether the factory or the office is the problem. Fix: factory overhead in the pool, everything else recovered from gross margin. Two separate conversations.

6 · The quote is never audited against what happened

The job is costed once, at enquiry stage, and never looked at again. Nobody compares issued material to planned, booked hours to routed hours, or pieces passed to pieces started.

Cost: the same wrong assumption compounding through every quote for years, with no mechanism that could ever catch it. Fix: a planned-versus-actual line on every completed manufacturing order, reviewed monthly on the ten biggest jobs. Not all of them — ten is enough to find the pattern.

Where job costing lives in OEMup

Everything above is arithmetic you could do on a notepad, and for one job you should. What a system earns its keep on is doing it for all 300 jobs, keeping the rates current, and telling you afterwards whether the plan held.

Here is how the four layers map into OEMup.

Layer 1 — material, on the BOM and on the issue

The bill of materials is built by article code with the raw cost auto-fetched from the item master, so a rate change on a raw material flows into every product that uses it without anyone re-typing a column. Each line can be costed via purchase term or via stock lot — which is precisely the quote-versus-actual distinction from Layer 1 above, made a setting rather than an argument. Additional products, spares and packaging get their own lines instead of being lost in a lump sum, and Copy BOM means a variant does not start from a blank screen.

Because the BOM is a true multi-level structure, material cost rolls up level by level — you can see what each sub-assembly costs rather than one flat total for the finished good. Phantom assemblies explode through without a stock posting, so a transient stage does not distort the store or the costing, and alternate components let production substitute an approved part when the primary is short without breaking the roll-up.

On the actual side, the manufacturing order books material FIFO from stock lots and records what was consumed — so the issued quantity, not the BOM quantity, is what the job carries.

Layers 2 and 3 — labour and machine time, on the routing

The workstation master holds the machines and work centres. The routing then lists operations in sequence with setup time, cycle time, fixed and variable cost, capacity and department against each one — which is exactly the structure Layer 3 needs. Setup held separately from cycle time is what makes a batch of 4 cost differently from a batch of 40 without anyone remembering to adjust it. The operation cost flows straight back into the BOM, so the costed product includes process cost rather than material alone.

Layer 4 — overhead, carried through the roll-up

Material rolls up through every level and process cost — labour and overhead — is added on top, giving a live costed finished good. Because the roll-up is live, a steel rate revision or a re-costed sub-assembly moves the finished-good cost on its own.

Closing the loop — planned against actual

The manufacturing order carries a live material, overhead and labour cost as it runs, plus a shortage list with auto-indent for what is missing, and records passed and rejected quantities at the production receipt. Actual material consumed and labour booked feed back so you get actual cost against planned cost per finished unit — including the rejection arithmetic from the section above, where the batch cost lands on the pieces that passed.

One detail that matters more than it sounds: BOM revisions are versioned with effective-from dates, and a manufacturing order raised on an older version keeps that version. Without it, re-costing a product next March silently rewrites what last October’s job appeared to cost, and your planned-versus-actual history stops meaning anything.

ℹ️
What the system will not decide for you

No ERP can tell you what your overhead pool is or which base to absorb it on. That comes out of your own accounts once a year, and it is a judgement about how your factory actually works. What a system does is hold the answer, apply it to every job without anyone remembering, and show you afterwards whether it held. The choice in the middle of this article stays yours.

Bring one job. We’ll cost it live.

A 30-minute demo with a part of yours — an Excel BOM is fine. We’ll build it as a multi-level structure, add a routing with setup and cycle time, roll up material plus process cost, and run a manufacturing order so you can see planned against actual.

Book a Demo →

The bottom line

Three of the four layers are measurement problems, and they are all fixable this week. Cost the material that left the store, not the line on the BOM. Divide the cost of employment by productive hours, not the wage by paid hours. Keep setup separate from cycle time so a batch of four is priced like a batch of four.

The fourth layer is not a measurement problem, and that is why it survives. Overhead has to be spread on something, the total comes out right whatever you choose, and no annual account will ever flag the choice as wrong. If you spread it on material value, the market will quietly sort your enquiries — handing you the work you should have refused and giving the profitable work to somebody else.

If you change one thing after reading this, take the last twenty quotes and write material value and machine hours against each, marked won or lost. It takes an hour and it will tell you whether the pattern is in your order book.

Related reading: Multi-Level BOM Explained for the structure the material roll-up depends on, Factory Payroll in India for the PF, ESI, bonus and gratuity arithmetic behind the labour rate, Capacity Planning for Small Factories for the machine hours you divide the overhead pool by, Tracking Material Wastage for scrap and yield, and The Hidden Costs of Manual Inventory for the costs that never reach a job card at all.

FAQ

What are the four parts of a job cost in a factory?

Direct material, direct labour, machine or process cost, and a share of factory overhead. Direct material is what stores actually issued against the job, not the quantity on the bill of materials. Direct labour is the cost of employment divided by productive hours, not the wage divided by paid hours. Machine cost splits into setup, which is a batch cost, and cycle time, which is a piece cost. Overhead is everything the factory spends that cannot be pinned to one job, spread on a chosen base. The first three are measurement; the fourth is a decision.

How do I calculate an overhead absorption rate?

Add up a full year of factory overhead — rent, power, indirect salaries, maintenance, depreciation, tooling, insurance, housekeeping — to get the pool. Divide it by the units of your chosen base you realistically expect in a year. For a pool of ₹42 lakh and about 10,000 productive machine hours, that is ₹420 per machine hour. Use expected hours, not theoretical hours: absorbing on 14,400 theoretical hours when the shop only ever runs 10,000 leaves about a third of the pool unrecovered.

Should overhead be a percentage of material cost?

No — it is the most expensive habit in Indian SME costing. Material value has almost nothing to do with what a job consumes from the factory. In the worked example, a batch eating ₹1.44 lakh of steel and 32 machine hours picks up ₹50,400 of overhead while a batch eating ₹46,000 of iron and 140 machine hours picks up ₹16,100 — the exact opposite of the truth. Absorb on machine hours where machines set the pace, on direct labour hours where people do.

What hourly rate should I use for direct labour?

Cost of employment divided by productive hours. For a skilled machinist on ₹25,000 gross, add employer PF of about ₹1,950, bonus accrual of about ₹1,750 and gratuity accrual of about ₹800 for a cost of employment near ₹29,500. He is paid for roughly 208 hours a month but is genuinely on jobs for about 155. That is ₹190 an hour, against the ₹120 you get from wage ÷ paid hours. The real rate is 58% higher than the one in most quotes.

How do I treat setup time when costing a job?

Setup is a batch cost, not a piece cost. Ninety minutes at a combined labour-and-overhead rate of ₹610 an hour costs ₹915 whatever the batch size — ₹23 a piece over 40 pieces, ₹229 a piece over 4. This is why a repeat order for 4 pieces quoted at the 40-piece rate loses money, and why a cost per piece is meaningless unless the batch quantity is written next to it.

Should selling and admin costs go into the job cost?

No. Office rent and salaries, director remuneration, interest on the cash credit limit, marketing, travel and audit fees are period costs — they come out of gross margin, not into factory cost. Push them into the job and you double-count, because the margin you add on top is what is supposed to be covering them.

How do rejections change the cost per piece?

The whole batch cost lands on the good pieces. A batch of 40 valve bodies costing ₹1,29,120 is ₹3,228 a piece if all 40 pass; if 3 are rejected, the same ₹1,29,120 is carried by 37 pieces, which is ₹3,490. A 7.5% rejection rate adds 8% to unit cost, and any costing that divides by the quantity ordered rather than the quantity passed will never see it.

What is the difference between planned cost and actual cost?

Planned cost is what the BOM and the routing said the job would take — it is what your quote was built on. Actual cost is what stores actually issued, what the operator actually booked, and how many pieces actually passed. The gap between them is the only feedback your quoting has. A factory that never compares the two is quoting on figures nobody has checked since the item master was first typed in.