The make-or-buy conversation in most job shops lasts about four minutes. Somebody has a quote, somebody else has a costing sheet, the two numbers are compared, and the cheaper one wins. It feels like the most rational decision in the building, which is exactly why it goes wrong so often.

The problem is not the arithmetic. It is that the two numbers being compared are not the same kind of number. A vendor’s quote is cash that will leave your bank account. Your costed rate is an allocation — a way of spreading costs you have already committed to across the work you expect to do. One of those changes when you outsource. The other mostly does not.

This article works one part through to the rupee, shows the trap, and ends with the single number that settles most of these decisions.

Make or buy comparison on 4,800 machined flanges — a vendor quote of 132 rupees against a fully absorbed in-house cost of 144.62 rupees looks like a 60,580 rupee annual saving, but against the avoidable cost of 73.50 rupees it is a 2,80,820 rupee annual loss
Same part, same quote, same shop. The only thing that changes is which in-house number you hold it against.

The part, and the two numbers

A machined flange. 4,800 pieces a year, run in batches of 200, so twenty-four setups. On your VMC it takes 14 minutes of cycle time and 45 minutes of setup per batch. Your costed machine-and-labour rate is ₹610 an hour — the same figure used in How to Cost a Job, built the same way.

Run that out and the in-house cost is ₹144.62 a piece: ₹142.33 of cycle time plus ₹2.29 of setup spread across the batch. Material is left out of both sides, because in a job-work arrangement you supply the casting either way.

The job worker down the road quotes ₹132.

₹144.62 in-house − ₹132.00 outside = ₹12.62 a piece

₹12.62 × 4,800 pieces = ₹60,580 a year. Send it out.

Four minutes, one decision, and on a shop floor running at normal load you have just made the business roughly ₹2.8 lakh poorer. Here is why.

What is actually inside ₹610 an hour

A machine-hour rate is a blend. Pull it apart and it looks something like this:

Component of the ratePer hourDoes it stop if the job leaves?
Direct labour — the operator, at cost of employment180Only if the hours genuinely go away
Variable running cost — power, coolant, insert wear, consumables130Yes
Absorbed fixed overhead — rent, depreciation, supervisor, insurance300No
Costed rate610

The rent does not fall because a flange is machined elsewhere. The VMC still depreciates. The supervisor still supervises, the factory is still insured, the shed is still lit. That ₹300 an hour was never a payment for machining this part — it is a share of what the factory costs to exist, divided across the hours you expected to run.

So the cost that genuinely disappears is ₹310 an hour, not ₹610.

Avoidable cost = (cycle + setup per piece) × ₹310

(0.2333 + 0.00375) hr × ₹310 = ₹73.50 a piece

That is the number the vendor has to beat. He quoted ₹132.

The comparisonPer piecePer year (4,800)Verdict
Quote vs fully absorbed ₹144.6212.62 saved60,580 savedBuy
Quote vs avoidable ₹73.5058.50 worse2,80,820 worseMake
⚠️
The “only if the hours go away” test on labour

Labour is the line people argue about, and the honest answer depends on what actually happens to the operator. If outsourcing means one fewer person on the payroll, or a contract worker not engaged, the ₹180 is avoidable. If it means the same operator stands at the same machine doing something else — or doing nothing — it is not. Most shops assume the first and live the second. If you are unsure, run the comparison both ways: at ₹310 an hour avoidable, and again at ₹130 with labour treated as fixed. In this example the second case makes the vendor look worse still.

The part everybody misses: what it does to every other job

There is a second effect, and it is the one that quietly hollows out job shops.

That ₹300 an hour of fixed overhead comes from a pool. Say the pool is ₹18,00,000 a year and you expect 6,000 machine hours: ₹18,00,000 ÷ 6,000 = ₹300 an hour. Outsource the flange and you remove 1,138 hours from that base — 1,120 of cycle time and 18 of setup.

The pool does not shrink. The base does.

₹18,00,000 ÷ 4,862 remaining hours = ₹370.22 an hour

Every other job on that machine now absorbs ₹70.22 an hour more than it did last week.

Nothing about those jobs changed. No machine got slower, no wage went up. They simply have fewer colleagues to share the rent with. And now, when the next quote arrives, those jobs look more expensive against it too — so they go out, the base shrinks again, and the rate rises again.

The absorption spiral

