Internal cannibalization happens when a new SKU, promotion, or bundle takes sales from products you already sell. This is also commonly called product cannibalization or sales cannibalization. To measure it, estimate what those existing products would have sold without the change, compare that baseline with actual sales, and calculate the change in contribution across the affected assortment.
A new product selling 300 units does not necessarily add 300 units to the business. If it displaces 200 comparable units from existing products, the net gain is 100. Whether that shift helps depends on the contribution earned on the new sales, the contribution lost elsewhere, and any additional costs.
Key Takeaways
- A decline in an existing SKU is a signal to investigate, not proof of cannibalization.
- Use an unaffected comparison group to estimate sales without the launch or offer.
- Measure displaced volume and total contribution separately. More units can still leave the business worse off.
- Count each sale once, including bundle components, and allow time for delayed purchases and returns.
Define which products could lose sales
Start with the purchase the new offer could replace. Similar packaging alone is a weak reason to group products; shared use, pack size, price, and customer needs make substitution more plausible.
For a new moisturizer, the affected group might include existing formulas in the same size. For a multipack, include the single packs it could replace. For a kit, include its components sold separately. A retailer should include competing brands it sells if shoppers could switch between them: both sides of that transaction belong to its assortment.
Set this scope before looking at the results. Include plausible substitutes even if their sales later rise, and track related products that might gain sales separately. Selecting only products that declined exaggerates the apparent loss.
Record the launch date, eligible stores or customers, affected SKUs, and review window. Keep a wider category total as a check on whether your chosen group misses displaced sales. For replenishable goods, the window should cover a normal repurchase cycle and a useful period afterward; one launch weekend cannot establish the lasting effect.
Build a baseline for sales without the change
The baseline is an estimate of what would have happened during the test period without the new offer. Last month’s total is only a starting point. Seasonality, traffic, availability, and competing offers can change demand even when your assortment stays the same.
Use sales by SKU and store, region, or assigned customer group. Alongside units and net revenue, retain actual discounts, returns, variable costs, stock availability, and promotion dates. Keep equivalent weekdays and trading periods in both groups.
Choose a comparison group outside the effect
When practical, introduce the new SKU to randomly assigned stores or customer groups while a holdout keeps the previous assortment. Keep customers in their assigned group throughout the test. Compare outcomes across everyone assigned, including people who buy nothing; comparing only buyers can hide changes in purchase behavior.
If random assignment is unavailable, choose locations with similar sales trends, customer mix, availability, and trading conditions before launch. A group with similar sales volume but a different trend is a poor baseline.
The comparison group must remain unexposed. Another flavor on the same shelf is usually a candidate for displacement, so it should not serve as the control. Customers crossing between test and holdout stores can also blur the comparison.
State how the comparison adjusts your forecast
For a simple spreadsheet estimate, apply an unaffected group’s proportional sales change to each existing SKU’s pre-launch sales:
Expected units without launch = pre-launch units × comparison-group growth factor
If comparable locations grow from 1,000 to 1,100 units, the factor is 1.10. A test location that previously sold 600 units of an existing SKU would have a baseline of 660.
This assumes the SKU would have followed the same proportional change. Check that relationship across several earlier periods. It is a simple ratio adjustment, not a causal guarantee or a full statistical model. If product trends differ, use separate defensible forecasts instead of forcing one factor onto every SKU.
With no credible control, label the result a forecast-based estimate. A simultaneous rise in one product and fall in another cannot, by itself, distinguish switching from stockouts, seasonal demand, or an unrelated promotion.
Calculate displaced sales and the cannibalization rate
The following is a hypothetical four-week launch of a light moisturizer. All three products use comparable pack sizes. The two established products remain available at unchanged prices, and the comparison group grows 10%. Assume there are no other material changes unique to the test group.
| Product | Before launch | Expected without launch | Actual during launch |
|---|---|---|---|
| Original cream | 600 | 660 | 520 |
| Rich cream | 400 | 440 | 380 |
| Light cream, new | 0 | 0 | 300 |
| Total units | 1,000 | 1,100 | 1,200 |
The original cream falls 140 units short of its baseline; the rich cream falls 60 units short. Together, existing products sell 200 fewer units than expected.
Under the stated assumptions, those 200 units are the estimated displaced volume. The calculation does not identify 200 individual shoppers who switched. It estimates the loss relative to the no-launch scenario.
For a new product, a useful unit-based measure is:
Estimated cannibalization rate = units displaced from existing products ÷ new-product units sold × 100
In this example, 200 ÷ 300 × 100 = 66.7%. Roughly two-thirds of the new SKU’s volume is offset by estimated losses elsewhere in the group.
The assortment gains 1,200 − 1,100 = 100 units, or 9.1% above baseline. Comparing only with the earlier 1,000 units would suggest a 200-unit gain and attribute the comparison group’s expected growth to the launch.
These totals cover the defined group and period. They do not prove that the remaining 100 units came from new customers; existing customers might buy more, switch from products outside the group, or bring forward a later purchase.
Keep the rate’s denominator explicit
For a promotion on an existing SKU, use its additional units above baseline as the denominator, rather than all units sold during the promotion. If it would have sold 500 units, sells 700, and displaces 80 units elsewhere, the estimated rate is 80 ÷ 200 = 40%.
Use the same measurement basis in numerator and denominator. Do not divide revenue lost by units gained. For different pack sizes, use comparable contents such as liters or doses, or report revenue and contribution effects separately.
If the focal product has no positive uplift, that uplift-based rate is undefined. If the ratio exceeds 100%, retain the result and investigate the assumptions and wider losses. Do not cap it to make the launch appear healthier.
Measure the contribution of the whole affected assortment
Contribution shows whether the new sales compensate for the sales displaced. Use net sales revenue minus the variable costs needed to earn it. The detailed cost treatment belongs in the contribution margin guide; here, the task is to compare the same set of products across two scenarios.
Continue the hypothetical moisturizer example. Assume contribution per unit is $12 for the original cream, $18 for the rich cream, and $10 for the new light cream. These amounts already reflect discounts and relevant variable costs. The established products’ unit economics stay unchanged.
| Product | Contribution per unit | Expected contribution | Actual contribution |
|---|---|---|---|
| Original cream | $12 | $7,920 | $6,240 |
| Rich cream | $18 | $7,920 | $6,840 |
| Light cream, new | $10 | $0 | $3,000 |
| Total | $15,840 | $16,080 |
The new SKU contributes $3,000. Lost contribution on the existing products is 140 × $12 + 60 × $18 = $2,760. The assortment therefore gains only $240 before additional launch costs.
Suppose the launch also requires $600 of incremental creative and display spending, which is not included in unit costs:
Net incremental result = actual assortment contribution − baseline assortment contribution − additional costs
$16,080 − $15,840 − $600 = −$360
The assortment sells 100 more units than expected but leaves $360 less after the specified launch costs. The new SKU’s own contribution is positive; the launch’s measured result is negative.
Keep incremental spending separate from unchanged overhead. If a cost is already deducted in the unit calculation, do not subtract it again. Show one-time launch spending separately from recurring costs so later review periods remain interpretable. This result is not the store’s total operating profit.
Adapt the measurement for promotions and bundles
Promotions and bundles need the same assortment boundary, but their sales records require different handling.
For a promotion, include the margin change on all promoted sales. A discount affects units that would have sold anyway as well as additional units. Calculate actual contribution at the actual selling price, then compare it with the no-promotion baseline for the focal SKU and its substitutes. Track purchases after the promotion for signs of demand brought forward. The broader campaign evaluation is covered in promotional pricing.
For a bundle, reconcile component quantities without duplicating revenue. A bundle containing two jars represents one bundle order and two jar-equivalents. Use the two jar-equivalents when comparing physical volume, but record the bundle’s revenue and costs once. If your order export includes both a parent bundle row and child component rows, identify which rows carry the financial amounts before aggregating.
A fall in standalone sales can simply reflect products now being purchased through the bundle. Measure total component volume and contribution across both routes against their baseline. The purchase someone would have made without the offer still matters, but setting the package price is a separate task covered in bundle pricing.
Keep gains on complementary products visible as well. If an accessory rises above a credible baseline, include its signed contribution change in the affected assortment. Report that gain separately from displaced substitute sales so it does not conceal the switching pattern. Do not add it twice through overlapping category totals.
Test whether the conclusion survives uncertainty
A cannibalization estimate is only as useful as its baseline. Before acting, change the assumptions that could alter the decision.
In the moisturizer example, hold actual sales, unit contribution, and the $600 launch cost fixed. Suppose plausible no-launch growth ranges from 5% to 15%, rather than exactly 10%:
| Assumed growth without launch | Expected units | Estimated displaced units | Net incremental result |
|---|---|---|---|
| 5% | 1,050 | 150 | +$360 |
| 10% | 1,100 | 200 | −$360 |
| 15% | 1,150 | 250 | −$1,080 |
This is an illustrative sensitivity range, not a statistical confidence interval. It shows that a modest change in the baseline reverses the financial conclusion. The evidence does not yet support a firm decision to expand or remove the SKU.
Check availability before assigning losses to switching. If an existing product was out of stock for unrelated reasons, its shortfall is not evidence that customers preferred the newcomer. If the launch itself displaced its shelf space or inventory, record that as part of the launch’s total business effect, while distinguishing it from voluntary customer substitution.
Also check that returns have had time to arrive and that test locations did not receive different advertising, shipping terms, or unrelated price changes. Customer-level purchase histories can support a switching explanation, but they do not reveal with certainty what each buyer would otherwise have purchased.
For a larger rollout, estimate uncertainty using the unit at which the test was assigned. A store-level test needs store-level analysis; thousands of receipts do not become thousands of independent experiments. If the result remains inconclusive, extend the planned observation window or run a better controlled test before making a permanent range decision.
Use the result to make an assortment decision
Keep or expand an offer when its measured contribution gain survives plausible baseline changes and covers the costs of maintaining it. Some substitution can be acceptable when customers move to products that contribute more. Claims about retaining customers who would otherwise leave need separate evidence.
When the result is weak, inspect which products lost contribution. Heavy displacement of a higher-contribution product may justify changing the new offer’s positioning, availability, or place in the range. Price lining addresses how to give those alternatives distinct roles.
Close the review with the affected SKU list, baseline method, estimated displaced units, net contribution change, and remaining uncertainty. That record makes the next assortment decision comparable with this one, even when the bestselling product changes.
See how your own catalog compares with the market
SkuPeek finds matching competitor offers and compares their prices and availability with your products.
