Sign in

Blog · Finance metrics and formulas

Activity-based costing: a worked example against traditional allocation

Activity-based costing assigns overhead by the activities each product or customer uses, rather than by revenue or volume. This page sets out the four steps, builds activity rates for a distributor's four cost pools, charges four customers both ways, proves the charges reconcile, and covers when ABC changes the answer and when time-driven ABC is the simpler route.

The short answerActivity-based costing (ABC) assigns overhead to products or customers according to the activities they use, instead of spreading it by revenue or volume. Group overhead into activity cost pools, divide each by its cost driver volume to get a rate (for example 60 per delivery), then charge each customer its driver count times the rate. It often shows small, demanding customers are less profitable than they look.

Activity-based costing (ABC) assigns overhead to products or customers according to the activities they use, instead of spreading it by revenue or volume. Each pool of overhead gets a cost driver and a rate, such as $60 per delivery, and each customer is charged its driver count times the rate. On the four customers below, ABC turns the account that looks healthy under a revenue-based allocation into one that loses $20,000.

What activity-based costing is

Overhead is the cost that does not belong to a single unit sold: order processing, delivery, customer service, returns, set-ups. Traditional costing spreads it with one broad rate, usually a percentage of revenue, labor hours or units. That works when every product or customer uses overhead in proportion to its size. It fails when they do not, and in most B2B businesses they do not.

ABC replaces the single rate with several:

  • Activity: a piece of work that consumes resources, such as processing an order.
  • Cost pool: the overhead attached to one activity.
  • Cost driver: the count that makes the pool rise or fall, such as the number of orders.
  • Activity rate: the pool divided by the driver volume.

Robin Cooper and Robert Kaplan made the case in Measure Costs Right: Make the Right Decisions (Harvard Business Review, 1988): managers in multi-product companies were "making important decisions about pricing, product mix, and process technology based on distorted cost information."

The four steps

  1. Identify the activities that consume most of the overhead. Five to ten usually explain most of the difference.
  2. Assign overhead to cost pools, one per activity, from the ledger: the people, systems and space each activity uses.
  3. Choose a driver for each pool and compute the rate: pool cost divided by total driver volume for the period.
  4. Charge each product or customer its driver count times the rate, and add the charges up.

Activity rate = Cost pool / Total cost driver volume

ABC cost for a customer or product = Σ (Driver count × Activity rate)

Traditional allocation = Overhead × Customer revenue / Total revenue

This is cost allocation with better bases. Revenue, labor hours, square feet and headcount are all allocation bases; ABC picks, for each pool, the base that actually causes the cost.

Worked example: the rates

A distributor has $600,000 of overhead a year, in four pools:

Activity Cost pool (USD) Driver Driver volume Rate (USD)
Order processing 180,000 Orders 3,600 50 per order
Delivery 240,000 Stops 4,000 60 per stop
Customer service 120,000 Calls 2,400 50 per call
Returns handling 60,000 Returns 600 100 per return
Total 600,000

Worked example: four customers, two ways

The rows you need are one line per customer: revenue, gross margin, and the count of each driver for the same year.

Customer Revenue (USD) Gross margin Gross profit (USD) Orders Stops Calls Returns
A 2,400,000 22% 528,000 600 500 300 40
B 900,000 26% 234,000 1,500 1,800 900 260
C 1,200,000 24% 288,000 900 1,000 700 120
D 500,000 28% 140,000 600 700 500 180
Total 5,000,000 1,190,000 3,600 4,000 2,400 600

Traditional. Overhead is 600,000 / 5,000,000 = 12% of revenue, so A is charged $288,000, B $108,000, C $144,000 and D $60,000.

ABC. Each customer's charge is its driver counts times the rates. With the rates in C2:F2 and a customer's counts in C5:F5:

=SUMPRODUCT(C5:F5,$C$2:$F$2)

Customer B: 1,500 × 50 + 1,800 × 60 + 900 × 50 + 260 × 100 = 75,000 + 108,000 + 45,000 + 26,000 = $254,000.

Customer Orders (USD) Delivery (USD) Service (USD) Returns (USD) ABC charge (USD) ABC charge as % of revenue
A 30,000 30,000 15,000 4,000 79,000 3.3%
B 75,000 108,000 45,000 26,000 254,000 28.2%
C 45,000 60,000 35,000 12,000 152,000 12.7%
D 30,000 42,000 25,000 18,000 115,000 23.0%
Total 180,000 240,000 120,000 60,000 600,000 12.0%

The result after overhead, both ways:

