Ask ten small product businesses what a given item costs them to make and most will answer with the materials figure. It is the number that appears on a supplier invoice, so it feels like the solid one. It is also usually somewhere between 55% and 80% of the true cost.
Undercosting does not announce itself. Sales grow, the bank balance does not, and the business concludes it has a cash flow problem when what it actually has is a costing problem. This guide sets out the four layers that make up a product cost, how to measure each one without building a research project, and a worked example that runs the whole thing end to end.
The four layers of a product cost
Every unit you make absorbs cost in four distinct ways:
- Direct materials — the things that physically end up in or on the product, measured at the unit you consume rather than the unit you buy.
- Direct labour — the time spent making that specific product, at a rate that includes what employing someone actually costs.
- Production overhead — workshop rent, power, equipment, consumables, and the other costs that exist because you produce at all.
- Waste and rework — the material and time consumed by units that never reach a customer.
The first layer is the one everybody measures. The fourth is the one almost nobody does, and it is frequently larger than the profit margin being argued over.
Layer 1: materials at the unit you actually use
The trap here is the mismatch between purchase units and consumption units. You buy olive oil in 5-litre drums and use it in millilitres. You buy leather by the hide and use it by the panel. You buy screws by the box of 500 and use four.
Convert every material to a cost per consumption unit once, and store it. The arithmetic is trivial; the discipline is in doing it for every line rather than eyeballing the small ones.
Cost per consumption unit = purchase price / quantity per purchase unit
Then apply a yield factor for anything you cannot use in full. A hide that gives 80% usable area is not costed at its purchase price per square metre — it is costed at that price divided by 0.8, a 25% uplift. Reductions, trims, offcuts, and evaporation all work the same way.
Effective material cost = cost per consumption unit / yield rate
Watch the small lines. Packaging, labels, thread, glue, and tissue paper are individually negligible and collectively often 5-8% of unit cost. Cost them once at fractions of a cent and stop thinking about them, rather than omitting them because they feel too small to matter.
Layer 2: labour at a loaded rate
A gross wage is not what an employee costs. Add employer social contributions, paid leave, sick pay, and any statutory bonus, then divide by the hours actually available for productive work — not the hours contracted.
Loaded hourly rate = total annual employment cost / productive hours per year
A worker contracted for 40 hours a week does not deliver 2,080 productive hours. Subtract annual leave, public holidays, expected sick days, training, cleaning, and the general friction of a working day. Between 1,500 and 1,700 hours is a realistic figure for most small workshops. Using 2,080 understates your labour rate by roughly a quarter.
Then measure time per unit honestly. Time a full batch with a phone timer, including setup and cleanup, and divide. Setup time is why batch size changes unit cost: if a run takes 30 minutes to set up regardless of quantity, that half hour is spread across 10 units or across 100.
Labour per unit = (setup minutes / batch size + run minutes per unit) x loaded rate / 60
Cost your own time too. Owner-operators routinely leave themselves out on the grounds that they do not take a wage. The result is a product that appears profitable but cannot survive you taking a holiday, hiring a replacement, or getting ill. Use what you would have to pay someone to do the same work.
Layer 3: overhead, absorbed simply
Overhead absorption has a reputation for complexity it does not deserve at this scale. Activity-based costing is the right answer for a factory with fifteen cost centres. For a workshop with one room and four people, a single rate per productive hour is accurate enough to make good decisions with.
Total your annual production overhead — the costs that exist because you make things:
- Workshop or studio rent and service charges
- Utilities attributable to production
- Equipment depreciation, maintenance, and tooling
- Consumables not tracked as direct materials
- Production insurance and safety compliance
Keep genuinely non-production costs out of this pool — sales commission, marketing, and the accountant's fee belong in operating expenses, not in unit cost. Then divide by the same productive hours you used for labour.
Overhead rate = annual production overhead / annual productive hours
Multiply by the hours a unit consumes. A product that occupies the workshop for 20 minutes absorbs a third of the hourly overhead rate, whether or not anyone was actively touching it.
Layer 4: waste, scrap, and rework
If 100 units enter production and 96 reach a customer, those 96 units have to carry the cost of all 100. This is arithmetic, not pessimism.
Adjusted cost = (materials + labour + overhead) / first-pass yield rate
At a 96% first-pass yield the uplift is 4.2%. At 90% it is 11.1%. Businesses that skip this layer and also run thin margins are frequently selling at a real loss while their spreadsheet shows a profit.
Track scrap for one month before guessing. Most workshops find their real figure is worse than their estimate, and the act of measuring it usually improves it — which is a second, unrelated benefit.
A full worked example
A small soap workshop makes a 100g bar in batches of 60. Working through the four layers:
| Line | Basis | Cost per bar |
|---|---|---|
| Olive oil | 62g at EUR 4.80/litre, density 0.91, 98% yield | EUR 0.334 |
| Coconut oil | 25g at EUR 3.20/kg, 98% yield | EUR 0.082 |
| Lye and water | 13g equivalent | EUR 0.021 |
| Essential oil | 3g at EUR 90/kg | EUR 0.270 |
| Wrapper and label | Per unit | EUR 0.140 |
| Direct materials | EUR 0.847 | |
| Labour | 45 min setup / 60 + 1.5 min per bar, at EUR 16.40 loaded | EUR 0.615 |
| Overhead | 0.037 productive hours at EUR 11.20/hour | EUR 0.414 |
| Subtotal | EUR 1.876 | |
| Yield adjustment | First-pass yield 94% | EUR 0.120 |
| True unit cost | EUR 1.996 |
The materials-only figure was EUR 0.85. The true cost is EUR 2.00 — 2.4 times higher. A workshop pricing at EUR 4.50 believes it is making a 81% margin and is in fact making 56%. That gap is the difference between a business that can afford to hire and one that cannot.
What to do with the number
A unit cost is a floor, not a price. It tells you what you must clear before any contribution to sales, marketing, administration, and profit. Pricing is a separate decision driven by market position, and the relationship between cost and price is where margin and markup get confused often enough to matter.
Three things the number is immediately good for:
- Ranking your range. Sort every product by contribution per productive hour, not by margin percentage. The constraint in a small workshop is time, not revenue.
- Sanity-checking wholesale. A wholesale price below unit cost plus a real contribution is a subsidy you are paying a stockist to accept your product.
- Deciding what to discontinue. Products that survive on sentiment usually show up clearly once overhead and yield are honest.
How often to recost
Recost when a significant input moves more than about 10%, and review the whole range twice a year regardless. Materials-heavy products drift fastest. Labour-heavy products drift when wage rates or your productive-hours assumption changes, which is slower but larger when it happens.
The practical difficulty is that a spreadsheet-based costing model is a snapshot: it is accurate the day it is built and decays from then on, because purchase prices update in one file and the cost model in another. Keeping recipes and bills of materials linked to live purchase prices is what turns costing from a periodic project into something that is simply true.
Common mistakes
- Costing materials at purchase units instead of consumption units
- Using contracted hours rather than productive hours in the labour rate
- Leaving the owner's time out entirely
- Ignoring setup time, so small batches look as efficient as large ones
- Putting marketing and admin into production overhead, which inflates unit cost and hides the real problem
- Assuming a first-pass yield rather than measuring it
- Building the model once and never updating input prices
None of these are sophisticated errors. They are the ordinary consequence of costing being a job nobody has time for, done in a file nobody owns. Getting it right once, in a structure that updates itself, is most of the work.