Why this matters
Convenience store share of wallet is the frame that makes a losing quarter legible, and most operators reach for it only after a simpler reading has already sent them the wrong way. A convenience operator watches morning transactions fall 6% over a quarter. The instinct is to look at competitors' prices, then at their own, and to conclude they need a cheaper coffee. Six months later the coffee is cheaper, morning transactions are still down, and the margin is worse.
The diagnosis was wrong because the unit of analysis was wrong. The store did not lose coffee sales to a cheaper coffee. It lost a breakfast occasion to a drive-thru that solved the whole thing in one stop, and the coffee went with it as an attachment. Repricing the attachment was never going to recover the occasion.
Share of wallet is the frame that gets this right, because it asks what fraction of a shopper's category spending you capture rather than what your sales did. This page is a method for measuring it without panel data, diagnosing which occasions are moving, and choosing a response that matches the actual loss.
The channel-level stakes are visible in the NACS data: foodservice reached 28.5% of convenience in-store sales in 2025 and 38.9% of in-store gross profit dollars, up from 11.9% of sales in 2005. The category convenience has bet on is the one QSR has spent decades defending.
The methodology
Step 1: map occasions, not categories
Stop reading the business as packaged beverages, snacks and foodservice. Read it as occasions, because that is the unit the shopper is actually deciding on and the unit a QSR competes for.
| Occasion | Rough window | Competitive set |
|---|---|---|
| Morning fuel-up | 5am to 10am | QSR breakfast, coffee chains, home |
| Midday meal | 10am to 2pm | QSR, fast casual, packed lunch |
| Afternoon pick-me-up | 2pm to 5pm | Vending, nothing, grocery |
| Evening fill-in | 5pm to 10pm | Grocery, QSR dinner, delivery |
| Late night | 10pm to 5am | Whoever is open |
The competitive set differs per row, and so does the correct response. Morning is contested by well-capitalised specialists. Afternoon is largely contested by the shopper deciding to do nothing, which is a completely different problem and much more winnable.
Step 2: run the traffic-versus-basket test
This is the diagnostic that separates the two failure modes, and it needs only your own transaction data. For the occasion under investigation, split the change in revenue into its two components:
Transactions x average basket = revenue
Then read which side moved.
| What moved | What it means | Correct response |
|---|---|---|
| Transactions down, basket flat | You lost visits | Occasion or access problem |
| Transactions flat, basket down | You lost the attachment | Merchandising problem |
| Both down | You lost the occasion outright | Structural response |
| Transactions down, basket up | You lost light buyers | Often fine, verify |
The fourth row catches a real trap. Losing marginal buyers who bought one cheap item raises average basket while transactions fall, and a dashboard showing "basket up" reads as good news during an erosion.
Step 3: measure occasion coverage rather than share
Without panel data you cannot know what a shopper spent elsewhere. You can know what fraction of your own visits include the occasion's complete basket, which is the estimator described in the share of wallet entry.
Count morning visits, then count how many include a beverage only, a food item only, or both. The both-column is your captured occasion. The beverage-only column is the population eating breakfast somewhere else, and it is addressable because they are already standing in your store.
Step 4: rank responses by what the QSR cannot do
This is where the QSR cost structure becomes actionable. A quick-service operator running 55% to 65% prime cost has little room for a permanent price move, and their fixed-cost base means they defend the peak aggressively but briefly.
So rank your options by how hard they are to copy:
- Speed at the peak. A QSR's drive-thru is fast. Their in-store morning line frequently is not, and neither is a queue behind one open register in your store. This is a labour scheduling decision, it costs little, and it directly addresses the reason a commuter chooses one stop over another.
- Bundling across the attachment. You can pair a beverage with a food item at a blended price. So can they, but their food cost is higher and their royalty is levied on gross sales, so the same bundle costs them more.
- Occasions they do not serve. Afternoon and late night have thin competition. A QSR closing at 10pm cannot contest an 11pm occasion at any price.
- Everyday price. Last, deliberately. It is the easiest to match, it is permanent, and it is the response the incumbent is best equipped to absorb.
Worked example
Sunrise Market, an illustrative operator, investigating a 6% morning decline across a quarter.
| Measure | Q1 | Q2 | Change |
|---|---|---|---|
| Morning transactions | 15,940 | 14,980 | -6.0% |
| Morning average basket | $6.40 | $6.61 | +3.3% |
| Morning revenue | $102,016 | $99,018 | -2.9% |
| Visits with beverage only | 52% | 58% | +6 pts |
| Visits with beverage + food | 22% | 16% | -6 pts |
The transaction count fell 6% while average basket rose 3.3%, which lands in the fourth row of the diagnostic table and looks like losing light buyers. The occasion-coverage rows say otherwise. Beverage-plus-food visits fell six points and beverage-only rose six points: the same shoppers are still coming, and they have stopped buying the food.
That is not a lost-visits problem, it is a lost-attachment problem sitting inside a transaction decline. Two things are happening at once, and the basket average was hiding the more important one.
The response follows from the diagnosis. Cheaper coffee addresses neither finding. What addresses the attachment loss is the hot case: what is in it at 7am, whether it is stocked before the peak rather than during it, and whether the beverage-only shopper ever passes it. What addresses the transaction decline is queue time at the peak, measurable from timestamps the store already has.
Reading the counterfactual honestly
One caution. A 6% transaction decline is not automatically a competitor. Check the store count and the calendar first, exactly as the export checks describe: a holiday falling in a different week, a road closure, or one store's polling gap all produce this shape. Attribute to competition only after the boring explanations are eliminated, because the boring explanations are more often right.
Building a convenience store share of wallet tracker
The diagnosis above is a one-time investigation. Turning it into something that catches the next erosion early takes four series, tracked per daypart, per store, every period.
| Series | What it catches | Source |
|---|---|---|
| Transactions per daypart | Visit loss, early | Register timestamps |
| Average basket per daypart | Attachment loss | Register timestamps |
| Occasion coverage rate | Which half of the occasion you hold | Basket contents |
| Queue time at peak | The mechanism behind morning loss | Transaction gaps |
The fourth is the one operators rarely build and the one that most often explains the other three. You do not need a queue-management system to approximate it: the gap between consecutive transaction timestamps during the peak, compared against the same window on a slow day, tells you whether the line got longer. When morning transactions fall and inter-transaction gaps at 7:30am have widened, the store is losing people who arrived, looked at the queue and left. That is a labour scheduling fix, and it is cheap relative to anything involving price.
Setting the thresholds
A tracker that fires on every wobble gets ignored within a month. Set the review trigger on the combination rather than on any single series: a daypart warrants investigation when transactions and occasion coverage move in the same direction across two consecutive periods. Single-period moves in a single series are usually noise, particularly at a single site where a daypart may carry only a few hundred transactions a week.
The competitive-opening checklist
When a QSR does open nearby, the reflex is to measure the damage immediately. Wait a full period first, because the opening itself distorts the read: a new competitor draws trial traffic that does not persist, so week-one damage overstates the durable effect, sometimes by a wide margin.
What to record in the meantime is the baseline, in the four series above, for the eight weeks before the opening. That is the counterfactual, and it is available only before the event. Operators who start measuring after the opening spend the following year arguing about what normal used to be.
Why the afternoon is the better fight
One closing observation from the occasion table. Morning is contested by well-capitalised specialists who have optimised that daypart for decades. Afternoon is contested mainly by the shopper deciding to buy nothing at all.
Winning share from a determined competitor is expensive. Winning it from indifference is a merchandising problem, and it is usually the cheaper point of attack for an operator with a limited budget. Operators consistently spend their attention on the daypart where the competition is most visible rather than the one where the return is highest.
What not to measure
Resist building a competitor-tracking spreadsheet from their menu prices. It feels like intelligence and it is not: a QSR's posted price tells you nothing about their promotional mix, their app offers or their traffic, and the effort is better spent on the four series above, which describe the only side of the contest you can actually change.
Doing this in Scout
The traffic-versus-basket split and the occasion-coverage count are both recurring measurements, not one-off analyses, and they are only useful if they run every period on consistent definitions. That is what Scout does with the data you connect: it keeps the feed current and turns those splits into saved views that update as new data lands.
The honest boundary: Scout has no visibility into a competitor's business, and nothing in retail data does. It measures your side of the contest, which is sufficient for every diagnosis on this page, because all four steps read your own transactions. Where it helps most is preventing the wrong conclusion, because the difference between a visit loss and an attachment loss is invisible in a revenue chart and obvious in the split.
Summary and further reading
- Read the business as occasions rather than categories, because the shopper and the QSR both compete at the occasion level.
- Split every revenue change into transactions and average basket. The four combinations have four different causes and four different responses.
- Estimate occasion coverage from your own visits: beverage-only shoppers are eating elsewhere and are standing in your store while doing it.
- Rank responses by what a thin-margin competitor cannot copy. Everyday price is the easiest for them to match and belongs last.
- Eliminate store-count, calendar and coverage explanations before attributing a decline to competition.
Further reading: how quick-service restaurants make money for the competitor's constraints, and retail KPI dashboard for building the measurement frame.