Purpose
Plot a brand's full SKU assortment and key competitors onto a shared positioning grid to reveal where demand exists without supply (whitespace), where the brand's own SKUs overlap and cannibalize, and which gaps are worth entering — delivering a ranked opportunity list a product strategist can take into a roadmap conversation.
When to Use
Invoke this skill when the user asks to:
- Find positioning gaps or whitespace in their category
- Decide where to launch a new SKU or line extension
- Diagnose whether two products are cannibalizing each other
- Audit a multi-SKU portfolio for overlap or coverage gaps
- Map their assortment against competitors across price and benefit
- Justify a new product to a roadmap or merchandising review
Inputs Required
Before starting, collect:
- Category: The product category and rough market scope (e.g., shelf-stable coffee, US grocery)
- Brand SKUs: List of the brand's current SKUs with price point, primary benefit/positioning, target occasion, and target shopper for each
- Key competitors: 3–8 competing products or lines with the same attributes where known (price, benefit, occasion, shopper)
- Positioning axes of interest: Which dimensions matter most — price tier, usage occasion, primary benefit, demographic, format, or channel (pick 2 primary)
- Strategic objective: Growth via new shoppers, premiumization, defending share, or filling distribution gaps
- Constraints: Anything off-limits — price floors, channels, formats, or positioning the brand won't pursue
If competitor attributes are partial, infer from the SKU name and category norms and flag each inference. If positioning axes aren't specified, default to price tier × primary benefit.
Instructions
Step 1: Normalize the Assortment
Build a single dataset where every brand SKU and every competitor is described on the same four attributes:
- Price tier: Value / Mainstream / Premium / Super-premium (assign bands appropriate to the category)
- Primary benefit: The one job the product is hired to do (convenience, indulgence, health, performance, etc.)
- Occasion: When/where it's used (morning routine, on-the-go, entertaining, daily staple)
- Target shopper: The core demographic or need-state buyer
Resolve inconsistencies in how the user described items so every entry is comparable. Flag any attribute you inferred rather than received.
Step 2: Build the Positioning Map
Plot all items on the two primary axes (default: price tier × primary benefit). Produce a grid table where each cell shows which brand SKUs and competitors occupy that intersection. Mark each cell as one of:
- Crowded: 3+ products competing (brand and/or competitor)
- Contested: brand and competitor both present, 1–2 each
- Brand-only: brand occupies, no competitor
- Competitor-only: competitor occupies, brand absent
- Empty: no products from either
Step 3: Identify Whitespace
For each Empty or Competitor-only cell, assess whether it is true whitespace or a dead zone:
- Real whitespace: a benefit/price/occasion combination with plausible demand the brand could credibly serve
- Dead zone: empty because no demand exists or the combination is incoherent (flag and exclude) For each real whitespace, write a one-line demand thesis: who wants this and why nobody's serving them well.
Step 4: Diagnose Cannibalization Risk
Scan all Crowded and Contested cells containing 2+ brand SKUs. For each overlap, classify:
- Direct cannibalization: same price tier, same benefit, same shopper — SKUs steal from each other with little incremental demand
- Acceptable adjacency: shared cell but differentiated on occasion, format, or sub-benefit — defensible coexistence
- Portfolio gap masked as overlap: SKUs appear to overlap but one is mispositioned and should move For each direct-cannibalization pair, recommend: consolidate, reposition one SKU, or differentiate via occasion/format.
Step 5: Rank Entry Opportunities
Score each real whitespace on three factors (High/Medium/Low each):
- Demand strength: how clearly an underserved need exists
- Brand permission: how credibly this brand can claim the space given equity
- Competitive defensibility: how hard for a competitor to follow once entered Rank whitespaces by combined strength, weighted toward the stated strategic objective. Produce a Top 5 ranked list, each with the demand thesis, recommended price/benefit/occasion positioning, and the closest competitor to displace or avoid.
Step 6: Coverage Summary & Recommendation
Summarize portfolio health: how many cells the brand covers vs. competitors, where it over-indexes (cannibalization), where it's exposed (competitor-only), and the single highest-conviction move. Be opinionated — name the one whitespace to pursue first.
Output Format
- Structure: Positioning grid table → whitespace list → cannibalization findings → ranked Top 5 opportunities → coverage summary
- Length: 1,000–1,400 words
- Format: Structured document with one positioning matrix table; opportunities and cannibalization findings as labeled structured bullets
- Sections: Assortment Map (table) → Whitespace Identified → Cannibalization Risk → Top 5 Entry Opportunities (ranked) → Portfolio Coverage Summary & Recommendation
- Tone: Product strategy lead — analytical, decisive, willing to recommend cutting or moving SKUs, not just adding
Quality Checklist
Before delivering output, verify:
- [ ] Every brand SKU and competitor appears in the positioning grid with all four attributes assigned
- [ ] Each grid cell is labeled (Crowded / Contested / Brand-only / Competitor-only / Empty)
- [ ] Every inferred attribute is explicitly flagged as an inference, not stated fact
- [ ] Each whitespace is classified as real opportunity or dead zone with a demand thesis
- [ ] Every direct-cannibalization pair carries a specific recommendation (consolidate / reposition / differentiate)
- [ ] Top 5 opportunities are ranked and scored on all three factors — not listed arbitrarily
Notes
- The most common finding in mature portfolios is too much overlap, not too little coverage — pressure-test whether a "new SKU" should actually be a repositioning of an existing one
- Competitor-only cells are often more actionable than fully empty cells: a rival has already proven demand exists
- Resist treating premiumization as automatic whitespace — brand permission constrains how far up-tier a brand can credibly stretch
- When SKU data is thin, the map is only as good as the attribute assignments; surface assumptions so the strategist can correct them before acting
How to use this skill
This file is a Claude Code skill in Anthropic's standard format — markdown with YAML frontmatter at the top.
Installing in Claude Code:
~/.claude/skills/<folder-name>/SKILL.md— auto-loads in every session anywhere on your machine (recommended for skills you'll use across multiple projects)<your-project>/.claude/skills/<folder-name>/SKILL.md— auto-loads only when working in that project (recommended for project-specific skills)
Restart Claude Code or open a new session to register.
Using in Claude.ai, ChatGPT, Gemini, or other AI tools:
- Drag this file into a new chat, or copy and paste its contents
- Send your task or request as your next message — the AI will apply the skill where it fits
For Claude Code skill details: https://docs.anthropic.com/en/docs/claude-code/skills