How to Allocate Indirect Costs in ERP for Fabric Production
Indirect costs like utilities and maintenance distort fabric margins if split by guesswork. This guide shows how to allocate them accurately in ERP for real cost visibility.
What this covers
- Indirect costs (utilities, maintenance, facility) must be tied to specific production lines or batches, not spread by rule of thumb.
- Facteno’s ERP tracks energy use per machine, shift and batch, then assigns costs automatically—no manual spreadsheets.
- Hidden costs (idle machines, rework, storage) appear only when overheads are allocated by actual consumption, not by department.
- A worked example shows how to calculate true fabric cost per meter, including indirects, using your own plant data.
- Start with one production line or utility (electricity, water, gas) and expand the method to others.
Indirect costs are the biggest blind spot in fabric costing
Fabric production quotes show material, labour and direct machine costs—but not the utilities, maintenance and facility expenses that eat margins. These indirect costs are often split by guesswork (e.g. ‘5% of sales’) or by department (‘dyehouse gets 30%’), neither of which match how the plant actually runs. The result? Some batches look profitable when they’re not, and others hide losses until the year-end reconciliation.
Facteno’s ERP solves this by allocating indirect costs to the exact production lines, shifts and batches that consume them. No more ‘overhead pools’—just real numbers tied to real activity. This article explains how to set it up, what pitfalls to watch for, and how to use the data to cut waste.
Why spreadsheets and ‘percentage of sales’ fail for fabric overheads
Most fabric plants allocate indirect costs one of three ways:
- As a fixed percentage of sales revenue (e.g. ‘15% of turnover’), which ignores whether a high-volume order used more utilities or caused more machine wear.
- By department (e.g. ‘dyehouse gets 40% of overheads’), which assumes every batch in the dyehouse consumes the same amount of water, electricity and steam.
- Manually, via spreadsheets that get updated once a month—by which point the data is already out of date.
None of these methods work for fabric production because:
- Utility costs (electricity, water, gas) vary by machine type, shift length and batch size—not by department.
- Maintenance costs depend on how often a machine runs, not how many batches it ‘touches’. A loom used for 12 hours a day needs more oil changes than one used for 6.
- Facility costs (rent, insurance, security) are tied to floor space and shift patterns, not to production volume.
Facteno’s production module tracks these variables automatically. For example, if your dyehouse uses 15% more water during the night shift (because of cooler inlet temperatures), the system assigns that extra cost to the batches run then—not split evenly across all dyehouse work.
How to allocate utility costs by actual consumption, not by department
Electricity, water and gas are the easiest indirect costs to allocate accurately because their meters can be read digitally or logged manually. The key is to tie each utility to:
- The specific machine or area it powers (e.g. ‘Loom Hall A’ vs. ‘Finishing Line 3’).
- The time it’s used (e.g. ‘Day Shift’ vs. ‘Night Shift’).
- The batch or order it supports (e.g. ‘Batch #DYE-456 for Buyer XYZ’).
Here’s how it works in Facteno:
- Log meter readings at the start and end of each shift, or integrate with smart meters that send data automatically.
- Assign each meter to a production area (e.g. ‘Weaving Shed’, ‘Dyehouse’, ‘Packing Bay’). This ensures electricity used by idle machines isn’t charged to active batches.
- Link meters to machine schedules. For example, if Loom #7 runs from 8am to 4pm for Batch #WV-123, its electricity use is recorded against that batch.
- Apply a cost per unit (e.g. ‘$0.12 per kWh’ for electricity). The system multiplies this by the actual kWh used per batch.
Illustration: Say your own scrap rate is 3% of fabric output, and your rework labour cost is $8 per hour at $20/hour wages. If a 500-meter batch has 15 meters of scrap, that’s 3% of 500 = 15 meters wasted. At $12/meter material cost, scrap alone adds $180 to the batch cost. Add $8/hour × 2 hours rework = $16 more. Total hidden cost: $196 for that batch—unless you allocate utilities and labour to it properly.
Most plants miss this because they treat scrap as a ‘global overhead’. Facteno assigns it to the specific batch that caused it.
Maintenance costs aren’t ‘per department’—they’re ‘per machine hour’
Maintenance is often lumped into a ‘factory overhead’ pool, but in fabric production, it should be split by:
- Machine type (looms need more frequent belt changes than dye vats).
- Usage hours (a loom run 24/7 wears out faster than one run 12 hours a day).
- Age of the machine (older looms cost more to maintain per hour).
Facteno’s production module tracks machine hours per batch. For example:
| Cost Driver | When It Lands in the Books | What Makes It Move |
|---|---|---|
| Machine maintenance | After each preventive service (oil change, belt replacement) | Actual hours run since last service |
| Utility spikes | End of each shift (or hourly, if metered) | Batch size × machine energy rating × shift length |
| Facility costs | Monthly, per floor area | Shift pattern (day/night) × space occupied by active machines |
| Rework labour | When the rework order is closed | Defect type × time to fix × wage rate |
Illustration: If your loom requires a belt change every 500 hours and costs $45 for parts plus $30 labour, then a batch that runs for 480 hours on that loom should carry $75 of maintenance cost (not $45 split across all loom batches). Facteno calculates this automatically when you log the belt change against the machine.
Watch out for ‘preventive maintenance’ being treated as ‘corrective’. A loom that breaks down after 400 hours needs its service interval adjusted—but if you don’t track the actual hours, you’ll keep allocating maintenance costs incorrectly.
Facility costs follow floor space and shift patterns
Rent, insurance and security are often ignored in fabric costing because they’re ‘fixed’. But they move with:
- Which parts of the plant are active (e.g. night shifts in the dyehouse but not the packing bay).
- How much floor space each production line occupies (a wide loom takes more space than a compact stitching machine).
- Seasonal changes (e.g. higher air conditioning costs in summer, even if production volumes stay the same).
Facteno allocates facility costs by:
- Dividing the total annual facility cost by the total floor area used by production.
- Assigning a ‘cost per square meter’ to each production area (e.g. ‘Weaving Shed: $8/m²/year’).
- Multiplying this by the area occupied by each machine or line during its active shifts.
Illustration: If your dyehouse is 200m² and occupies 150m² when running (50m² is storage), and your total facility cost is $48,000/year, then the dyehouse’s share is ($48,000 ÷ 150m²) × 150m² = $48,000. But if you run only day shifts 6 days a week, the monthly cost per batch is $48,000 ÷ 24 batches ÷ 12 months = $200 per batch. Facteno does this math for you.
Most plants skip this step and just divide facility costs by total production volume. That hides the fact that some lines (like stitching) use less space per meter than others (like weaving), so their batches should carry less facility cost.
Hidden costs appear only when you allocate by actual activity
Three costs that distort fabric margins but are rarely allocated properly:
- Idle machine costs. A loom sitting unused still consumes electricity, water for cooling and a share of facility costs. Facteno tracks idle time per machine and assigns those costs to the batches that should have been running on it.
- Rework labour. Labour spent fixing defects isn’t always charged to the batch that caused them. Facteno links rework orders to the original batch and splits the labour cost accordingly.
- Storage costs. Fabric sitting in warehouses incurs rent, insurance and handling costs. Facteno tracks batch storage dates and allocates these costs to the batches that occupy space.
Illustration: If your plant has $24,000/year in warehouse costs and stores 10,000 meters of fabric for an average of 15 days, then the cost per meter per day is $24,000 ÷ 10,000 ÷ 365 ÷ 15 = $0.053/meter/day. A batch stored for 30 days adds $1.60/meter to its cost—unless you allocate it properly.
Most ERP systems stop at direct costs. Facteno goes further by exposing these hidden drains on margin.
What to do next week: Pick one cost driver and start allocating
Don’t try to allocate everything at once. Start with the cost that’s easiest to track and has the biggest impact:
- Choose one utility (electricity, water or gas) and one production area (e.g. ‘Weaving Shed’).
- Log meter readings for a week and note which machines were active during each reading.
- In Facteno, assign the utility cost to those machines by shift and batch.
- Compare the new cost per meter with your old estimate. The difference is how much you were over- or under-charging.
- Repeat for maintenance costs on the same line, then expand to other areas.
Use the live demo to see how Facteno handles these allocations in real time. The pricing page shows which plans include the modules needed for this (Starter covers basics; Growth and Enterprise add advanced tracking).
Related reading: How to Calculate Fabric Cost per Meter in ERP (Not Just per Piece).
Frequently asked
What if our meters aren’t smart and we have to read them manually?
How do we handle maintenance costs for machines that break down unexpectedly?
Can we allocate indirect costs by customer or buyer instead of by batch?
What if our production lines change frequently—will the allocations still work?
How often should we update our indirect cost allocations?
Everything above is how Facteno actually behaves
Ask for demo access and we will walk you through a full plant with four months of documents, so you can check the numbers yourself.