Customer After traditional (USD) % of revenue After ABC (USD) % of revenue
A 240,000 10.0% 449,000 18.7%
B 126,000 14.0% −20,000 −2.2%
C 144,000 12.0% 136,000 11.3%
D 80,000 16.0% 25,000 5.0%
Total 590,000 11.8% 590,000 11.8%

Under the revenue allocation, B has the second-best margin after overhead, at 14.0%. Under ABC it loses $20,000: it places 1,500 small orders a year, needs 1,800 delivery stops and returns 260 times, far more activity than its $900,000 of revenue suggests. A, the largest customer, places large, infrequent orders and was carrying overhead it does not cause.

The check that proves it

ABC moves overhead between customers; it never creates or loses any. Three checks:

  1. Each pool's charges sum to the pool. Orders: 30,000 + 75,000 + 45,000 + 30,000 = 180,000. Delivery: 30,000 + 108,000 + 60,000 + 42,000 = 240,000. Service and returns sum to 120,000 and 60,000.
  2. All ABC charges sum to the overhead: 79,000 + 254,000 + 152,000 + 115,000 = 600,000.
  3. Total profit is identical under both methods: 1,190,000 − 600,000 = 590,000.

If driver counts by customer do not add up to the driver volume used in the rate, the charges will not sum to the pool. That is the first thing to check when an ABC model does not reconcile.

ABC versus traditional costing

The two methods give the same answer when every customer or product uses activities in proportion to its revenue. The more diverse the base, the further apart they move: many small orders against a few large ones, standard against custom products, self-service against high-touch accounts.

ABC is worth the effort when overhead is a large share of cost and the customers or products differ sharply in how they use it. It changes little when overhead is small, or the business sells one product to similar customers. Where the charges sit in the P&L, between gross margin and net margin, is set out in gross margin vs contribution margin vs net margin.

Time-driven ABC and cost to serve

Classic ABC surveys staff on how they split their time, which is slow and goes stale. Kaplan and Steven Anderson's time-driven activity-based costing (Harvard Business Review, 2004) replaces the surveys with "informed managerial estimates": the cost per minute of the capacity supplied, and the minutes each activity takes.

Time-driven rate = Cost of capacity supplied / Practical capacity in minutes

Cost = Minutes used × Rate

Applied to customers rather than products, ABC is cost to serve. How to calculate cost to serve per customer in Excel builds it step by step, cost to serve by industry lists the drivers that matter in each sector, and what is a good cost to serve gives the ranges to compare against.

Where it goes wrong

  • Too many activities. Fifty cost pools cost more to maintain than they add; five to ten usually explain most of the difference.
  • Guessed driver data. Driver counts that do not exist in any system, or are estimated, produce an ABC model that only looks precise.
  • Allocating truly shared overhead. The CEO's salary or the audit fee has no activity driver. Leave it unallocated rather than spread it on a base that does not cause it.
  • Dropping a customer on a negative ABC margin. Before dropping B, check which of its $254,000 of activity cost would really go. Delivery routes and service staff may stay, and then the loss of its $234,000 gross profit makes the company worse off.
  • Stale rates. Refresh the rates as volumes and processes change, at least once a year.

Customer profitability from your own files

Covirage's customer profitability tools apply the same logic to your delivery, order and activity files: each cost pool is charged by driver, and the charges reconcile to the pool. The arithmetic is done by deterministic tools; the external AI model explains the ranking and never does the calculation. See customer profitability to find the customers that buy the most and earn the least, with costs allocated by what each customer does, never by revenue. For the cost behavior underneath, see fixed vs variable costs; for the margin after variable costs, contribution margin ratio; for the per-customer P&L, unit economics.

Questions people ask

What is activity-based costing in simple terms?

It is a way of assigning overhead costs according to what actually causes them. Instead of charging every product or customer the same percentage of overhead, you count how many orders, deliveries, calls or set-ups each one uses and charge a rate for each.

What is the difference between activity-based costing and traditional costing?

Traditional costing spreads overhead with one broad rate, usually by revenue, labor hours or units. ABC uses several activity rates. The results differ most when customers or products use activities very differently: small, frequent, high-service accounts absorb more cost under ABC.

What is a cost driver?

A cost driver is the activity measure that causes a cost pool to rise or fall, such as the number of orders processed, deliveries made, calls handled or machine set-ups. The driver's volume is the denominator of the activity rate.

What are the disadvantages of activity-based costing?

It takes effort to set up and keep current, it needs driver data many companies do not record, and it can create false precision. Time-driven ABC, which estimates minutes per activity, reduces the effort. Keep the number of activities small.