Each decision is made correctly against the costing sheet of the day. Each one raises the cost of everything that remains. Three years later the shop is a set of machines with nothing to do, a full overhead bill, and a costing sheet that recommends outsourcing the rest. Nobody made an obviously bad call; the test itself was wrong.

Fix: make the comparison on avoidable cost, and before committing, recompute the absorption rate on the smaller base and look at what it does to the jobs you are keeping. In this example: ₹70.22 an hour added to roughly 4,862 hours of remaining work.

Why a quiet shop gets this backwards

Here is the cruellest part of the arithmetic. The same ₹18,00,000 of fixed overhead, recovered over different levels of loading:

Machine utilisationHours to absorb overFixed element of the rate
85% — busy5,100352.94
60% — normal3,600500.00
40% — quiet2,400750.00

A quiet shop carries a high costed rate, because the same overhead is spread over fewer hours. So in a slow quarter, when machines are standing, every outside quote suddenly looks cheap — at precisely the moment outsourcing makes least sense, because the hours you would free have no alternative use at all.

Low utilisation is an argument for pulling work in, not pushing it out. If you have ever wondered why a competitor quotes jobs that look impossible, this is often the answer: they are pricing against avoidable cost on a machine that would otherwise be idle, which is a perfectly rational thing to do for as long as it does not become the whole order book. The same logic sits behind honest capacity numbers — you cannot value a freed hour without knowing what a real hour is worth.

When buying is genuinely right

None of this is an argument for making everything. It is an argument for a different test. There are three situations where that test says buy, and they are worth knowing precisely, because they are the ones where outsourcing creates real money rather than moving it around.

1. The freed capacity is actually sold

If the VMC is a bottleneck and those 1,138 hours can be filled with other work, the contribution that work earns belongs on the buy side. The decision becomes a straight comparison:

Break-even contribution = annual outsourcing penalty ÷ hours freed

₹2,80,820 ÷ 1,138 hours = ₹246.77 an hour

That is the whole decision in one number. If the work you would put on that machine instead earns more than ₹246.77 an hour of contribution — selling price less the material and variable cost of doing it — outsource the flange. If it earns less, or if there is no such work, keep it.

Alternative work earnsContribution on 1,138 hrOutsourcing penaltyNetDecision
₹250/hr2,84,5002,80,820+3,680Marginal
₹400/hr4,55,2002,80,820+1,74,380Buy
₹520/hr5,91,7602,80,820+3,10,940Buy

The word doing the work in that table is actually. Freed capacity has to be filled with orders that exist, not with orders you hope will arrive because the machine is now free. A shop that outsources to make room for work it has not won has paid ₹2.8 lakh for an empty machine.

2. You never owned the fixed cost — the reliable case

This is the one that almost always works, and it explains why some outsourcing is obviously correct while machining rarely is.

Send a part for heat treatment, plating, anodising, galvanising or gear cutting and you are not comparing against a machine you already own. You own no furnace. There is no sunk fixed cost to spread, so 100% of the cost is avoidable — and on the other side, a specialist running one process all day beats your utilisation by a distance.

Put a number on it. A furnace at ₹28,00,000 over ten years is ₹2,80,000 a year of depreciation alone. Spread over 1,800 running hours that is ₹155.56 an hour before gas, power, labour or maintenance — and 1,800 hours assumes you can keep it busy, which a shop treating a few hundred parts a month cannot. The vendor’s ₹46 a piece is not a close call.

ℹ️
The rule underneath all three cases

Outsource processes whose fixed cost you do not carry. Keep processes whose fixed cost is already sunk and already paid for. That single sentence resolves most make-or-buy arguments without a spreadsheet — and it is why sending castings out for plating is almost always right while sending them out for turning, on a lathe standing in your own shed, almost never is.

3. Making it would need capital

If demand doubles and meeting it in-house means a second machine, the comparison changes shape. A ₹38,00,000 VMC is ₹3,80,000 a year of straight-line depreciation before it cuts anything, and it has to be fed for a decade. Outsourcing the additional volume at ₹132 a piece costs more per year — ₹6,33,600 on 4,800 extra pieces — but it stops the day the order stops.

That is the trade: outsourcing buys reversible capacity at a higher unit cost. For a schedule from a customer you have supplied for nine years, buy the machine. For a two-year contract from a customer you met in March, buy the capacity. The expensive mistake here is not choosing wrong — it is buying a machine against a volume that was never confirmed.

What the quote does not include

Before any of this, the quote itself needs to be landed properly. ₹132 is what the job worker charges. It is not what the arrangement costs you.

