Free tool · no login required

Customer Profitability Matrix Builder

An interactive customer profitability matrix, a chart that places each customer by the net price you actually receive from it and by what it costs you to serve. It sorts a 10-customer fast-moving consumer goods (FMCG) portfolio into four account types. Passive accounts pay a high net price and cost little to serve. Carriage Trade accounts also pay a high price, but they cost a lot to serve. Bargain Basement accounts pay a low price and cost little to serve. Aggressive accounts also pay a low price, but they cost a lot to serve. It shows the small accounts that earn steadily without making a noise and the large ones that pay below average and cost above average to serve, both of which a revenue ranking hides. Then it lets you test what it would take to move your largest revenue customer out of the worst type before the next trade terms reset.

Updated 19 September 2026Extracted from the Trade Terms module, lesson 3: Customer Tiering
Loading calculator...
Guided walkthrough

Explore the tool, from setup to common mistakes

Five short sections explain the scenario, what each control does, how to read the output, and the mistakes to avoid. Open whichever helps. The tool above works without them.

5.1Scenario setup

The starting SKU, market, and assumptions the model makes.

You run commercial finance or revenue growth management (RGM) at a mid‑sized fast‑moving consumer goods (FMCG) manufacturer. Your top 10 customers bring in about $67M of Net Sales between them. The reset is six weeks away: the yearly round of negotiations where you and each retailer agree its trade terms, meaning the discounts, fees and rebates it gets from you. Ranked by revenue, National Grocer comes first at 27% of Net Sales. Now put the same account on the customer profitability matrix, a chart that places each customer by the net price it pays you and by what it costs you to serve. There it lands in the type the matrix calls Aggressive. It pays you a below‑average net price, which is what is left of the price once its discounts and rebates come off, and it costs you more than average to serve. Worked out the way the lesson's example does it, the account loses money on every unit. This tool is built to show you exactly that: a customer that ranks high on revenue and low on profit.

Your objective

Start with the default portfolio, the set of customers the tool loads when it opens. Read which account type each customer falls into. The type is the group the matrix sorts a customer into, by the price it pays and what it costs you to serve. Note which types the revenue ranking hides. Then test what it would take to move one or two of the worst accounts into a better type, before you walk into the trade terms reset.

Key assumptions
  • Vertical axis: net price received, as an index where 100 is the portfolio average. Net price received is what you actually keep from a customer. Start from the list price and take off the trade allowances deducted on the invoice itself and the discounts written into the contract. Then take off the listing and slotting fees the retailer charges to stock your products and give them shelf space. Last, take off the year‑end rebates and any other payments the terms call for. It is a different number from the headline list price.

  • Horizontal axis: cost to serve, as an index where 100 is the portfolio average. It is fully loaded, meaning nothing the customer costs you is left out. That covers the sales team's time, deliveries arranged specially for that customer, and the cost of waiting to be paid, because the money it owes you is out of your hands until it settles its invoices. It also covers goods it sends back, disputes, audits and compliance paperwork, and the one‑off requests that arrive all year.

  • The four types: two dividing lines, one horizontal and one vertical, split the chart, and both sit at 100. A customer at 100 or above on net price is in the high‑price half, above the horizontal line. A customer at 100 or above on cost to serve is in the high‑cost half, right of the vertical line. Each type has a standard name, set by where the customer sits. A customer that pays a high price and costs little to serve is Passive, and one that pays a high price and costs a lot to serve is Carriage Trade. A customer that pays a low price and costs little to serve is Bargain Basement, and one that pays a low price and costs a lot to serve is Aggressive.

  • Bubble size: annual Net Sales in $M. Each customer is drawn as a bubble, a circle, and the biggest bubbles are your biggest revenue customers. That is the reason for drawing the chart this way. When the biggest bubble sits in the worst type, the order you would rank customers in by revenue and the order you would rank them in by profit disagree, and you can see it at a glance, without a table.

  • Default portfolio: the set of customers the tool loads when it opens. It holds 10 customers with about $67M of Net Sales between them, arranged so that every one of the four types holds at least two accounts. The first five (National Grocer, Premium Grocer, Discount Champion, Regional Fresh, Convenience Plus) carry the same net price and cost‑to‑serve indexes as Customers A to E in the lesson's worked example. A student arriving from the lesson therefore sees the same five positions on the chart. Their Net Sales are set for this larger portfolio rather than copied from the lesson.

  • What the tool computes: each customer's type, and the share of Net Sales sitting in each type. It does not compute profit. Where this page quotes a profit per unit, meaning what you earn on each unit you sell to that customer, it works the figure out from the customer's two indexes in the same way as the lesson's worked example. That example assumes the average unit earns 6 points of profit, measured on the same scale as the net price index. A point of net price above or below average moves profit a full point, and a point of cost to serve moves it 0.3.

