Book a consult

Loading scheduler…

SPINS metrics decision tree: velocity, share, TDP

Why this SPINS metrics decision tree matters

A category lead fires off three questions in the same Slack thread, back to back:

  1. "How is our brand performing at Sprouts?"
  2. "Are we under-indexed on shelf in our key stores?"
  3. "What's our distribution growing fastest in?"

Three questions, three different metrics. The first one wants velocity, dollars or units per store per week. The second wants share of shelf paired with an over/under-index. The third wants ACV change, or TDP change if assortment is part of the story.

Almost all the analyst confusion in this space traces back to one thing: picking the wrong metric for the question, then defending the wrong number when someone pushes back in a meeting. So this page is the decision tree that keeps that from happening.

Velocity, ACV, TDP, and share of shelf: one sentence each

Velocity is sales per carrying store per week. It measures the quality of your distribution, not how wide it spreads. ACV is the percentage of all-commodity volume (every store's total sales) at carrying stores, so it measures breadth, but breadth weighted by how much each store matters. TDP is the sum of each SKU's %ACV — equivalently ACV times the ACV-weighted average SKUs per carrying store — which folds breadth and assortment depth into a single number. Share of shelf is your facings as a percentage of total category facings, a read on shelf-level competitive presence and a leading indicator of share of sales. One thing to know about share of shelf: that data lives in separate vendor systems from SPINS sales data, so it usually gets reconciled outside the syndicated surface entirely.

The decision tree

Question type 1: "Is the brand growing or shrinking?"

Sub-questionRight metric
Is total brand $ growing?$ sales (just look at the dollars)
Is the per-store performance improving?Velocity ($/store/week)
Is distribution expanding?ACV change
Is the brand getting more shelf real estate?TDP change (if SKU count is moving) or share of shelf change (if facings)
Is the brand growing because of more stores or more sales per store?Decompose $ growth = ACV change × velocity change

Question type 2: "How does the brand compare to peers?"

Sub-questionRight metric
Who has more total dollars in the category?$ share
Who is selling more per store?Velocity comparison
Who has wider distribution?ACV comparison (weighted) or store count (unweighted)
Who has more shelf real estate?Share of shelf
Who is converting shelf to sales most efficiently?Over/under-index = $ share ÷ share of shelf

Question type 3: "What should we do strategically?"

QuestionRight metric to investigate
Can we add more stores?ACV. If ACV is already 90%+, distribution growth is capped, so focus elsewhere.
Can we add SKUs to existing stores?TDP and SKUs/door. If SKUs/door is 1, headroom is real.
Can we earn more shelf at retailers we're already in?Share of shelf vs. share of sales (over-index argues for more shelf).
Can we improve velocity at the stores we're in?Velocity by store, segmented by store type, region, or banner.

A worked example

Here is a brand's set of changes from 2024-Q4 to 2025-Q1:

MetricQ4 2024Q1 2025Change
Total $$3.0M$3.3M+10%
ACV60%60%flat
Velocity ($/store/week)$145$160+10%
TDP120132+10%
Share of shelf12%12%flat

Walk the metrics one at a time and watch what the wrong one would have hidden. Dollars alone say "+10% growth." True, and useless for strategy. ACV says distribution is flat, no new doors, so door expansion is not what drove this. Velocity says +10%, same stores selling more, and that is the actual story. TDP also says +10%, and sitting next to flat ACV that can only mean SKU count per door went up, the brand added a SKU at the doors it already had. ACV did not move but TDP did. Share of shelf says flat, same shelf real estate as before.

Stitch it together and the growth story reads: "we added a SKU at our existing doors, it is selling, and that lifted per-door velocity 10% and TDP 10% with no change in ACV or shelf footprint." Anyone who defends the quarter with just the +10% headline has left the actual strategic point on the floor, which is that the brand has now shown assortment-depth upside and can walk into the next conversation arguing for more SKUs at existing doors with the data to back it.

Velocity benchmarks by channel and category

Velocity swings wildly from one category and channel to the next. Knowing the rough benchmark for your own category is what keeps you from calling a number strong when it is weak, or the reverse:

Category / channelTypical velocity range ($/store/week)Notes
Protein bars, Natural Channel$35–$120Category leaders (RXBar, Larabar) run $80–$140 at Sprouts
Supplements (capsule/powder), Natural Channel$20–$80High velocity at top-selling SKUs in standalone supplement sets
RTD beverages, Natural Channel$40–$150Wide range; energy/functional tend higher
Snack chips/crackers, Natural Channel$25–$90Staple-shelf categories; velocity driven by reorder frequency
Natural Channel overall (median brand)$30–$60Rough benchmark for a mid-tier performing brand

Treat these as rough ranges, nothing more. What you actually benchmark against is your category-specific velocity at a specific retailer, not a cross-category average. A $45 per store per week velocity in a supplement category means something completely different from the same $45 in a commodity snack category. Ask your SPINS rep for the category velocity distribution, not just where your brand's number lands.

Velocity as a pitch tool for new distribution

Velocity is the metric that wins new distribution at a retailer who does not carry the brand yet. The logic is simple from the buyer's side: they look at a new item and ask "if I authorize this SKU, what does it do per store per week?" They each carry a minimum velocity threshold, varying by category and chain, and below it they will not authorize.

The strongest new-distribution pitch puts two velocity numbers next to each other. First, current velocity at comparable retailers already carrying the brand, the proof-of-concept number: "we are doing $62 per store per week at Natural Grocers, which has a similar demographic profile to your core stores." Second, the category velocity benchmark for the segment, the framing number: "the plant-based protein bar segment averages $48 per store per week in the natural channel, and ours is running 29% above that." The first says the brand works, the second says it works relative to the shelf set the buyer actually manages.

What does not work is waving velocity from a wildly different retailer around as proof, the "we do $120 per store per week at Whole Foods so you should carry us at Kroger" move. Different demographics, different category sets, different price sensitivity. Velocity does not just transfer across channels, and a buyer who knows their store base will see through it.

Anti-patterns to watch for

A few habits that quietly produce wrong answers.

Reporting velocity with no ACV next to it. Velocity at high ACV is a strong story. Velocity at low ACV should make you nervous, because a small store base means high variance and a lot of panel sensitivity. A $180 per store per week velocity built on 6% ACV and 8 stores is not reliable, and you should never present it as if it were. Always show the sample, store count or ACV, alongside the velocity number.

Reporting an ACV change with no store count. ACV can move on panel composition or weighting changes alone (see Reading SPINS panel coverage), so always cross-check that the store count moved in the same direction before you call it distribution growth.

Reporting TDP without decomposing it. A 10% TDP gain can be ACV up 10%, which is door growth, or SKUs per door up 10%, which is assortment growth, or some blend of the two. Each one calls for a different commercial move, so the headline number alone is not enough.

Reporting share of shelf without share of sales. Share of shelf only means something as a ratio against share of sales. On its own it cannot tell you whether the brand is over-converting its shelf or under-converting it.

Comparing velocity across categories without normalizing. A $60 per store per week velocity reads very differently in a high-turn snack category than in a slow-turn supplement category. Strip out the category-typical context and a cross-category velocity comparison is just noise.

Diagnosing velocity by region and banner

Aggregate velocity buries nearly every interesting commercial question it touches. A national brand averaging $62 per store per week might be running $95 in the Pacific Northwest and $38 in the Southeast. Same brand, same SKUs, two completely different stories underneath one number.

So the first cut on any velocity diagnostic is to break the aggregate apart, and there are three ways to do it.

By region first. A 2–3x velocity spread across regions is normal for natural-channel brands, and wellness and functional categories skew hard toward West Coast and Northeast metro markets, so the regional aggregate is the operating reality, not the national average. If your category leader runs $80 per store per week nationally but $135 in California, that 1.7x regional skew is the shape your benchmarking should follow too.

By banner next. Inside a chain like Sprouts or Whole Foods, velocity moves with the store cluster, urban versus suburban, format size, median household income in the trade area. For Kroger specifically, see the Kroger banner vs. total page, because the banner-level decomposition for Kroger needs a data source outside standard SPINS.

And by new versus mature stores. Stores that picked up the brand in the last 12 weeks typically run 30–50% below mature-store velocity for the first six months while shoppers find the new placement. So if you are expanding distribution fast, the velocity trend can look like a decline even when every cohort is on plan. The fix is to age the cohorts, put week-since-launch on the x-axis, instead of staring at a week-over-week aggregate that mixes them all together.

When you take velocity to commercial leadership, lead with the regional or banner cut that is most actionable, not the national average. A "we are down 8% on velocity" headline that quietly buries a 24% gain in the Pacific Northwest and a 22% drop in the Mid-Atlantic is genuinely the worst of both worlds. It hides the win and the problem at the same time, and it makes the analyst look like a junior who has never run a real diagnostic.

Doing this in Scout

Scout's brand-performance views put velocity, ACV, and TDP side by side off the SPINS extracts, so the whole metric set is one read instead of four pivot tables you have to assemble. Share-of-shelf data is the exception: it comes off a separate vendor surface, audit, image-recognition, or planogram, and it is not integrated into Scout today, so the over/under-index calculation is still a manual reconciliation against the shelf-data export paired with the share-of-sales number from the dashboard. For velocity benchmarking, Scout's retailer-comparison view puts the brand's velocity against the category distribution at each retailer, which turns "how does our $62 per store per week rank in this category at this chain" into a glance rather than a sort.

Summary + further reading

Pick the metric that matches the question. Growth, peer comparison, and strategic action each call for a different one, and the most common mistake is reporting just one, usually dollar growth or ACV, while the strategic implication slips out the side. Always cross-check an ACV change against store count, and always decompose a TDP change into ACV versus SKUs per door. And for a new-distribution pitch, pair current-retailer velocity with a category benchmark, never with cross-channel velocity that will not transfer.

Related: What is TDP? · What is share of shelf?

Want this as a Google Sheet?

Drop your email and we'll send the worked example.

Book a demo with your data