Skip to main content

Manufacturing Overhead Allocation: How Activity-Based Costing Fixes Your Product Cost

19 min readMike ThriftMike Thrift
Manufacturing Overhead Allocation: How Activity-Based Costing Fixes Your Product Cost

You quote a custom fabrication job at $42,000 because last quarter's numbers said your margin on similar work was 28%. The job ships on time, the customer is happy, and the bank account looks fine for a few weeks. Then the month-end close arrives and that "profitable" product family is actually breaking even — while the low-volume, high-complexity jobs you have been discounting to win are the ones quietly carrying your overhead. If your pricing still rests on a single overhead rate set when the shop was half its current size, you are not looking at product profitability at all. You are looking at an allocation fiction.

Manufacturing overhead is where that fiction lives. Get the allocation right and your job costing tells you which work to chase, which to reprice, and where idle capacity is bleeding cash while jobs are open. Get it wrong and every decision — quoting, capacity planning, make-versus-buy — compounds the error, even inside a modern ERP.

This guide covers what belongs in manufacturing overhead, why the traditional plantwide rate so often lies, how to calculate a defensible predetermined rate, and when to graduate to activity-based costing (ABC) or its simpler successor, time-driven ABC (TDABC) — plus the monthly reconciliation that keeps it honest and the mistakes most small manufacturers miss until a quote loses money.

What Counts as Manufacturing Overhead — and What Does Not

Manufacturing overhead is every indirect cost of making things in the plant that you cannot trace economically to a single job, but without which the job could not be made.

Included in manufacturing overhead:

  • Indirect labor — supervisors, material handlers, maintenance techs, quality inspectors
  • Indirect materials — cutting fluids, abrasives, fasteners issued from bulk, shop rags
  • Plant facility costs — rent or depreciation on the building, utilities for the production floor, property tax and insurance on plant assets
  • Equipment costs — depreciation, preventive maintenance, calibration, tooling amortization
  • Other plant support — production scheduling, plant HR and safety, plant software licenses, scrap and rework that is considered normal

Excluded from manufacturing overhead (belongs in SG&A or below gross profit):

  • Selling expenses — sales salaries and commissions, marketing, freight-out to customers
  • General and administrative — corporate accounting, executive salaries unrelated to plant oversight, legal, R&D that is not tied to a specific production job
  • Financing costs — interest, bank fees

The distinction matters because misclassification directly distorts gross margin. When a plant-expensed item is coded to cost of goods sold or vice versa, jobs look more or less profitable than they are, and no allocation math downstream can fix a contaminated pool. A clean chart of accounts that separates plant indirect accounts from SG&A is prerequisite work, not optional hygiene.

The Traditional Method: One Pool, One Rate, One Big Assumption

For decades, small shops allocated all manufacturing overhead with a single predetermined rate:

Predetermined Overhead Rate = Estimated Total Manufacturing Overhead for the Period ÷ Estimated Total Units in the Allocation Base

Common allocation bases are direct labor hours, direct labor dollars, or machine hours. You pick the base that best correlates with how overhead is consumed in your shop.

A Working Example

Suppose your 6-month plan looks like this:

  • Estimated manufacturing overhead (indirect labor, utilities, depreciation, maintenance, etc.): $600,000
  • Estimated allocation base: 12,000 machine hours across all work centers

Predetermined rate = $600,000 ÷ 12,000 = $50 per machine hour

A job that runs 40 machine hours gets $2,000 of overhead applied ($50 × 40) added to its direct materials and direct labor. You apply that rate to every job as it is worked, so you can quote and report in real time instead of waiting until actual overhead is known at month-end.

That last point is important. You do not wait. You apply overhead using the predetermined rate throughout the period, then reconcile to reality. The alternative — allocating actual overhead after the fact — leaves you flying without cost information when quoting and managing open jobs.

Why a Single Rate So Often Fails

A plantwide rate assumes every product consumes overhead in the same proportion as the chosen base. That held reasonably well when direct labor drove most plant activity. Modern shops break the assumption in predictable ways:

  • Automation replaces labor with machines, but the overhead driver shifts from labor hours to machine time, setups, and engineering.
  • Product mix diversifies — a high-volume standard part and a low-volume custom assembly share the same line but demand very different support: engineering changes, setups, inspections, and expedited handling.
  • Support activities grow outside the floor: quoting, programming, procurement complexity, and quality documentation rarely scale with labor hours.

Studies of small manufacturers repeatedly find that two-thirds or more still use a single plantwide or simple departmental rate, even as overhead becomes more activity-driven. The result is systematic cross-subsidy: simple, high-volume products are overcosted and look less profitable than they are, while complex, low-volume products are undercosted and quietly destroy margin. The mid-sized electronics maker in one widely cited example discovered traditional allocation understated true cost on its flagship custom product by 35% — the product it had been discounting most aggressively.