5.2Controls & toggles

Every input the calculator exposes, its range, and what it changes.

ControlRangeDefaultWhat it changes
Click a customer row in the tableAny of the ten default customers, or any you have addedNo customer selected, so the panel shows the portfolio summarySelects that customer and highlights its row in the table. The editor in step 2, where you change a customer's figures, fills in with its current values. The card under the chart switches from the portfolio summary to that customer's account type, with the question the type asks and the posture the lesson recommends for it.
Net price received (index) slider75 to 120, in steps of 1Each default customer's own value (the ten run from 85 to 109)Moves the bubble up or down. At 100 or above the customer is in the high‑price half. Raise a low‑price account's net price to 100 or above and its type changes. If its cost to serve is high, it moves from Aggressive to Carriage Trade. If its cost to serve is low, it moves from Bargain Basement to Passive. In the lesson's worked example, the price half of the repair was a net price 1 to 2 percent better on the invoice, which on this index is a move of 1 to 2 points.
Cost to serve (index) slider60 to 130, in steps of 1Each default customer's own value (the ten run from 75 to 113)Moves the bubble left or right. At 100 or above the customer is in the high‑cost half. Cut a high‑cost account's cost to serve below 100 and its type changes. If its net price is low, it moves from Aggressive to Bargain Basement. If its net price is high, it moves from Carriage Trade to Passive. In the lesson's worked example, a year of taking cost out moved the largest account's index from 110 to about 105, so a move of 10 points or more on this slider is more than that example achieved.
Annual Net Sales ($M) slider$0.5M to $30M, in steps of $0.5MEach default customer's own value (the ten run from $2.5M to $18.0M)Sets the size of the customer's bubble, as long as the toggle above the chart, a two‑way switch, is set to Bubble = Net Sales. It also changes each type's share of Net Sales, which the two cards under the chart give for Passive and Aggressive accounts. It does not change the customer's type, because the type depends only on the two indexes.
Add customer / RemoveAs many customers as you like; 5 to 15 keeps the chart readable10 customersThe Add customer button adds a new row to the table and puts its bubble where the two dividing lines cross (Net Sales $4.0M, net price index 100, cost‑to‑serve index 100). The tool reads it as Carriage Trade until you move it, because a score of exactly 100 counts as high on both price and cost. Remove, in the editor, deletes the selected customer. Use them to try out an online account or a hard discounter (a retailer that runs a narrow range at very low prices) that has just listed your range, or to see what the summary looks like without a customer you are thinking of exiting.
Bubble = Net Sales / Bubble = uniform toggleTwo settingsBubble = Net SalesBubble = Net Sales puts the revenue view and the profit view on one chart, which is how the biggest bubble is seen sitting in the worst type. Bubble = uniform gives every account the same size, which is how you notice the small Passive accounts that a revenue‑sized chart shrinks to dots.
Reset to defaultsOne button, at the right end of the Controls headingThe ten default customersPuts the ten default customers back and clears the selection. Reloading the page does the same, because the tool keeps nothing in the web address, so take a note of any portfolio you want to keep before you leave.
5.3Step-by-step exploration