What gets added to a job-work quotePer piece
Vendor’s quoted rate132.00
Freight, both directions6.50
Inspection of returned material3.20
Rejection at the vendor, at 1.5%1.98
Landed cost of buying143.68

Look at what that does even to the wrong comparison. Against the fully absorbed ₹144.62, the apparent saving collapses from ₹12.62 a piece to 94 paise. The decision that looked worth ₹60,580 a year is worth ₹4,512 before the avoidable-cost argument is applied at all.

And there are costs that do not fit in a table:

The decision, in seven steps

1
Split your machine-hour rate

Into labour, variable running cost and absorbed fixed overhead. If you cannot do this, you cannot make this decision — and the split is a one-time job, not a per-part one.

2
Compute avoidable cost per piece

The avoidable part of the rate applied to cycle time plus setup per piece. This is the number the vendor must beat.

3
Land the quote

Add freight both ways, inspection on return and the vendor’s rejection rate. Compare landed against avoidable.

4
Count the hours released and name the work that fills them

Named orders, not optimism. If nothing fills them, the hours are worth nothing and the comparison in step 3 stands alone.

5
Compute the break-even contribution per hour

Annual penalty divided by hours freed. Test real alternative work against it.

6
Recompute the absorption rate on the smaller base

Before committing. If it moves the costed rate of your other work materially, you are about to make those jobs look uncompetitive too.

7
Write down the volume, quote and loading you assumed

So the decision can be re-tested when any of the three changes — which is the only way a review a year later means anything.

Where this lives in OEMup

The hard part of this decision is not the method. It is that most shops cannot run it, because the inputs are not written down anywhere — the cycle time is in somebody’s head, the setup time is a guess, and the machine-hour rate is a single blended figure with no split inside it. Here is what OEMup holds, and nothing beyond it.

Routing

A routing is built as operations in sequence with setup time, cycle time, fixed and variable cost, capacity and departments, and the operation cost flows straight back into the BOM. The fixed-and-variable split is the one this article turns on, and it is a field on the operation rather than something you reconstruct each time a quote arrives.

Workstations

A workstation master holds the machines and work centres each operation runs on, and routings draw on it. That is where an operation’s hours are attached to a particular machine.

Bill of materials

A BOM carries components by article code with raw cost auto-fetched, additional products, spares and packaging, costing via purchase term or stock lot, and Copy BOM.

Manufacturing order

A manufacturing order carries a shortage list and auto-indent, FIFO booking from stock lots, live material, overhead and labour cost, consumption, passed and rejected quantities, and the production receipt. That is where an estimate can be read against what the job actually consumed.

The quote side

On the buy side OEMup runs indent → RFQ → purchase order → purchase invoice. An RFQ is raised from an indent, vendors quote through a secure portal form with no login, offers are compared side by side, and the winner is converted into a PO. The purchase invoice is booked against its PO.

ℹ️
What the system will not do for you

Everything above is a record, not a recommendation. OEMup does not compute avoidable cost, does not value freed capacity, does not calculate the break-even contribution per hour, and has no make-versus-buy comparison screen. Those are judgments — about whether a wage really disappears, whether the released hours have named work to fill them, and what your fixed overhead pool actually is — and they belong to you, your plant head and your CA. What the system contributes is that the numbers those judgments run on exist, are dated, and came from the shop floor rather than from memory.

Run one real part through it

Book a 30-minute demo and bring a part you have been thinking about sending out — we’ll build the routing with its setup and cycle time and the fixed-variable split, cost the BOM from your own purchase data, and raise a job-work RFQ for the same operation — so both sides of the comparison come from real records rather than estimates.

Book a Demo →

The bottom line

A vendor quote is cash. Your costed rate is an allocation. Comparing them is the single most common costing error in Indian job shops, and it has a direction — it always makes outsourcing look better than it is, because the fixed overhead sitting inside your rate never leaves with the job.

Three things to take away. First, the test is landed vendor price against avoidable cost — ₹143.68 against ₹73.50 in the example, not ₹132 against ₹144.62. Second, the value of outsourcing is almost entirely the value of what you put in the freed hours, so reduce it to one number: the break-even contribution per hour, ₹246.77 here, and test real orders against it. Third, and most useful in practice: outsource processes whose fixed cost you do not carry, keep processes whose fixed cost is already sunk. Plating out, turning in — and if you are about to break that rule, be sure you can say exactly why.

