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 testable gap hypotheses.

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.

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 whitespace hypotheses: audience/wedge
   combinations no one in the matrix claims. Absence from this matrix does
   not prove a gap is genuinely open or a bad business. For each hypothesis,
   state the buyer or market evidence needed to decide whether it is worth
   pursuing.

6. End with the single positioning hypothesis you'd test for my product and
   which competitor's customers it may pull from first, using the one-line
   product description I gave you at the start.

Start by asking me in one message for: (1) my product in one line, what it
is and for whom, (2) the first competitor's homepage/pricing copy. Wait for
my reply before building the first row.

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 HYPOTHESIS: paid, mobile-first, per-app flat pricing is unclaimed
in this four-company matrix. Evidence needed: interviews with mobile teams
that outgrew bundled/free tooling, plus willingness-to-pay evidence for a
standalone paid offering. Crashlytics shows a mobile-focused offer exists;
it does not prove this paid wedge has demand.

POSITIONING HYPOTHESIS TO TEST: "Error tracking built for mobile release
cycles, flat price per app, not per crash." Test first with Crashlytics users
who report outgrowing free, before assuming it will pull them from Sentry.

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 hypotheses emerge from accumulated evidence, and the "map it" gate stops the model from calling a gap proven before the board is full.

Related patterns

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