7-step guided exploration of the scenario.

  1. Read the starting position

    Open the tool and leave every control where it is. Find which of the four types each bubble sits in before you touch anything, and note the largest bubble: National Grocer, at about $18M of Net Sales and 27% of the portfolio. Then read the portfolio summary in the panel below the chart, which counts the customers in each type and shows each type's share of Net Sales.

    Expected outcome: Two customers sit in Aggressive (low price, high cost), and one of them is the largest customer. Two sit in Carriage Trade (high price, high cost), two in Bargain Basement (low price, low cost) and four in Passive (high price, low cost). Measured by money rather than by head count, about 35% of Net Sales comes from the Aggressive accounts, 27% from Passive, 21% from Carriage Trade and 17% from Bargain Basement. The revenue ranking makes this portfolio look healthier than it is, because the biggest revenue line belongs to an Aggressive account.
  2. Click the largest bubble's row and read its account type

    Click National Grocer in the table. The card under the chart switches to the Aggressive type, which pairs a low net price with a high cost to serve. Of the four types, it is almost always the one that earns the lowest margin. The question it puts to you is whether the relationship can be repaired by taking cost out, or whether it is time to walk away. This account has the same two index numbers as Customer A in the lesson's worked example: 95 on net price and 110 on cost to serve. Worked out the way that example does it, the account loses 2 points of profit on every unit: the average unit earns 6, its lower price takes off 5, and its higher cost takes off 3.

    Expected outcome: The biggest revenue customer in the portfolio is in the worst account type. Catching exactly this is the main thing the matrix is for. More sales‑team time, deeper promotional support and more custom work, the usual response to a big account, would push it further into Aggressive, which is what the lesson's example found. The next two steps test what it takes to move it out.
  3. Move cost to serve from 110 to 95 and watch the type change

    With National Grocer selected, drag the cost‑to‑serve slider from 110 down to 95. As the index drops below 100, National Grocer's bubble crosses the vertical dividing line into the low‑cost half, and its type changes from Aggressive to Bargain Basement. The panel switches to that type's text: low price, low cost, often profitable per unit, and the question becomes whether the volume is worth the share of your business it takes up.

    Expected outcome: The account has crossed the line on cost alone, with its net price untouched. Worked out the lesson's way, its profit goes from -2 to about +2.5 points on each unit. The average unit earns 6 and the lower price takes off 5. The cost index is now 5 points below average, and each of those points adds 0.3. Fifteen points is a big cut: the lesson's own example took a year to bring the same account from 110 to about 105, by dropping the most expensive one‑off requests and taking cost out of how the account was served. So this step shows you where the dividing line is, and the lesson's example shows how fast a real account can move.
  4. Now raise net price received from 95 to 102

    Stay on National Grocer and drag the net‑price slider from 95 up to 102. When the index reaches 100, the bubble moves up across the horizontal dividing line into the high‑price half. The type changes again, from Bargain Basement to Passive (high price, low cost), often the most profitable type on the matrix.

    Expected outcome: Together, the cost cut and a 7‑point rise in net price move your largest revenue customer out of Aggressive, the worst type. It lands in Passive, the only type that pays well and costs little to serve. On the lesson's basis it now earns about 9.5 points of profit on each unit: 6 on the average unit, plus 2 because its price now sits above average, plus 1.5 because its cost now sits below average. The two share cards under the chart move with it: Aggressive falls from about 35% of Net Sales to about 8%, and Passive rises above 50%. Seven points of net price is a much bigger move than anything in the lesson's example, where rewriting the customer's terms raised the net price on the invoice by 1 to 2 percent. So treat this step as a way to see how the chart behaves rather than as a plan you could take into a negotiation.
  5. Reset, then look at Regional Fresh in Passive

    Click Reset to defaults, then click Regional Fresh: net price exactly at the portfolio average (100), cost to serve at 90, about $6.8M of Net Sales. Its type is Passive. The card describes the posture: this customer pays well and asks for little, so the only job is to keep it. It has exactly the same index numbers as Customer D in the lesson's example. Customer D earns 9 points of profit on each unit while paying only the average price, purely because it costs 10 percent less than average to serve, and in that example it was getting no attention at all.

    Expected outcome: Now use the switch above the chart to go from Bubble = Net Sales to Bubble = uniform, so every bubble is drawn the same size. The four Passive bubbles become the same size as everyone else's. On the chart sized by revenue they looked like small dots, yet between them these accounts hold 27% of the portfolio's Net Sales. Passive accounts rarely escalate, rarely ask for a review and rarely reach a senior conversation, which is exactly why teams under‑invest in them. They are the accounts that earn without making a noise.
  6. Add an online‑only customer and read its type

    Click Add customer. In the editor, set the new customer's Annual Net Sales slider to 4.0 (the slider counts in millions of dollars). Set its net price received index to 108 and its cost‑to‑serve index to 82, and give it a name such as Online Direct. The bubble lands in Passive, the summary updates and the customer count rises to 11.

    Expected outcome: An online‑only account with low handling cost and a net price a little above the portfolio average lands in Passive by definition, because both of its indexes sit on the good side of the lines. This matrix answers one question about it: whether it is profitable to serve. The Customer Investment Map on the lesson page answers a different one, where the next trade dollar should go, and it places accounts by value today and growth outlook rather than by price and cost. If this new account is also growing fast, the map would put it in Build, small today and worth funding early. For a Passive account in Build, the question is how to invest in its growth without adding extra services year after year until the extra cost to serve turns it into Carriage Trade. Read the two charts together before you set its terms.
  7. Take the matrix into the trade terms reset

    Click Reset to defaults. Take a snapshot of the chart and of the summary. Pick out the two or three customers where ranking by revenue and ranking by profit disagree most. Look first at the biggest bubbles in Aggressive: customers that bring in a lot of revenue but little profit on each unit. Then look at the smallest bubbles in Passive: customers that bring in little revenue but a lot of profit on each unit. For each Aggressive account, write down the single cost driver you would go after first. That is the one thing, such as custom packaging or deliveries split into small loads, behind most of what the account costs you to serve. Carry the snapshot and that list into the next commercial review.

    Expected outcome: You leave with a view of the portfolio you can defend in the room, a named cost driver for each Aggressive account, and a list of the Passive accounts you mean to protect. The matrix sorts each customer into a type and tells you what that type calls for. Deciding which single cost or price change to make on a particular account needs that customer's own profit and loss account, the line‑by‑line view of what it earns you and what it costs you, and that is where the next commercial review starts.