If you do one thing after reading this, split your machine-hour rate into its three parts. It is an afternoon of work, you do it once, and it changes the answer to every make-or-buy question you will be asked for the next five years.

Related reading: How to Cost a Job in an Indian Factory for where the ₹610 an hour comes from, Capacity Planning for valuing a freed hour honestly, Job Work and ITC-04 for the compliance that follows goods out of the gate, TDS on Vendor Payments for the deduction on the job-work bill, and Multi-Level BOMs for structuring a part whose route you are about to change.

FAQ

How do you decide whether to make or buy a part?

Compare the vendor’s landed price against your avoidable cost — what genuinely stops being spent if the job leaves. Fixed overhead such as rent, depreciation and the supervisor carries on regardless, so including it makes outsourcing look cheaper than it is. Then ask whether the freed machine hours can be filled with work that exists. If they can, that contribution belongs on the buy side; if the machine just stands idle, outsourcing has bought you nothing.

Why is comparing a vendor quote to your costed rate wrong?

Because the costed rate is an allocation built to recover fixed overhead across a year of expected hours, and that overhead does not leave when a job does. On ₹610 an hour made of ₹180 labour, ₹130 variable and ₹300 absorbed fixed, moving work out saves ₹310 an hour, not ₹610. A vendor at ₹132 against a costed ₹144.62 looks like ₹12.62 saved, but the avoidable cost was ₹73.50 — so each piece costs ₹58.50 more than it needed to.

What is the absorption spiral?

Outsourcing removes hours from the base the fixed overhead is recovered over, but not the overhead itself, so the rate rises. Removing 1,138 hours from a 6,000-hour base lifts the fixed element from ₹300 to ₹370.22 an hour — ₹70.22 more on every remaining job. Those jobs then look more expensive against outside quotes, which invites more outsourcing. A shop deciding on fully absorbed cost can hollow itself out one part at a time while every individual decision looks correct.

When is outsourcing genuinely the right answer?

Three cases. When the freed capacity is actually sold and earns more contribution per hour than the outsourcing penalty costs. When you never owned the fixed cost — heat treatment, plating, anodising, gear cutting on equipment you have never bought, where the whole cost is avoidable and a specialist’s scale beats yours. And when making would need capital, because outsourcing buys capacity you can stop paying for while a machine must be fed for a decade.

What is the break-even number for a make-or-buy decision?

The contribution per hour the freed capacity must earn. Divide the annual outsourcing penalty by the hours released: ₹2,80,820 ÷ 1,138 hours = ₹246.77 an hour. If real alternative work earns more than that — selling price less material and variable cost — outsource. If it earns less, or there is no such work, make.

What costs does a job-work quote not include?

Freight both ways, inspection of returned material, the rejection rate at the vendor, lead time added to the order, and the compliance that follows goods leaving the premises — delivery challan, the 180-day return rule, ITC-04 and TDS on the bill. On the worked example these add about ₹11.68 a piece, so ₹132 lands at ₹143.68 — which erases almost all of the apparent ₹12.62 saving before the avoidable-cost argument is even applied.

Does low machine utilisation change the answer?

Dramatically, and opposite to most people’s instinct. The same ₹18,00,000 of fixed overhead is ₹352.94 an hour over 5,100 hours and ₹750 an hour over 2,400. A quiet shop therefore carries a high costed rate, which makes every outside quote look cheap at exactly the moment outsourcing is least justified, because the idle hours have no alternative use. Low utilisation argues for pulling work in.

How often should a make-or-buy decision be reviewed?

Annually, and whenever volume, the vendor’s price or your machine loading moves materially — because the answer was only ever valid for one combination of the three. The common failure is a part sent out during a busy period three years ago that is still outside today, on a shop floor now running at sixty percent, with nobody holding the original comparison to re-read.

About the worked example. The figures here — 4,800 pieces a year in batches of 200, 14 minutes of cycle time, 45 minutes of setup, a ₹610 machine-and-labour rate split ₹180 / ₹130 / ₹300, an ₹18,00,000 overhead pool over 6,000 hours and a ₹132 job-work quote — are illustrative and chosen to be realistic for a mid-sized Gujarat engineering job shop. Every number in the article is computed from them and the arithmetic has been checked, but your own rate split, pool and loading will differ and the conclusions follow the inputs. The rate build-up follows the method in How to Cost a Job. Treating labour as avoidable or fixed is a judgment about your own staffing, and the article shows both readings. This is general costing guidance for manufacturers, not accounting or tax advice.
🧮