Basket Size Analysis for CPG Brands
Basket size analysis looks at what else is in the cart when your item is in it, and what the whole basket is worth. For a brand it answers a question no sales report can: whether your item brings a shopper who spends more, which is the single most persuasive thing you can tell a retailer.
It is also the analysis most often run badly, because affinity is easy to compute and easy to misread.
Key takeaways
- Basket size, basket composition, and cross-basket affinity are three different analyses. Only the third needs care.
- Raw co-occurrence just finds popular items. Lift, or an index against expected co-occurrence, is the number to use.
- The retailer-facing argument is basket value, not your velocity. A shopper who buys you and spends 22 percent more is a category argument.
- You need loyalty or basket-level data. Store-level POS cannot see baskets at all.
Basket size analysis, composition, and affinity are three things
Being precise about which one you are running prevents most of the confusion.
| Analysis | The question | Data needed |
|---|---|---|
| Basket size | What is the average basket worth when we are in it | Transaction-level with a basket ID |
| Basket composition | Which categories appear alongside us | Transaction-level with category tags |
| Cross-basket affinity | Which items appear with us more than chance predicts | Transaction-level plus a baseline rate |
Basket size and basket count are different numbers
Basket size on its own is a per-transaction average, and it gets reported two ways: items per basket and dollars per basket. Both matter and they move independently. In the worked read below, baskets containing the item average 17.2 items and $78.40, so the average item in those baskets rings at $4.56 against $4.40 across all baskets. A category can add items per basket while dollars per basket falls, which is what a shift into smaller pack sizes looks like from the register.
Basket count is the other half, and it belongs to the store rather than to the basket: how many transactions were rung. Total store sales is basket count times basket size, so retailers read the two together. A banner reporting flat sales with basket size up 6 percent and trip counts down 5 percent has fewer shoppers buying more per visit, which is a traffic problem wearing a basket-size result. For a brand it decides which argument lands. An item that raises basket size is useful to a retailer losing trips. An item that pulls a trip of its own is useful to one whose baskets are already large.
The affinity trap
The classic error: compute how often item B appears in baskets containing your item A, sort descending, and call the top of the list an affinity. What you have produced is a ranking of the store's most popular items. Bananas, milk, and eggs will be at the top of every affinity list you ever run, and they mean nothing.
The fix is to divide by expectation. Lift is the observed co-occurrence rate divided by the rate you would expect if the two items were independent. A lift of 1.0 means chance. A lift of 2.4 means baskets with your item are 2.4 times as likely to contain that item as a random basket.
Two guardrails after that. First, require a minimum basket count, because a lift of 8.0 computed on 14 baskets is noise wearing a decimal point. Second, sanity check direction: a small item can have enormous lift with a large item while representing a trivial share of that item's baskets, and which direction you report changes the argument entirely.
A worked read
A 16 oz fermented salsa across a regional natural chain, 12 weeks of loyalty-linked baskets.
| Metric | Baskets with the item | All baskets | Index |
|---|---|---|---|
| Average basket value | $78.40 | $61.20 | 128 |
| Items per basket | 17.2 | 13.9 | 124 |
| Fresh produce attachment | 81% | 64% | 127 |
| Private label share of basket | 19% | 27% | 70 |
The read: this item travels with a larger, fresher, less price-driven basket. That is a $17.20 basket premium, and across the roughly 6,900 baskets containing the item in the period it is about $119,000 of basket value the retailer sees on trips that include this brand.
The honest caveat, which belongs in the same slide: this is correlation. The item is not causing the larger basket, it is being chosen by shoppers who were already going to fill a larger basket. Nobody in a buyer meeting will believe a causal claim here, and making one costs credibility on the rest of the deck. The defensible framing is that the item indexes into the retailer's most valuable trips, which is a genuinely useful fact about their assortment.
What basket analysis wins
- Assortment defense. An item with below-median velocity and above-median basket value is not the right cut candidate, and this is the only analysis that shows it.
- Secondary placement. A strong cross-category affinity is the argument for a display outside your own aisle.
- Cannibalization checks. If your new 12 oz appears in baskets that used to contain your 16 oz, you have moved volume rather than grown it. See sales cannibalization.
- Promotion design. Whether a multi-buy grows the basket or just discounts the same units is visible here and nowhere else.
The data problem
Basket analysis needs transaction-level data with a basket identifier. Store-level POS, which is what most brands have, aggregates away the basket entirely: it can tell you 214 units sold in a store last week and never which trips they were on.
So the practical sources are a retailer's loyalty data program, a household panel with basket detail, or a retailer collaboration. All three are gated, and the first is usually paid. A brand without access can still do a useful version by comparing store-level velocity against store-level category and total-store sales, which approximates the basket question at the store level rather than the trip level. It is coarser and it is free.
How Scout fits
Scout works from store-level POS and syndicated data, so it computes the store-level approximation directly and ingests basket-level extracts where a retailer provides them. The cannibalization read matters most here: when a new size launches, Scout holds distribution constant and shows whether the incremental units are genuinely new or moved off your existing item, which is the version of the basket question a brand can answer without buying loyalty data.
Frequently asked questions
- What is basket size analysis?
- Examining the full transaction a shopper made when your item was in it: what the basket was worth, what else it contained, and which items appear together more often than chance would predict.
- What is a good lift score?
- Above 1.0 means more than chance. In practice, affinities worth acting on usually run 1.5 or higher with a meaningful basket count behind them. Very high lift on a small base is noise.
- Can you do basket analysis with syndicated data?
- Not the true version. Syndicated store-level data has no basket identifier. Household panel with basket detail can approximate it at the household level, and some retailer collaboration programs provide real basket data.
- Does a high basket value prove our item causes bigger baskets?
- No, and claiming so will cost you credibility. It shows the item is chosen by shoppers already making larger trips. That association is still a strong assortment argument, stated honestly.
See this on your own data
Scout gives CPG sales teams the analytics infrastructure they need, without spreadsheets.
Get a 15-min demoGet posts like this in your inbox
Retail data, trade promotion, and category management for CPG teams. Roughly weekly. Unsubscribe any time.