5.4Reading the output

Every KPI, the formula behind it, and how to interpret a positive or negative value.

KPIFormulaHow to read it
Customer account type (Passive, Carriage Trade, Bargain Basement, Aggressive)Take net price received (NPR) and cost to serve (CTS), each as an index where 100 is the average across the customers in your portfolio. A customer is Passive if its NPR is 100 or more and its CTS is under 100. It is Carriage Trade if both are 100 or more, and Bargain Basement if both are under 100. It is Aggressive if its NPR is under 100 and its CTS is 100 or more.Read the type before the revenue. Each type calls for a different way of running the relationship. Defend a Passive account, because it pays well and asks for little. Re‑scope a Carriage Trade account, which means taking out the costly extra services its price does not cover. For a Bargain Basement account, judge whether its volume is worth the share of your business it takes up. And repair or exit an Aggressive account, meaning either fix what makes it lose money or walk away from it. The type says nothing about which cost driver to go after. For that you need the customer's own profit and loss account (P&L), which sits behind the bubble rather than on the chart.
Largest bubble in the worst typeThe highest Net Sales among the customers whose type is AggressiveThe single most useful reading on the matrix. When your largest revenue customer sits in Aggressive, a ranking by revenue puts your customers in the wrong order for profit. The next trade terms reset, when the terms are renegotiated, is where you put that right. In the lesson's worked example, fixing that account took a net price on the invoice 1 to 2 percent higher and cost taken out of serving it, both at once. Within a year the account went from losing money on each unit to making a profit on it. The conversation is rarely about dropping the customer. Much more often it is about which single cost, once dealt with, would move the account into a better type, and how many contract renewals that would take.
Share of Net Sales in PassiveNet Sales of the customers whose type is Passive, divided by total Net SalesThis card's verdict is colored on the tool's own bands. It reads green at 30% or more, neutral between 20 and 30, and red below 20. Those bands are there to help you read the card and were chosen for this tool alone. They were set so that the default portfolio's 27% lands in the middle band, as a base worth watching. The lesson sets no target share for any type. What the card is really asking is how much of your money comes from accounts that pay well and ask for little. Watch which way accounts are moving, too. A Passive account that starts asking for services made just for it, such as custom packs or special deliveries, gets more expensive to serve. As its cost to serve rises, its bubble moves right, toward Carriage Trade. It moves a little further at each annual review, unless somebody is looking after the relationship.
Share of Net Sales in AggressiveNet Sales of the customers whose type is Aggressive, divided by total Net SalesThe tool flags 25% or more as structural. The card's verdict shows green under 15%, neutral from 15 to 25, and red from 25 up. The default portfolio starts at about 35, in the red, because it was built to show you what that looks like. Above the band, a large part of your revenue comes from customers who pay below average and cost above average to serve. The lesson's answer for each of them is the same: find the single thing driving most of the cost, then charge for it or agree with the customer to stop doing it. In the lesson's example both halves of the repair were needed, a net price 1 to 2 percent better on the invoice and enough cost taken out to bring the cost index from 110 to about 105.
Cost-to-serve understatement checkReported cost to serve in dollars, divided by a fully loaded estimate. If the reported figure is low by the 1.5 to 2x the lesson warns about, the ratio comes out between 0.5 and 0.67 (1 divided by 2, and 1 divided by 1.5). Do this check on the dollar figures rather than on the index: an understatement shared evenly by every customer leaves every index exactly where it was, because the portfolio average is understated by the same amount.Reported cost to serve often sits well under the real figure, commonly by something like 1.5 to 2x. Treat that multiple as a warning about what your own numbers are likely missing rather than as a measured finding, because it moves a long way by customer and by category. Three costs rarely reach the customer P&L: the cash tied up while you wait to be paid, the time spent settling disputes, and the hours that go on one‑off requests. Get those onto the cost‑to‑serve number before you trust the chart. Suppose your key account team, the people who manage your big retail customers, privately calls a customer a nightmare. If that customer shows up in Passive or Bargain Basement, the two low‑cost types, its cost‑to‑serve figure is probably too low.
Profit per unit, as a reference point (the lesson's five-customer worked example)The lesson's basis: 6 points of profit on the average unit, where a point of net price above or below average moves profit a full point and a point of cost to serve moves it 0.3. Customer A (NPR 95, CTS 110): 6 - 5 - 3.0 = -2 points. B (108, 105): 6 + 8 - 1.5 = +12.5. C (88, 75): 6 - 12 + 7.5 = +1.5. D (100, 90): 6 + 0 + 3.0 = +9. E (105, 95): 6 + 5 + 1.5 = +12.5.Low cost to serve buys real profit, and it does not on its own make an account the best one you have. Customer D earns 9 points on a net price exactly at the average purely because its cost to serve runs 10 points under average, which is the Passive case in its purest form and worth protecting. B and E both earn 12.5, because a few points of net price are worth more than the same few points of cost to serve: price moves profit point for point, cost to serve at about a third of that. So read Passive as the type that earns steadily and defends well, rather than as the type that wins outright. This tool sorts customers by type and computes no profit. These figures are the lesson's, quoted here because the tool's first five customers share Customers A to E's indexes.

The chart sorts your customers into the four types, the card under it turns each type into a posture, and the specific cost driver to act on comes from the customer's own P&L rather than from anything on this page. Bring three things to the next commercial review. The first is the snapshot of the chart, and the second is the number of customers in each type. The third is a list of the two or three Aggressive accounts you plan to fix, with the one cost you will tackle first on each. The reading that surprises most senior teams is the first one. The largest revenue line is not automatically the largest profit line, and in the lesson's example it was the smallest of the five. The matrix is the picture that makes that point land in a room full of people who have only ever seen the revenue ranking.

5.55 common mistakes to avoid

Diagnostic patterns that catch the most common misuse of this calculator.

  1. Mistake 1Sorting the portfolio by revenue and stopping there
    Symptom: The annual review opens with 'our top five customers are most of our Net Sales', the team congratulates itself on the concentration, and nobody plots the matrix. The largest customer's profit per unit is not on any slide.
    Fix: Put the matrix in front of the revenue slide at each annual review. Ranking by revenue is a fair check on where the volume sits and a poor guide to where the profit sits, because two customers can bring in the same revenue and belong in different types. The matrix is the second sort, and it belongs on every annual customer review deck.
  2. Mistake 2Using gross margin percent on the vertical axis instead of net price received
    Symptom: Picture a customer that pays a strong list price but also receives a lot of trade money after the invoice, as rebates and fees settled separately. Its gross margin still looks fine, so the chart puts it in Carriage Trade, a high‑price type. Count the money it gets after the invoice and its net price is low, so it is really an Aggressive account. The chart reads 'expensive but premium' about an account that is losing you money.
    Fix: Use net price received, which is what you actually keep. Start from the list price and take off the trade allowances deducted on the invoice and the discounts written into the contract. Then take off the listing and slotting fees the retailer charges to stock and shelve your products. Last, take off the year‑end rebates and any other payments settled after the invoice. Money paid off the invoice lowers the net price you receive and pulls the customer down toward the low‑price half of the chart, and a gross margin percent worked out before that money leaves hides it. The matrix gives a true reading only when both axes measure what you actually keep and what you actually spend.
  3. Mistake 3Understating cost to serve and getting false Passive readings
    Symptom: A customer the key account director privately calls a nightmare to deal with shows up in Passive. The team trusts the chart and puts no effort into re‑scoping the relationship.
    Fix: Get the indirect costs onto the number first. The cash tied up in payment terms, the time spent settling disputes, returns handling and the hours that go on one‑off requests all belong on the cost‑to‑serve figure before a customer is plotted. Reported figures often sit well under the real ones, commonly by something like 1.5 to 2x, and that is a warning about what your own numbers may be missing rather than a measured finding. Those missing costs rarely fall evenly across customers. So a useful test is to take the accounts you know carry them, drag each one's cost‑to‑serve slider up until its index reflects what the account really costs you, and see which ones change type.
  4. Mistake 4Treating the Aggressive label as a signal to exit the customer
    Symptom: A senior leader sees the largest customer in Aggressive, asks 'should we exit them?', and the meeting collapses into a line‑by‑line defense of the relationship instead of a review of what the account costs.
    Fix: Aggressive calls for repair or exit, and repair is tested first. Exit is a year‑long commercial conversation rather than a one‑meeting decision. The first move is to find the single cost driver behind most of the cost (custom packaging, payment terms, one‑off requests, deliveries split into small loads, returns) and either charge for it or agree with the customer to stop doing it. In the lesson's worked example that took a year, moved the largest account from a loss of 2 points per unit to a profit of 1, and kept the listing.
  5. Mistake 5Under‑investing in Passive customers because they do not demand attention
    Symptom: Each budget round, the trade investment goes to the accounts that push hardest for it, and those are usually the Aggressive ones, which pay a low price and cost a lot to serve. The Passive accounts get flat or falling investment year after year. Then a competitor's key account manager arrives offering one of them more service, you match the offer, and the extra cost of serving it pushes that account over into Carriage Trade.
    Fix: Defend the Passive type on purpose, as a standing plan. It is often the most profitable type per unit on the matrix, and the lesson's rule for such an account is that the only job is to keep it. That means enough of the sales team's time to keep its cost to serve from slowly rising, and enough investment in its growth that a competitor does not win that growth first. This matters more as new online and convenience accounts get bigger. A Passive account tends to stay Passive because somebody is keeping it there.
Related concepts

Go deeper on the theory

Continue with the lessons

Go further inside Trade Terms

This calculator is the sandbox slice of Lesson 3: Customer Tiering. Each of the other 5 Trade Terms lessons teaches a complementary concept that sharpens how you read the output above.

See Customer Profitability Matrix Builder inside the full lesson

RGM Academy lets you pull every commercial lever yourself inside a senior-practitioner simulator, with the AI RGM Strategist coaching every decision you make.

Unlock the full Customer Tiering lesson

Or see what a team rollout includes