Activity Based Costing: Formula, Example, and When To Use It

Jul 22, 2026

Try it now, capture a real invoice

Your file is processed for the demo only and never stored.

Activity based costing (ABC) is a method of assigning overhead to products, services, or customers based on the activities that actually consume resources, rather than spreading it across everything using a single volume measure like direct labor hours. You identify the activities, pool the costs of each one, pick a driver that measures how much of that activity each product uses, and allocate accordingly.

The reason it exists is straightforward. In most modern businesses overhead is a large share of total cost and it is not driven by volume. Setting up a machine costs the same whether you run 10 units or 10,000. Processing a purchase order costs the same for a $200 order as a $200,000 one. Traditional costing spreads those costs by volume, which systematically overcharges high-volume products and undercharges low-volume ones.

The five steps of activity based costing

StepWhat you doExample
1. Identify activitiesList the activities that consume overhead resourcesMachine setup, quality inspection, purchase order processing, customer support
2. Build cost poolsTotal the overhead cost of each activity for the periodSetups cost $180,000 a year in labor and downtime
3. Choose cost driversPick the measure that best explains what consumes each activityNumber of setups, number of inspections, number of purchase orders
4. Calculate the driver rateDivide each cost pool by total driver volume$180,000 / 600 setups = $300 per setup
5. Assign to cost objectsMultiply the rate by each product's driver usageA product needing 40 setups absorbs $12,000

Activity based costing example

A manufacturer makes two products. Product A is high volume and simple; Product B is low volume and complex. Total overhead is $600,000. Under traditional costing the company allocates all of it on direct labor hours, of which there are 30,000, giving a rate of $20 per labor hour.

Product AProduct BTotal
Units produced50,0005,00055,000
Direct labor hours24,0006,00030,000
Machine setups100500600
Quality inspections2001,3001,500
Purchase orders3009001,200

Traditional costing assigns Product A 24,000 hours x $20, or $480,000, which is $9.60 per unit. Product B gets $120,000, or $24.00 per unit.

Now split that $600,000 of overhead into three activity pools: setups $180,000, inspections $150,000, and purchasing $270,000. The driver rates are $300 per setup, $100 per inspection, and $225 per purchase order.

ActivityRateProduct AProduct B
Setups$300$30,000$150,000
Inspections$100$20,000$130,000
Purchasing$225$67,500$202,500
Total overhead$117,500$482,500
Overhead per unit$2.35$96.50

The difference is not marginal. Product A looked like it carried $9.60 of overhead per unit; it actually carries $2.35. Product B looked like $24.00; it actually consumes $96.50. If the company priced Product B on the traditional number, it has been selling a loss-making product for years while believing it was profitable, and quietly subsidizing it with the margin from Product A.

Activity based costing vs traditional costing

Traditional costingActivity based costing
Allocation basisOne or two volume measures, usually labor or machine hoursMultiple activity drivers matched to what consumes cost
Accuracy on diverse product linesPoor; distorts high and low volume productsConsiderably better
Cost to maintainLowHigh; needs activity data collected continuously
Acceptable for external reportingYes, under GAAPUsed for internal decisions; GAAP inventory costing still applies
Best suited toSingle product line, overhead a small share of costDiverse products, high overhead, complex processes

One point that trips people up: ABC is a management accounting tool. Your GAAP financial statements still need inventory costed under an acceptable method, so most companies that adopt ABC run it alongside their statutory costing rather than instead of it. Our guide to inventory valuation covers the reporting side, and standard costing covers the variance approach many manufacturers run in parallel.

What are the disadvantages of activity based costing?

Cost and maintenance are the real objections. ABC requires you to identify activities, measure driver volumes, and keep that data current, which usually means someone tracks setups, inspections, and order counts every month forever. Many implementations produce a genuinely useful one-time analysis and then decay, because nobody owns the data collection after the consultants leave.

There is also a judgment problem. Choosing which activities to model and which driver represents each one involves real discretion, and two competent analysts will build different models from the same business. ABC is more accurate than volume allocation, but it is not objective truth, and treating its output as precise to the cent is a mistake.

When is activity based costing worth it?

ABC pays off when three conditions hold together: overhead is a large share of total cost, your products or customers consume support activities very unevenly, and you are making pricing, mix, or discontinuation decisions with the numbers. If overhead is 8% of cost and you make one product, the answer is no.

Customer profitability is often where it earns its keep fastest, and it needs less data than full product ABC. Two customers buying identical volumes can consume wildly different amounts of order processing, expedited shipping, returns handling, and support. Allocating those activities properly frequently reveals that a chunk of the customer base is unprofitable at current terms. Getting there requires clean cost data at the transaction level, which is why teams that capture and categorize every expense automatically find the analysis far less painful than teams reconstructing it from spreadsheets at year end.

Time-driven activity based costing

Time-driven ABC is a lighter variant developed to address the maintenance problem. Instead of surveying staff on how they split time across activities, you estimate two things: the practical capacity cost rate of a department in dollars per minute, and the minutes each activity consumes. Cost assignment is then just rate multiplied by time.

It is easier to keep current because updating the model means changing a time estimate rather than resurveying everyone, and it surfaces unused capacity explicitly, which conventional ABC hides by allocating the full cost pool regardless of utilization. For most mid-sized finance teams it is the more realistic version to attempt.

Getting the underlying data right first

Every costing method depends on cost data that is complete, correctly coded, and available before the decision rather than three months after it. That is usually the actual constraint, not the choice of method. If overhead invoices sit uncoded in a mailbox for two weeks, no allocation model will save the analysis.

Consistent GL coding in accounts payable and a clean chart of accounts are what make activity pools buildable in the first place. Automating capture and coding with accounts payable software gets cost data into the right account on the day the invoice arrives, which is the difference between a costing model you trust and one you rebuild by hand every quarter. For the related decision frameworks see contribution margin, break-even analysis, and cost of goods sold.

Stop keying invoices by hand

AutoPayables captures vendor, amounts and dates from any invoice with AI, routes approvals, and syncs to QuickBooks, Xero, NetSuite or Sage Intacct.

See the product

From the same family of tools