Case study · controlled test with a known answer
A full shelf of 60 energy drinks, a conjoint survey of 2,000 shoppers, and the questions a category review turns on: if a product goes, where do its buyers switch; if a brand launches a new one, whose sales does it take; and what will the new range earn. The shoppers were simulated, so every true answer is known.
Result: Chosŏn learned how these shoppers switch, by brand, flavor and pack, and fitted the full model in 7 minutes. When a product was cut, it sent 47% of its buyers to the same brand (truth: 45%). The standard approach in conjoint software sent 19% to 27%, and overstated how much a brand's launch eats its own line by about half.
The shelf holds 60 energy drinks: six brands, six flavors and two can sizes, each at its own price and unit cost. Six new products are candidates for launch, one per brand. A retailer wants to know which 40 to keep; a brand owner wants to know which of their products can go and what a launch adds.
All of these hinge on one thing: when a shopper can't have the product they would have picked, what do they pick instead? In this category, shoppers who lose a product often stay with its brand or its flavor; its can size matters much less. That switching pattern is what a brand owner's cannibalization and a retailer's transferable demand are made of.
Each of the 60 products was taken off the full shelf in turn. The table shows where its buyers went, averaged over the 60 products and five surveys.
| truth | Chosŏn | standard (four versions) | |
|---|---|---|---|
| buyers who move to the same brand | 45% | 47% | 19% to 27% |
| buyers who move to the same flavor | 36% | 39% | 17% to 25% |
| buyers who move to the same can size | 56% | 56% | 50% to 59% |
| buyers sent to the wrong product | 0 | 9% | 23% to 37% |
Each brand launched its new product, with competitors' products unchanged. How much of the launch's volume came from the brand's own products, and how much profit did it add?
| truth | Chosŏn | standard (four versions) | |
|---|---|---|---|
| launch volume taken from the brand's own products | 10.4% | 10.4% | 14% to 15% |
| error in the launch's added profit | 5% | 10% to 11% | |
| brand cuts 3 of its 10: error in the profit forecast | 2.1% | 3.8% to 6.7% |
Much of a new product's volume comes from other brands' products of the same flavor, not from its own brand's line. A model that can't see flavor switching gives the launch's volume back to the brand's own line in proportion to share, and the launch looks less incremental than it is.
For the retailer's cut to 40 products and the choice of 2 launches, each method forecast the profit of the range it picked.
| method | its profit forecast vs the truth |
|---|---|
| Standard: share of preference (averages or posterior draws) | 3% to 3.4% high, on every survey |
| Standard: randomized first choice, tuned on holdouts | off by 1.5% to 1.7% on average |
| Chosŏn | within 0.2% |
The ranges themselves were all close to the best: for a retailer, a buyer who switches stays in the store, and every method ranked the 60 products well enough to keep nearly all of the profit. The differences are in the forecast and, for a brand owner, in where the buyers go.
A model with each shopper's tastes and switching by brand, flavor and pack is heavy to estimate at 2,000 shoppers and 60 products. We ran the same survey through the free tools researchers use for these models.
| tool | hardware | what it could fit | time | switching found (brand / flavor / pack) |
|---|---|---|---|---|
| Chosŏn | 1 GPU | tastes per shopper + switching by brand, flavor, pack | 6 to 11 min | 27% / 41% / 7% |
| Apollo (R) | 4 CPU cores | the same model, by simulation | 29 min | 0% / 0% / 0% |
| Apollo (R), 10× the simulation draws | 4 CPU cores | the same model | about 6 h (18 min on 100 shoppers) | 29% / 0% / 1% (100 shoppers) |
| R: mlogit, MNP (probit) | 2 CPU cores | one set of tastes for everyone; correlation between screen positions, not brands or flavors | mlogit unfinished at 6 h; MNP 40 min | can't be expressed |
| xlogit (Python) | 1 GPU | tastes per shopper, or switching, not both | 1 to 2 min | not with tastes |
| Truth: 25% / 40% / 5%. | ||||
A range review, a delisting or a launch case rests on where buyers go. The standard readout answers that from shares alone, so it sends cut products' buyers to the wrong places and misjudges cannibalization, and it does so the same way every time. Chosŏn estimates the switching from the survey, at full shelf size, in minutes, and shows it to you.