If your pricing logic is "we add 30% to whatever the system says," and the system is 35% light, you are paying customers to keep you busy.

Reconciling What You Applied to What You Actually Spent

Because the rate is estimated, applied overhead will differ from actual overhead. The difference is a variance you must track, not bury.

Applied Overhead = Predetermined Rate × Actual Base Units Consumed Overhead Variance = Actual Overhead Incurred − Applied Overhead

  • If actual exceeds applied, you are underapplied (unfavorable): you did not charge jobs enough to cover what the plant actually spent. Gross margin for the period is overstated until you adjust.
  • If applied exceeds actual, you are overapplied (favorable): you charged more than you spent.

Many manufacturers never close this loop. They let the variance accumulate in a control account all year and write it off in December. By then, quarters of pricing and capacity decisions have been made on biased costs.

Monthly discipline that works:

  1. Post all actual overhead to its plant indirect accounts as incurred.
  2. At month-end, compare actual overhead to total overhead applied to jobs via the predetermined rate(s).
  3. Investigate large variances immediately: Was the denominator (planned capacity) unrealistic? Did a machine sit idle? Did indirect overtime spike?
  4. Adjust cost of goods sold for immaterial variances, or prorate among work in process, finished goods, and cost of goods sold if material, so your inventory balance sheet does not drift from reality.

Think of the variance as a diagnostic, not a nuisance entry. A persistent unfavorable variance in a work center is telling you the rate is stale, capacity is underutilized, or indirect costs have crept.

Activity-Based Costing: Assign Overhead Where Work Actually Happens

Activity-based costing (ABC) replaces the single pool with multiple cost pools, each linked to an activity and its own driver — the factor that actually causes the cost to be incurred.

The Five Steps

  1. Identify activities that consume overhead: machine setups, material handling moves, engineering change orders, quality inspections, purchase orders processed, programming hours.
  2. Group costs into cost pools by activity. All setup-related costs (setup labor, setup scrap, lost capacity) go into one pool, even if they originate in different general ledger accounts.
  3. Select a cost driver for each pool that has a causal relationship: number of setups for the setup pool, number of inspections for quality, number of purchase orders for procurement, machine hours for machining.
  4. Calculate an activity rate for each pool: Estimated Pool Cost ÷ Estimated Total Driver Units.
  5. Apply costs to jobs based on each job's actual consumption of each driver: Rate × Driver Units Used on That Job.

A Small-Shop Example With Two Products

Assume $600,000 of overhead is not one blob but three pools:

Activity PoolEstimated Annual CostDriverEstimated Driver VolumeActivity Rate
Machining$300,000Machine hours10,000$30 / machine hour
Setups$180,000Number of setups600$300 / setup
Quality inspection$120,000Number of inspections1,200$100 / inspection

Two jobs each use 100 machine hours, so a traditional single rate would assign them identical overhead. Under ABC:

  • Job A (standard, long run): 100 machine hours + 2 setups + 4 inspections = ($30×100) + ($300×2) + ($100×4) = $3,000 + $600 + $400 = $4,000
  • Job B (custom, short runs): 100 machine hours + 10 setups + 18 inspections = $3,000 + $3,000 + $1,800 = $7,800

Same machine time, nearly double the true overhead on the complex job. If you price both at a flat markup over the traditional cost, you will overprice the standard product (and lose bids) while underpricing the custom work (and win unprofitable business).

When ABC Pays for Itself

ABC shines when three conditions overlap, all common in growing manufacturers:

  • Overhead is large relative to direct labor (often one-to-one or higher).
  • Product diversity is high — different batch sizes, complexity, or support intensity.
  • Volume diversity is high — a few high-volume staples alongside many low-volume specials.

When jobs are homogeneous and overhead is small, the extra data collection may not justify the refinement. That judgment is economic, not ideological.

Time-Driven ABC: ABC Without the Interview Burden

Traditional ABC earned a reputation for being accurate but heavy to maintain. It asked employees across departments to estimate what percentage of their time they spent on each activity — surveys that were slow, subjective, and quickly outdated.

Time-driven ABC (TDABC), developed by Kaplan and Anderson, collapses the model to two parameters you can observe and update:

1. Capacity cost rate = Cost of Capacity Supplied ÷ Practical Capacity

Cost of capacity supplied is the fully loaded cost of the resource group (salaries plus benefits, equipment depreciation, supervision, space, software) for the period. Practical capacity is not theoretical 24/7 availability. It is the realistic hours the resource is available for productive work after allowing for breaks, training, maintenance, and normal idle time. Most shops use 80% to 85% of theoretical capacity as a starting point.

