codel
← Back to the index

MKT-05 · SEC. 08 Market Research

Competitor Positioning Matrix, One Rival at a Time

Feed competitor pages in one at a time and build a running positioning matrix that ends in a whitespace claim.

FORMAT
loop
DIFFICULTY
intermediate
TIME
25 min
TOOLS
universal
MODELS
any
COPIES
0 so far

When to use this

You're positioning a new product against 4-8 competitors and keep losing track of who claims what. You want one matrix built from their actual public copy, not from your memory of their homepages.

The pattern

Pastes as plain text
Act as a competitive positioning analyst. I'm going to paste competitor
material one competitor at a time: homepage copy, pricing page text,
tagline, whatever I can grab. You maintain ONE running positioning matrix
across all rounds. It gets sharper each round, not longer.

My first competitor's material is below the line at the end of this message.

Each round, do the following:

1. From the pasted material only, extract for this competitor:
   - CLAIMED AUDIENCE: who their copy says they're for, quoted where possible
   - CLAIMED WEDGE: the one thing they lead with (speed, price, compliance,
     integrations, "all-in-one"). Take it from headline and first section,
     not buried feature lists.
   - VALUE METRIC: how they charge (per seat, usage, flat), if the material
     shows it. If it doesn't, write "not shown," don't guess.
   - PROOF STYLE: what they use to back the claim (logos, numbers, reviews,
     nothing)

2. Add a row to the matrix and reprint the FULL matrix, all competitors so
   far, so I always see the whole board.

3. CROWDING CHECK: after each row, say which wedge is getting crowded (2+
   competitors leading with the same claim) and which claimed audiences
   overlap.

4. Quote only text that is actually in what I pasted. If a cell can't be
   filled from the material, mark it "not shown" instead of inferring from
   what you remember about this company. Your memory of their marketing may
   be stale, the pasted copy is the source of truth.

After each round I'll paste the next competitor. When I say "map it":

5. Output the final matrix, then name the whitespace: audience/wedge
   combinations no one in the matrix claims. For each, say whether it's
   empty because it's genuinely open or because it's probably a bad
   business, don't treat every gap as an opportunity.

6. End with the single positioning line you'd test for my product and which
   competitor's customers it would pull from first. My product is described
   on the labeled line below.

My product (one line, what it is and for whom):
Paste the first competitor's homepage/pricing copy below this line:

Real example output

Product: error-tracking tool for mobile-first startups

ROUND 4 (after pasting Sentry, Bugsnag, Crashlytics, Rollbar copy)

| Competitor  | Claimed audience        | Claimed wedge            | Value metric | Proof style        |
|-------------|-------------------------|--------------------------|--------------|--------------------|
| Sentry      | "every developer"       | breadth, "code breaks... | per event    | logos + OSS badge  |
| Bugsnag     | "engineering teams"     | stability scores/SLAs    | per event    | customer numbers   |
| Crashlytics | mobile app developers   | free, Firebase-native    | free         | Google brand       |
| Rollbar     | "developers"            | AI-assisted grouping     | per event    | logos              |

CROWDING CHECK: "for developers, per-event pricing" is claimed by 3 of 4.
Mobile-specific is claimed only by Crashlytics, and only as a free bundled
feature, not a paid standalone.

[user says "map it"]

WHITESPACE: paid, mobile-first, per-app flat pricing is unclaimed. Likely
genuinely open rather than a dead zone: Crashlytics proves mobile demand
exists but its free tier caps how seriously Google serves power users
(no custom retention, weak alerting per the pasted copy).

POSITIONING LINE TO TEST: "Error tracking built for mobile release cycles,
flat price per app, not per crash." Pulls first from Crashlytics users who
outgrew free, not from Sentry loyalists.

Why it works

Feeding one competitor per round keeps each extraction grounded in that competitor's actual copy instead of the model's stale memory of a category. Reprinting the full matrix every round means crowding and whitespace emerge from accumulated evidence, and the "map it" gate stops the model from calling whitespace before the board is full.

Entry MKT-05 · by codel · 2026-07-09 · CC-BY-4.0