competitive-moat-analysis
When to use
- A strategist needs a competitor map for a market / segment — not a feature-comparison sheet, but a where-they-are-strong / where-we-are-strong / where-no-one-is read.
- A board pack or fundraise narrative claims a moat; the question is which moat, how durable, and what would erode it.
- A market-entry decision needs white-space identification — where can we win cleanly because incumbents structurally can't follow?
Do NOT use for narrative / messaging surface (route to Wing-3 positioning-strategy for the outward-facing pitch; this skill produces the internal cognition that pitch rests on), per-package adoption comparisons (route to competitive-positioning (Wing-1 package-peer comparison)), or build-vs-buy decisions (route to build-buy-partner (P1)).
Cognition cluster
- Mental model 18 — Where to play, where not to play. A moat is read as much from what we refuse to do as from what we do. Trying to win everywhere = winning nowhere. See
mental-models.md § 18.
- Mental model 28 — Inversion. "What would force a customer to leave us for an incumbent?" The inversion answer surfaces the load-bearing moat assumption. If the answer is "nothing", the moat is wishful; if the answer is concrete, that's the real fragility. See
mental-models.md § 28.
- Mental model 21 — Second-order thinking. Moats compound or decay; "feature parity today" says nothing about "feature parity in 18 months". Read each moat by its compounding rate, not its current state. See
mental-models.md § 21.
- Context-spine — customer-segment + product + org-stage. Read customer-segment for which incumbent matters in which segment (the enterprise incumbent is rarely the SMB incumbent). Read product for which moats are real vs roadmap. Read org-stage for moat realism (pre-revenue moats are claims; growth-stage moats are evidence).
Procedure
Step 0: Frame the competitive set honestly
Most "competitor lists" are too broad. For each candidate competitor, ask:
- Do they sell to our customer-segment slot, or an adjacent one? Different segments = different competitive set.
- Do customers actually evaluate them against us, or are they a "we sometimes get compared" mention? Evaluation-set ≠ market-set.
- Are they direct (same outcome) or indirect (different outcome, same budget line)? Both matter; tag which.
Output: the evaluated-against set, the adjacent set, and the indirect-budget-competitor set — three distinct lists.
Step 1: Map the moat dimensions
Pick 4–7 dimensions where moats actually live — not feature checklists. Canonical dimensions:
- Data network effect — does data accumulated by each customer compound across all customers?
- Two-sided network effect — does each new participant make the product more valuable to existing participants?
- Switching cost — does integration depth, data lock-in, or workflow embeddedness raise the exit cost?
- Distribution lock-in — do we own a channel competitors can't replicate (community, partner ecosystem, OEM)?
- Cost-structure advantage — is our unit-economics floor structurally lower than competitors' (route to
unit-economics-modeling (O1) for the read)?
- Domain capability — proprietary algorithm, regulatory licence, certification stack, or proprietary dataset.
- Brand / trust — only legitimate in regulated / high-stakes segments where trust is the gating factor.
Don't list dimensions where no one has a moat; those are commodities.
Step 2: Score each competitor on each dimension
For each (competitor × dimension) cell:
- Their position —
strong / moderate / weak / not-applicable.
- Our position — same scale.
- Evidence — file, doc, customer quote, public artifact. Cells without evidence = unknown, not parity.
The output is a matrix. Cells without evidence are surfaced, not silently called ties.
Step 3: Inspect the inversion — what would erode each moat we claim?
For each dimension where we score strong:
- What's the technical / business mechanism that holds it?
- What competitor move would erode it in 18 months? (new pricing model, new vertical entry, new tech wave, regulatory shift)
- What evidence would tell us it's eroding? (leading signal, not lagging revenue)
A moat without a named erosion path is unfalsifiable — flag as "claimed-moat, unstressed".
Step 4: Identify the white-space
White-space = (segment × need) cells where no one currently has a strong position. For each:
- Why is no one there? (capability gap, distribution gap, no incumbent has it as a focal job, regulatory complexity)
- Is the gap durable or just slow-to-fill? (durable = structural barrier; slow = first-mover gets a 12-month window then incumbents follow)
- Does our context-spine slot (org-stage, product, segment) let us address it?
White-space ≠ TAM; it's where we can plant a flag and defend it.
Step 5: Validate the moat read before emitting
Before producing the artifact, verify three things:
- Evidence coverage — confirm every
strong cell cites concrete evidence; uncited strong cells are demoted to claimed and must be re-run.
- Inversion mitigation — assert that every claimed moat has a named erosion path and at least one leading signal to monitor; un-stressed moats are unfalsifiable and must be flagged.
- White-space ≠ wishlist — check that each white-space cell has a named structural reason no one is there; un-named white-space is wishful and must be demoted.
All three must pass. If any fails, return to the failing step.
Step 6: Emit the moat read
Produce the moat-and-white-space artifact. P3 feeds P2 (market-entry-analysis) for beachhead defensibility, P4 (vision-articulation) for "why us" framing, and Wing-3 positioning-strategy for the outward-facing narrative.
Related Skills
WHEN to use this
- Internal moat reading for board, fundraise, strategy off-site.
- Beachhead defensibility check before market entry.
- White-space identification for product / segment expansion.
WHEN NOT to use this
- Outward-facing positioning narrative — route to Wing-3
positioning-strategy; P3 produces the internal read, positioning-strategy produces the external pitch.
- Package-vs-peer adoption comparison — route to
competitive-positioning (Wing-1 meta).
- Build-vs-buy on a capability gap — route to
build-buy-partner (P1).
- Market-entry sequencing — route to
market-entry-analysis (P2); P2 composes this skill for beachhead defensibility.
- Vision narrative — route to
vision-articulation (P4); P4 composes this skill for the "why us" frame.
When the agent should load this
- "Who are we actually competing with?"
- "What's our moat?"
- "Where's the white-space?"
- "What would force a customer to leave us?"
- "Wo gewinnen wir wirklich?"
Output
competitive-set.md — evaluated-against / adjacent / indirect-budget lists, each named with one-sentence rationale.
moat-matrix.md — competitor × dimension grid; evidence-cited cells; unknowns surfaced.
moat-stress-test.md — for each claimed moat: erosion path, leading signals, falsifiability flag.
white-space-map.md — (segment × need) cells no one owns; durability tag; addressability check against context-spine.
Gotcha
- "Brand" as a moat is rarely real outside regulated / high-trust segments. Be skeptical.
- "Feature parity" today is not a moat read; it's a snapshot. Read the compounding rate.
- White-space without a named structural reason no one is there = wishlist. Push back hard on un-named white-space.
- The competitive set is usually too broad. Most "competitors" don't show up in customer evaluation sets.
Do NOT
- Do NOT treat feature lists as moat dimensions; moats live in compounding / lock-in / structural-cost dimensions.
- Do NOT call cells parity when there's no evidence — surface as unknown.
- Do NOT claim a moat without a named erosion path and leading signals.
Runnable example
Series-B vertical SaaS in healthcare scheduling.
- Step 0 — Evaluated-against: 2 vertical incumbents + 1 horizontal scheduling tool. Adjacent: 3 general-purpose calendar SaaS (different segment). Indirect: in-house clinic-management software custom builds.
- Step 1 — Dimensions: switching cost (workflow embeddedness), domain capability (HIPAA + state-licensure handling), distribution lock-in (EHR-integration partnerships), cost-structure, data network effect.
- Step 2 — Matrix scored with evidence: we score strong on domain capability (HIPAA certs + 50-state licensure rules) and switching cost (24-month deployment investment); incumbent A strong on distribution (5 EHR integrations); horizontal tool weak across all healthcare dimensions.
- Step 3 — Erosion path for switching-cost moat: "incumbent A ships migration-tooling that cuts switch cost by 70 %." Leading signal: incumbent A hiring senior eng for "migration platform."
- Step 4 — White-space: mid-size dental specialty groups (50–200 providers); incumbents focus on hospitals (too small) or solo practitioners (margin too thin). Structural reason: regulatory complexity per state × dental-specialty workflows mean horizontal tools don't customize enough; hospital-focused incumbents won't down-segment.
- Step 5 — Validate: every strong cell evidence-cited; switching-cost moat has erosion path + leading signal; white-space has structural reason. Pass.
- Step 6 — Emit moat-and-white-space artifact; P2 composes it for the dental-specialty beachhead defensibility read.
1---2name: competitive-moat-analysis3description: Use when mapping competitors, naming defensibility, and finding white-space — moat reasoning, where-to-play, where-not-to-play. Triggers on 'who are we competing with', 'what's our moat'.4---56# competitive-moat-analysis78## When to use910- A strategist needs a competitor map for a market / segment — not a feature-comparison sheet, but a *where-they-are-strong / where-we-are-strong / where-no-one-is* read.11- A board pack or fundraise narrative claims a moat; the question is *which moat*, *how durable*, and *what would erode it*.12- A market-entry decision needs white-space identification — where can we win cleanly because incumbents structurally can't follow?1314Do NOT use for narrative / messaging surface (route to Wing-3 `positioning-strategy` for the outward-facing pitch; this skill produces the internal cognition that pitch rests on), per-package adoption comparisons (route to `competitive-positioning` (Wing-1 package-peer comparison)), or build-vs-buy decisions (route to `build-buy-partner` (P1)).1516## Cognition cluster1718- **Mental model 18 — Where to play, where not to play.** A moat is read as much from *what we refuse to do* as from what we do. Trying to win everywhere = winning nowhere. See [`mental-models.md`](../../../docs/contracts/mental-models.md) § 18.19- **Mental model 28 — Inversion.** *"What would force a customer to leave us for an incumbent?"* The inversion answer surfaces the load-bearing moat assumption. If the answer is *"nothing"*, the moat is wishful; if the answer is concrete, that's the real fragility. See `mental-models.md` § 28.20- **Mental model 21 — Second-order thinking.** Moats compound or decay; *"feature parity today"* says nothing about *"feature parity in 18 months"*. Read each moat by its compounding rate, not its current state. See `mental-models.md` § 21.21- **Context-spine — customer-segment + product + org-stage.** Read **customer-segment** for which incumbent matters in which segment (the enterprise incumbent is rarely the SMB incumbent). Read **product** for which moats are real vs roadmap. Read **org-stage** for moat realism (pre-revenue moats are claims; growth-stage moats are evidence).2223## Procedure2425### Step 0: Frame the competitive set honestly2627Most "competitor lists" are too broad. For each candidate competitor, ask:28291. *Do they sell to our customer-segment slot, or an adjacent one?* Different segments = different competitive set.302. *Do customers actually evaluate them against us, or are they a "we sometimes get compared" mention?* Evaluation-set ≠ market-set.313. *Are they direct (same outcome) or indirect (different outcome, same budget line)?* Both matter; tag which.3233Output: the *evaluated-against* set, the *adjacent* set, and the *indirect-budget-competitor* set — three distinct lists.3435### Step 1: Map the moat dimensions3637Pick 4–7 dimensions where moats actually live — not feature checklists. Canonical dimensions:38391. **Data network effect** — does data accumulated by each customer compound across all customers?402. **Two-sided network effect** — does each new participant make the product more valuable to existing participants?413. **Switching cost** — does integration depth, data lock-in, or workflow embeddedness raise the exit cost?424. **Distribution lock-in** — do we own a channel competitors can't replicate (community, partner ecosystem, OEM)?435. **Cost-structure advantage** — is our unit-economics floor structurally lower than competitors' (route to `unit-economics-modeling` (O1) for the read)?446. **Domain capability** — proprietary algorithm, regulatory licence, certification stack, or proprietary dataset.457. **Brand / trust** — only legitimate in regulated / high-stakes segments where trust is the gating factor.4647Don't list dimensions where no one has a moat; those are commodities.4849### Step 2: Score each competitor on each dimension5051For each (competitor × dimension) cell:52531. **Their position** — `strong / moderate / weak / not-applicable`.542. **Our position** — same scale.553. **Evidence** — file, doc, customer quote, public artifact. Cells without evidence = *unknown*, not parity.5657The output is a matrix. Cells without evidence are surfaced, not silently called ties.5859### Step 3: Inspect the inversion — what would erode each moat we claim?6061For each dimension where we score `strong`:62631. *What's the technical / business mechanism that holds it?*642. *What competitor move would erode it in 18 months?* (new pricing model, new vertical entry, new tech wave, regulatory shift)653. *What evidence would tell us it's eroding?* (leading signal, not lagging revenue)6667A moat without a named erosion path is unfalsifiable — flag as "claimed-moat, unstressed".6869### Step 4: Identify the white-space7071White-space = (segment × need) cells where no one currently has a strong position. For each:72731. *Why is no one there?* (capability gap, distribution gap, no incumbent has it as a focal job, regulatory complexity)742. *Is the gap durable or just slow-to-fill?* (durable = structural barrier; slow = first-mover gets a 12-month window then incumbents follow)753. *Does our context-spine slot (org-stage, product, segment) let us address it?*7677White-space ≠ TAM; it's where we can plant a flag and defend it.7879### Step 5: Validate the moat read before emitting8081Before producing the artifact, verify three things:82831. **Evidence coverage** — confirm every `strong` cell cites concrete evidence; uncited `strong` cells are demoted to *claimed* and must be re-run.842. **Inversion mitigation** — assert that every claimed moat has a named erosion path and at least one leading signal to monitor; un-stressed moats are unfalsifiable and must be flagged.853. **White-space ≠ wishlist** — check that each white-space cell has a named structural reason no one is there; un-named white-space is wishful and must be demoted.8687All three must pass. If any fails, return to the failing step.8889### Step 6: Emit the moat read9091Produce the moat-and-white-space artifact. P3 feeds P2 (`market-entry-analysis`) for beachhead defensibility, P4 (`vision-articulation`) for "why us" framing, and Wing-3 `positioning-strategy` for the outward-facing narrative.9293## Related Skills9495**WHEN to use this**9697- Internal moat reading for board, fundraise, strategy off-site.98- Beachhead defensibility check before market entry.99- White-space identification for product / segment expansion.100101**WHEN NOT to use this**102103- Outward-facing positioning narrative — route to Wing-3 [`positioning-strategy`](../positioning-strategy/SKILL.md); P3 produces the internal read, positioning-strategy produces the external pitch.104- Package-vs-peer adoption comparison — route to [`competitive-positioning`](../competitive-positioning/SKILL.md) (Wing-1 meta).105- Build-vs-buy on a capability gap — route to [`build-buy-partner`](../build-buy-partner/SKILL.md) (P1).106- Market-entry sequencing — route to [`market-entry-analysis`](../market-entry-analysis/SKILL.md) (P2); P2 composes this skill for beachhead defensibility.107- Vision narrative — route to [`vision-articulation`](../vision-articulation/SKILL.md) (P4); P4 composes this skill for the "why us" frame.108109## When the agent should load this110111- "Who are we actually competing with?"112- "What's our moat?"113- "Where's the white-space?"114- "What would force a customer to leave us?"115- "Wo gewinnen wir wirklich?"116117## Output1181191. **`competitive-set.md`** — evaluated-against / adjacent / indirect-budget lists, each named with one-sentence rationale.1202. **`moat-matrix.md`** — competitor × dimension grid; evidence-cited cells; unknowns surfaced.1213. **`moat-stress-test.md`** — for each claimed moat: erosion path, leading signals, falsifiability flag.1224. **`white-space-map.md`** — (segment × need) cells no one owns; durability tag; addressability check against context-spine.123124## Gotcha125126- "Brand" as a moat is rarely real outside regulated / high-trust segments. Be skeptical.127- "Feature parity" today is not a moat read; it's a snapshot. Read the compounding rate.128- White-space without a named structural reason no one is there = wishlist. Push back hard on un-named white-space.129- The competitive set is usually too broad. Most "competitors" don't show up in customer evaluation sets.130131## Do NOT132133- Do NOT treat feature lists as moat dimensions; moats live in compounding / lock-in / structural-cost dimensions.134- Do NOT call cells parity when there's no evidence — surface as unknown.135- Do NOT claim a moat without a named erosion path and leading signals.136137## Runnable example138139Series-B vertical SaaS in healthcare scheduling.140141- Step 0 — Evaluated-against: 2 vertical incumbents + 1 horizontal scheduling tool. Adjacent: 3 general-purpose calendar SaaS (different segment). Indirect: in-house clinic-management software custom builds.142- Step 1 — Dimensions: switching cost (workflow embeddedness), domain capability (HIPAA + state-licensure handling), distribution lock-in (EHR-integration partnerships), cost-structure, data network effect.143- Step 2 — Matrix scored with evidence: we score strong on domain capability (HIPAA certs + 50-state licensure rules) and switching cost (24-month deployment investment); incumbent A strong on distribution (5 EHR integrations); horizontal tool weak across all healthcare dimensions.144- Step 3 — Erosion path for switching-cost moat: "incumbent A ships migration-tooling that cuts switch cost by 70 %." Leading signal: incumbent A hiring senior eng for "migration platform."145- Step 4 — White-space: mid-size dental specialty groups (50–200 providers); incumbents focus on hospitals (too small) or solo practitioners (margin too thin). Structural reason: regulatory complexity per state × dental-specialty workflows mean horizontal tools don't customize enough; hospital-focused incumbents won't down-segment.146- Step 5 — Validate: every strong cell evidence-cited; switching-cost moat has erosion path + leading signal; white-space has structural reason. Pass.147- Step 6 — Emit moat-and-white-space artifact; P2 composes it for the dental-specialty beachhead defensibility read.