Example: A quality department costs $320,000 per quarter fully loaded. Two inspectors at 2,080 hours each per year is 1,040 hours per quarter theoretical, but practical capacity at 85% is about 884 hours. Capacity cost rate = $320,000 ÷ 884 ≈ $362 per hour, or $6.03 per minute.

2. Time required per activity — captured in a time equation that reflects differences in how long variants take.

Instead of one flat "inspection = 30 minutes," a time equation handles complexity:

Inspection time = 15 minutes + (10 minutes × number of characteristics measured) + (20 minutes if first-article) + (12 minutes if customer-specific documentation required)

Cost applied to a job = Capacity Cost Rate × Time Required summed across the activities the job actually consumed.

Why Small Manufacturers Adopt TDABC

  • No employee percentage surveys. You estimate time per activity once and update when the process changes.
  • It reveals unused capacity explicitly. If a department supplied 884 hours but jobs consumed only 620 hours, the 264-hour gap is the cost of idle capacity — visible in dollars, not hidden in a blended rate. Many shops discover that "we need more people" is actually "we need to schedule the people we have differently."
  • It handles variation naturally. A standard purchase order might consume 8 minutes of procurement time; a new-vendor, import-documentation order might consume 45 minutes. A single rate cannot see that; a time equation can.

TDABC does require credible time estimates. Base them on observation and work sampling, not memory. Re-observe quarterly or whenever you change routing, automation, or documentation requirements. A capacity cost rate built on theoretical hours instead of practical hours will undercost everything and hide inefficiency.

Choosing Among the Three Methods

FactorTraditional Plantwide / DepartmentalClassic ABCTime-Driven ABC
Accuracy when products are diverseLow — systematically distortsHigh — ties cost to consumptionHigh — ties cost to time consumed
Data burdenLowHigher — many drivers, allocationsModerate — two parameters, time equations
Maintenance effort as business changesRate drift if not updatedHeavy if drivers multiplyLighter — update time equations and capacity
Visibility into unused capacityHidden in varianceLimitedExplicit — cost of idle time is quantified
Best fitSmall, homogeneous, labor-driven shopsShops with diverse support activitiesShops with diverse, time-intensive support work

No method rescues a bad chart of accounts or a rate that has not been reviewed since the last ERP go-live. The sophistication of the allocation cannot compensate for a contaminated pool or a stale denominator.

The Seven Mistakes That Keep Job Costing Wrong for Years

Drawn from hundreds of small-manufacturer implementations, these patterns recur regardless of which ERP is on the screen.

1. The rate was set at implementation and never revisited. Placeholder rates intended to be refined after go-live become permanent. Business adds a product line, installs automation, or shifts from custom to repeat production, but the ERP keeps applying 2019 logic. Calendar a rate review at least annually, quarterly if your cost structure or planned volume changes meaningfully.

2. SG&A and plant overhead are commingled. An account-structure problem at setup — office expenses coded as factory overhead or plant indirect labor coded to administrative accounts — silently shifts gross margin without ever triggering an error. Separate plant cost centers from selling and administrative cost centers and enforce coding discipline.

3. Not all labor reaches jobs. Outside services, temporary labor, rework hours, and setup time are expensed as period costs instead of being tied to specific jobs. The job looks healthier than it is, while the plant absorbs the difference. If a cost exists because a specific job exists, attach it.

4. The allocation base does not reflect consumption. Labor hours drive allocation in a shop where machines, setups, or engineering hours drive cost. If most of your overhead now supports machine availability and changeovers, allocating on labor hours will punish labor-intensive jobs and subsidize machine-intensive ones.

5. Denominator is mismeasured. Estimated capacity at 100% utilization bakes ideal-world assumptions into every quote. Using theoretical capacity systematically under-applies overhead and creates chronic unfavorable variances. Use planned practical capacity for the upcoming period, not nameplate capacity.

6. Applied versus actual is not reconciled. Manufacturers that do not track the monthly variance lose the earliest warning that rates or capacity assumptions are off. Make reconciliation a required step of the monthly close, not a year-end adjustment.

7. The second phase of ERP setup never happens. Implementation teams configure a workable job costing model and promise to refine work-center rates, routings, and time standards after stabilization. Stabilization becomes business as usual, and refinement never occurs. Treat month three post-go-live as the real deadline for revisiting rates and routings, not an aspirational future sprint.

A Practical Setup You Can Implement This Quarter

If you are running a traditional rate today, you do not need to flip the entire system to TDABC overnight. Stage the improvement.

Weeks 1–2: Clean the pool Audit your chart of accounts. Pull every account currently feeding manufacturing overhead and confirm it is truly a plant indirect cost required to make product. Reclassify selling and general administrative items out. Create separate overhead pools by department or work center where cost behavior clearly differs (machining versus assembly versus finishing), even if you still use simple rates within each.

