Pricing and territory analysis
Commercial teams ask three questions: what did price do, what would a discount cost, and where should we add coverage. This build uses an invented company and answers each with numbers you can move.
What this shows
- Price, volume and mix parts that add to the revenue change
- A discount test: how much extra volume it must win to break even
- A competitor price index by segment, and where the company sits
- Territory scores for potential against penetration, with a coverage recommendation
How I use it
- Judging a proposed discount before it is offered
- Telling a price increase that stuck from one that only looked like it did
- Choosing where to add a salesperson
Explore the model below. It uses an invented company and invented numbers.
Explore the model
Illustrative model · Synthetic dataWide tables scroll sideways: swipe inside a table to see every column.
Sample build: pricing and territory analysis
Orrin Vale Supply is an invented maker of cleaning and sanitation products, sold to four customer groups. Four views: where this year's revenue growth came from, whether a discount pays for itself, how our prices compare with rivals, and where to put sales reps in one sales region.
Synthetic inputs for illustration. Not data from any employer.
How to read this build
- The first view splits the revenue change into volume, mix and price, then shows how much of the list increase survived the discounts.
- The second tests a price cut. The third places our prices against rivals. The fourth scores territories and recommends where to add or move reps.
- The results move with the controls, and each view has a read-out written from its own numbers.
What to try
- Raise the list increase to 8 percent and watch the price part grow.
- Add 3 points of extra discount and watch most of that gain disappear.
- Switch to Product and click Laundry powder to see which customers carried its growth.
Orrin Vale Supply is an invented maker of cleaning and sanitation products. Units are cases. Last year's discounts are fixed, this year's are set by customer and product, and the sliders move the rest. Every figure is in millions of dollars unless it says otherwise.
Where the revenue change came from: All accounts
Revenue last year
$540.4M
Revenue this year
$602.9M
+11.6% on last year
From volume
+$30.2M
Overall unit growth, applied to this row
From mix
+$7.9M
Units above or below that growth
From price
+$24.4M
Net price change on this year's units
Share of the increase kept
84.3%
Net price over the list increase
Bars are millions of dollars. The same numbers are in the table below.
Revenue change by customer. Click a row to see the lines inside it.
| Customer | Last year | Volume | Mix | Price | This year | Change |
|---|---|---|---|---|---|---|
| $154.0M | +$8.6M | -$5.0M | +$7.3M | $164.9M | +$10.9M | |
| $125.0M | +$7.0M | +$6.4M | +$6.6M | $145.0M | +$20.0M | |
| $125.7M | +$7.0M | -$2.1M | +$5.0M | $135.6M | +$9.9M | |
| $135.7M | +$7.6M | +$8.6M | +$5.5M | $157.3M | +$21.6M | |
| All accounts | $540.4M | +$30.2M | +$7.9M | +$24.4M | $602.9M | +$62.5M |
Click a row to break it down by product. The bridge above follows your choice.
Price realization: did the increase stick?
The list increase is worked out at last year's discounts. Wider discounts take some of it back. Share kept is the net price part divided by the list increase. A share under 100 percent means discounts took some back, and a negative share means they took back more than the increase was worth.
Price realization by row
| Customer | List increase | Discounts | Net price | Share kept | Discount off list |
|---|---|---|---|---|---|
| Hotel group | +$7.9M | -$554K | +$7.3M | 93.0% | 12.5% to 12.9% |
| Hospital network | +$6.9M | -$353K | +$6.6M | 94.9% | 8.1% to 8.3% |
| Restaurant chain | +$6.5M | -$1.5M | +$5.0M | 76.5% | 15.1% to 15.8% |
| Food plant group | +$7.6M | -$2.1M | +$5.5M | 72.2% | 8.3% to 9.4% |
| All accounts | +$28.9M | -$4.6M | +$24.4M | 84.3% | 11.1% to 11.6% |
Read-out
Revenue for the company rose $62.5M to $602.9M. The largest part was volume (+$30.2M), then price (+$24.4M), then mix (+$7.9M). The list increase was worth $28.9M before discounts. Wider discounts gave back $4.6M, so 84.3% of the increase stuck.
How the three parts are measured
The parts are taken in a fixed order, so they always add to the change. Volume is the overall unit growth applied to the row's revenue last year, as if every account had grown at the same rate. Mix is the effect of accounts growing faster or slower than that, valued at last year's net prices. Price is this year's units times the change in net price.
- PassVolume, mix and price add to the revenue change
- PassEvery account line adds up on its own
- PassThe list increase and the change in discount add to the price part
- PassThe customer rows add to the total
- PassThe product rows add to the total
What to try
- Leave the cut at 5 percent and raise the elasticity until the change turns positive.
- Switch to Surface cleaner, which keeps a third of its price as margin, and watch the volume needed rise.
- Push the cut to 15 percent and see how far volume has to move.
An elasticity of 2 means a 5 percent cut wins 10 percent more volume. Cost per case does not change. The test compares total contribution, which is volume times the margin per case, before and after the cut.
Does a 5.0% cut on laundry powder pay?
Margin per case today
$36.00
40.0% of the $90.00 price
Margin per case after
$31.50
Price falls to $85.50
Extra volume to break even
14.3%
143 thousand cases a year
Extra volume at this elasticity
10.0%
100 thousand cases a year
Change in contribution
-$1.4M
The cut loses money
Elasticity that breaks even
2.9
Below this the cut loses money
A 5.0% cut on laundry powder needs 14.3% more volume (143 thousand cases) to break even. At an elasticity of 2.0 it wins 10.0% more volume, so contribution falls by $1.4M. It breaks even at an elasticity of 2.9.
Contribution today is $36.00M a year and after the cut it is $34.65M.
Change in contribution as elasticity rises
The same points as a table
| Elasticity | Extra volume won | Volume after, thousand cases | Change in contribution |
|---|---|---|---|
| 0.0 | 0.0% | 1,000 | -$4.5M |
| 1.0 | 5.0% | 1,050 | -$2.9M |
| 2.0 | 10.0% | 1,100 | -$1.4M |
| 3.0 | 15.0% | 1,150 | +$225K |
| 4.0 | 20.0% | 1,200 | +$1.8M |
Extra volume needed, by size of cut and margin
| Price cut | 25% | 30% | 35% | 40% | 50% | 60% |
|---|---|---|---|---|---|---|
| 2% | 9% | 7% | 6% | 5% | 4% | 3% |
| 4% | 19% | 15% | 13% | 11% | 9% | 7% |
| 5% | 25% | 20% | 17% | 14% | 11% | 9% |
| 6% | 32% | 25% | 21% | 18% | 14% | 11% |
| 8% | 47% | 36% | 30% | 25% | 19% | 15% |
| 10% | 67% | 50% | 40% | 33% | 25% | 20% |
| 12% | 92% | 67% | 52% | 43% | 32% | 25% |
The break-even volume is the cut divided by the margin left after the cut, so thin margins and deep cuts push it up fast.
How the break-even is checked
Break-even means volume today times today's margin equals the new volume times the margin after the cut. The check below puts the break-even volume back into that equation.
- PassBreak-even volume times the margin after the cut equals today's volume times today's margin
- PassChange in contribution equals new contribution less old
- PassThe cut per case equals price times discount
What to try
- Raise the list increase and watch the Food plant group move further above its rivals.
- Narrow the band to 2 points and see which groups fall outside it.
- Add extra discount and watch every group slide down the scale.
The first two sliders are the same ones as in the price, volume and mix view, so the index moves with this year's prices. The index prices this year's units at our net price and at the average net price of the competitors, then divides. Rival prices are invented.
Where our prices sit against rivals
All groups together
100.7
100 is the rival average
Target band
95.0 to 105.0
Where we are content to be
Groups inside the band
2 of 4
The others are over or under
Price index by customer group
| Customer group | Our index | Lowest rival | Highest rival | Our rank | Against rivals | Against the band | Room to band top |
|---|---|---|---|---|---|---|---|
| Hotel group | 102.1 | 97.0 | 103.0 | 3 of 4 | inside the rival range | In the band | +$4.6M |
| Hospital network | 100.3 | 96.0 | 105.0 | 3 of 4 | inside the rival range | In the band | +$6.7M |
| Restaurant chain | 94.1 | 95.0 | 105.0 | 1 of 4 | below every rival | Under the band | +$15.7M |
| Food plant group | 106.1 | 98.0 | 102.0 | 4 of 4 | above every rival | Over the band | -$1.6M |
Rank 1 is the lowest price among us and the three rivals. Room to band top is the revenue gained by moving to the top of the band at the same volume. A negative figure means we already price above the top of the band. It assumes volume holds, which the discount test shows is not free.
Read-out
Across all four groups our prices index at 100.7 against 100 for the rival average. Food plant group is the highest at 106.1, 1.1 points over the top of the band. Restaurant chain is the lowest at 94.1, 0.9 points under the bottom of the band, with $15.7M of room to the top of the band.
How the index is checked
- PassThe rival indexes in each segment average 100
- PassEach index equals our basket over the rival basket
- PassRevenue plus room to the band top equals the rival basket at the band top
What to try
- Click a territory in the table to see its detail and find it on the chart.
- Raise the potential one rep can cover from 4 to 6 and watch every shortage disappear.
- Lower it to 3 and see how many reps the same territories would need.
Territories and numbers are invented, in millions of dollars, and cover one sales region, so revenue here is a part of the company total in the first view. Potential is what the target accounts in a territory spend a year on products like ours. Whitespace is potential not yet won. The plan moves reps out of territories that have more than the target and into the ones that are short, biggest gap first, then adds reps for what is still short. A rep leaving an over-covered territory is assumed to take no revenue with them.
Potential against share reached
Total potential
$136M
Yearly spend by target accounts
Our revenue
$63.2M
46.5% of potential reached
Reps today
29
$2.2M of revenue per rep
The dashed lines are the median potential ($14M) and the company share reached (46.5%). Big and under-reached territories are the ones to add coverage to.
Territory scores. Click a name to see its detail.
| Territory | Potential | Revenue | Reached | Whitespace | Score | Group |
|---|---|---|---|---|---|---|
| $24.0M | $10.8M | 45.0% | $13.2M | 72 | Add coverage | |
| $20.0M | $12.0M | 60.0% | $8.0M | 43 | Defend | |
| $12.0M | $7.8M | 65.0% | $4.2M | 23 | Maintain | |
| $32.0M | $13.6M | 42.5% | $18.4M | 100 | Add coverage | |
| $12.0M | $6.0M | 50.0% | $6.0M | 33 | Maintain | |
| $8.0M | $3.6M | 45.0% | $4.4M | 24 | Selective | |
| $16.0M | $6.4M | 40.0% | $9.6M | 52 | Add coverage | |
| $12.0M | $3.0M | 25.0% | $9.0M | 49 | Selective |
Score is whitespace as a share of the largest whitespace, so 100 marks the territory with the most unwon potential.
Capital Metro
Share reached
42.5%
$13.6M of $32.0M
Whitespace
$18.4M
Score 100 out of 100
Reps
5 to 8
Now, then after the change
Potential per rep
$6.4M to $4.0M
Target is $4.0M
Accounts per rep
36
180 accounts
Revenue per account
$76K
Yearly, thousands of dollars
Recommended coverage change
Reps moved
2
From over-covered to short territories
Reps added
5
29 now, 34 after
First-year revenue
+$6.9M
10.9% of revenue
- Move one rep from River Valley to Capital Metro.
- Move one rep from Mountain to Capital Metro.
- Add 2 reps in North Coast.
- Add 1 rep in Capital Metro.
- Add 1 rep in South Shore.
- Add 1 rep in Desert Basin.
Reps by territory, before and after
| Territory | Reps now | Target | Moved out | Moved in | Added | Reps after | Potential per rep after |
|---|---|---|---|---|---|---|---|
| North Coast | 4 | 6 | 0 | 0 | 2 | 6 | $4.0M |
| Lake Region | 5 | 5 | 0 | 0 | 0 | 5 | $4.0M |
| River Valley | 4 | 3 | 1 | 0 | 0 | 3 | $4.0M |
| Capital Metro | 5 | 8 | 0 | 2 | 1 | 8 | $4.0M |
| Plains | 3 | 3 | 0 | 0 | 0 | 3 | $4.0M |
| Mountain | 3 | 2 | 1 | 0 | 0 | 2 | $4.0M |
| South Shore | 3 | 4 | 0 | 0 | 1 | 4 | $4.0M |
| Desert Basin | 2 | 3 | 0 | 0 | 1 | 3 | $4.0M |
Target reps are the potential divided by what one rep can cover, rounded, with at least one per territory. Revenue is a first-year estimate: each rep moved in or added reaches the chosen share of that territory's revenue per rep, capped at the whitespace there.
Rep productivity
Revenue per rep by territory, against the company figure
| Territory | Revenue per rep | Against company | Accounts per rep | Potential per rep now |
|---|---|---|---|---|
| North Coast (NC) | $2.70M | 124% | 40 | $6.0M |
| Lake Region (LR) | $2.40M | 110% | 30 | $4.0M |
| River Valley (RV) | $1.95M | 89% | 30 | $3.0M |
| Capital Metro (CM) | $2.72M | 125% | 36 | $6.4M |
| Plains (PL) | $2.00M | 92% | 30 | $4.0M |
| Mountain (MT) | $1.20M | 55% | 20 | $2.7M |
| South Shore (SS) | $2.13M | 98% | 33 | $5.3M |
| Desert Basin (DB) | $1.50M | 69% | 35 | $6.0M |
| Company | $2.18M | 100% | 32 | $4.7M |
Low revenue per rep with a high potential per rep points to thin coverage, so the fix is more reps. Low revenue per rep with a low potential per rep points to a small market, not a weak rep.
Read-out
Capital Metro has the most unserved potential: $18.4M of $32.0M, with 42.5% reached. At $4.0M of potential per rep, the plan moves 2 reps and adds 5, worth about $6.9M (10.9% of revenue) in the first year. Revenue per rep runs from $1.2M in Mountain to $2.7M in Capital Metro.
How the territory plan is checked
- PassWhitespace is potential less revenue in every territory
- PassReps after the change equal reps now, less those moved out, plus those moved in and added
- PassTotal reps after the change equal reps now plus reps added
- PassEvery rep moved out of one territory is moved into another
- PassNo territory is left without a rep
- PassScores run from 0 to 100 with 100 at the top
Revenue rose $62.5M: volume +$30.2M, mix +$7.9M, price +$24.4M, with 84.3% of the list increase kept. A 5.0% discount on laundry powder needs 14.3% more volume and does not pay at the chosen elasticity. Our prices index at 100.7 against 100 for rivals, and the territory plan moves 2 and adds 5 reps.