New: role-based approval matrix and session-replay activity tracking are live. Read more

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.

A textile worker handling machinery in a modern factory setting.
Photo: EqualStock IN via Pexels

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:

  1. Log meter readings at the start and end of each shift, or integrate with smart meters that send data automatically.
  2. 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.
  3. 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.
  4. 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 DriverWhen It Lands in the BooksWhat Makes It Move
Machine maintenanceAfter each preventive service (oil change, belt replacement)Actual hours run since last service
Utility spikesEnd of each shift (or hourly, if metered)Batch size × machine energy rating × shift length
Facility costsMonthly, per floor areaShift pattern (day/night) × space occupied by active machines
Rework labourWhen the rework order is closedDefect 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:

  1. Dividing the total annual facility cost by the total floor area used by production.
  2. Assigning a ‘cost per square meter’ to each production area (e.g. ‘Weaving Shed: $8/m²/year’).
  3. 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:

  1. 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.
  2. 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.
  3. 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:

  1. Choose one utility (electricity, water or gas) and one production area (e.g. ‘Weaving Shed’).
  2. Log meter readings for a week and note which machines were active during each reading.
  3. In Facteno, assign the utility cost to those machines by shift and batch.
  4. Compare the new cost per meter with your old estimate. The difference is how much you were over- or under-charging.
  5. 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?
Manual meter readings work as long as they’re logged consistently at the same intervals. Use a checklist or mobile app to avoid gaps. Facteno lets you enter readings retrospectively, but accuracy depends on regularity. For example, if you read the dyehouse water meter daily but miss a day, the system will still allocate costs, but your data will have a one-day gap that may affect batch comparisons.
How do we handle maintenance costs for machines that break down unexpectedly?
Log unexpected breakdowns as ‘corrective maintenance’ in Facteno and assign the full repair cost to the last batch that ran on the affected machine. This ensures the cost isn’t split arbitrarily across future batches. For instance, if a loom breaks after processing Batch #WV-789, the repair cost is fully allocated to #WV-789, not averaged across all loom batches.
Can we allocate indirect costs by customer or buyer instead of by batch?
Yes, but only after allocating them by batch first. Facteno rolls up batch-level costs to customer orders, revealing which buyers incur the highest indirect costs. For example, a buyer who frequently uses your most energy-intensive loom will see higher indirect costs in their orders. Start with batch-level allocation, then use the Sales & Order Book to analyse customer impact.
What if our production lines change frequently—will the allocations still work?
Facteno’s allocations adapt to line changes because they’re tied to machine hours and batch records, not fixed departments. If you move a loom to a new area, the system updates its utility and maintenance allocations based on its new location and schedule. Keep machine schedules and batch cards current—if a loom isn’t logged as active, it won’t consume costs.
How often should we update our indirect cost allocations?
Update allocations monthly at minimum, but ideally with every batch close-out. For utilities, daily or shift-level updates work best if meters are read frequently. Maintenance updates should follow each service or breakdown. Facility costs can be updated monthly. Facteno’s Reports module lets you generate allocation summaries on demand to spot trends without manual effort.
See it working

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.

Next step

See it running on a real plant, with your questions in the room

The demo carries four months of live documents — orders, batches, inspections, payroll and books that tie. Ask for access and we will walk your process through it.

Request demo access What the demo covers

One business day to reply. No card. No installation.
Or message us on WhatsApp +44 7348 614469 · [email protected]