Weeks 3–4: Rebuild the denominator For each work center, estimate practical capacity for the next quarter or six months in the base that actually drives cost there — machine hours where machines dominate, labor hours where handwork dominates, setups where changeover dominates. Use recent utilization data, not the nameplate on the machine. Document the assumption and the source so the next person can audit it.

Month 2: Calculate and document new rates Predetermined rate per work center = Estimated Overhead for That Center ÷ Estimated Practical Capacity for That Center. Document the numerator sources (which accounts, which period), the denominator logic, and the effective date. Store it where costing decisions are made, not in a controller's private spreadsheet.

Month 2–3: Pilot ABC or TDABC on one product family Pick the family with the widest margin confusion — often the one that mixes high-volume repeats and low-volume customs. Map its activities, observe times, build one time equation for the support activity that varies most (quality, procurement, or engineering). Price the next three quotes using both the old rate and the pilot model and compare.

Monthly thereafter: Close the loop

  • Post actual overhead.
  • Compare applied to actual by work center.
  • Review variance with operations while jobs are still open, where you can still act: adjust staffing, rebalance scheduling, or replan capacity.
  • Update rates when the variance signals a sustained shift, not just a one-month blip.

This cadence matters because job costing is not a reporting function that happens to influence decisions. It is a decision system that happens to produce reports. The most useful review cadence is weekly while jobs are open — daily for large custom runs — so you can catch why a job is drifting before it ships and invoices. By the time you autopsy a closed job at month-end, the next one is already at risk for the same reasons.

Improving Product Cost Accuracy Pays Beyond the Quote

Accurate overhead allocation changes behavior in ways that show up well before the income statement.

Quoting with a floor. When each work center carries its own defensible rate, sales can generate a new price from actual cost experience in minutes, not from a gut feeling and an outdated spreadsheet. Enforce minimum margin thresholds before a quote goes out, rather than negotiating them away under customer pressure.

Capacity decisions with eyes open. If reporting shows that only 120 of 200 direct labor hours in a department were charged to jobs, the $80,000 gap is the cost of inefficiency sitting in plain sight. Visibility lets you decide whether to fill it with profitable work, redeploy it, or stop burying it in cost of goods sold. Posting all direct labor directly to cost of goods sold hides exactly this signal; splitting productive, job-charged labor from idle or unassigned time brings it into daylight.

Make-versus-buy and product mix. Products that looked like stars under a single rate often turn into dogs when support consumption is made visible, and vice versa. One shop found that the two stock-keeping units it was considering discontinuing for "low margin" were actually its only products covering both variable cost and a meaningful share of fixed overhead, while the custom line it had been promoting was contributing almost nothing after support costs. Without accurate allocation, the product mix decision is a guess.

Linking job costing to pipeline and capacity. Job costing should not live in its own module. Connect it to your sales pipeline and capacity plan so that the decision to accept new work is made with a full-cost view and a realistic picture of what will actually be available to do it.

Common Bookkeeping Traps That Undermine Allocation

Even a well-designed allocation produces fiction if the underlying bookkeeping is sloppy.

  • Inconsistent job number discipline. Job costs need a job number distinct from the general ledger account. When shop floor transactions post to a general overhead account without a job identifier, consumption cannot be traced and the pool can never be allocated accurately.
  • Lax time and usage capture. Overhead allocation is only as good as the base data. Paper time cards filled in on Friday afternoon and machine hours estimated from memory inflate one job and starve another. Digital time tracking tied to work center and operation, barcode scans for material moves, and machine-hour counters are not luxuries — they are the input quality controls on every cost number you quote from.
  • General ledger feeds that bypass the costing module. Purchases coded directly to inventory or overhead without flowing through receipts and job tickets break the link between what was bought and what was consumed. Standardize how transactions enter so that costing and the general ledger reconcile routinely, not by special project.
  • No owner for job costing. When job costing is everyone's secondary responsibility, data quality decays and variance reviews do not happen. Assign a single owner who is accountable for data timeliness, rate reviews, and variance communication, with defined targets like daily job cost updates and weekly exception reports for outlier jobs — both winners and losers, since both contain a lesson about the estimating model.

Simplify Your Financial Management

As you tighten overhead allocation and job costing, the value of clean, reconcilable financial records becomes immediate — tighter quotes, faster month-end, and fewer surprises when actual costs arrive. Beancount.io provides plain-text accounting that gives you complete transparency and control over your financial data — no black boxes, no vendor lock-in. Get started for free and see why manufacturers and finance teams that want to understand every cost decision are switching to version-controlled, AI-ready accounting.

Share this article