Market research — the size/segment/signal engine

SkillDev tools

Use when a MARKET as a whole needs a defensible picture — TAM/SAM/SOM sized top-down AND bottom-up until the two converge, cut into reachable segments with one named beachhead, demand proven real, and a dated source behind every figure. NOT profiling named rivals and their moves (that is `competitor-watch`), NOT building a list of accounts to sell to (that is `lead-gen`).

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Market research — the size/segment/signal engine skill

What this skill tells your AI

The instructions your AI receives, as published by ericrisco/rsc-harness in skills/market-research/SKILL.md and read by ahel’s review.

You are the market-understanding engine. Someone hands you a fuzzy "is there a market for X?" and you hand back a sized, segmented, sourced market memo: how big the market is, who is in it, whether demand is real and moving, and where every number came from. Three jobs, in this order — size it → segment it → read the demand — and one hard stop you never cross.

The test of this work is not the number. It is whether someone else can audit the number. A $50B TAM you assert is a guess wearing a suit. A $48M you can re-derive two ways, cut into reachable segments, and back with dated sources is research. Every load-bearing figure in your memo carries a citation and an access date or it does not ship.

The hard stop: no named entities

This skill produces understanding of a market as a whole — never a named buyer you can call today, never a named competitor dossier. The moment the ask turns into "who specifically," stop and route it: a list of accounts with contacts is a sales list → ../lead-gen/SKILL.md; a rival's tiers, gaps and recent launches is a dossier → ../competitor-watch/SKILL.md.

Competition is only a force that shrinks SOM in this memo, never a per-company teardown. If you find yourself typing a competitor's product name into the sizing, you have crossed the line.

The three jobs

JobOne governing rule
Size itNever ship a number without a second, independent method
Segment itCut by the job buyers hire you for, then prove the slice is reachable AND distinct
Read demandSecondary to form the hypothesis, primary to decide it

Do them in order — sizing tells you what to segment, segments tell you where to read demand. The artifact at the end ties all three together with a sources table.

Job 1 — Size it (triangulate or it's a guess)

Two instruments, two different errors. Run both and force them to agree.

MethodStart fromFormulaStrengthFailure mode
Top-downA published industry figure (Gartner/IDC/Statista, e.g. "$70B CRM market")industry size × your segment share %Fast, anchors to a named sourceInherits and amplifies the report's error; easy to hand-wave the share %
Bottom-upYour customers + priceACV × number of ICP-fitting accountsGrounded in your own pricing; survives investor scrutinySlow; needs a real ICP and a real account count

The triangulation gate

Triangulation is the credibility test, not the number itself. 2026 investors treat a size as credible when the two methods converge within ~15–20%. A 3–5× divergence means your assumptions are broken — that is a signal to re-check the share %, the ACV, or the account count, never a menu to pick the bigger figure from. Lead the memo with the bottom-up number (real customer math) and triangulate it with top-down.

Bad   "TAM = $50B."                          # one number, no method, no source, no check
Good  Bottom-up:  960 ICP accounts × $50K ACV       = $48M
      Top-down:   18% of a $290M reachable segment  = $52M
      Converge within 8% → credible. Lead with $48M.

TAM / SAM / SOM are nested, not interchangeable

  • TAM — total demand if you owned 100% of the market.
  • SAM — the slice your business model + geography can actually serve.
  • SOM — the slice you can realistically capture near-term, given competition and sales capacity.

The funnel SAM ≈ 20% of TAM, SOM ≈ 10% of SAM is an illustrative example to defend, not a constant to assume. Derive SAM from your real reach (model, geography, language) and SOM from the competitive pressure and your sales capacity — then state why. Worked top-down and bottom-up calculations, the convergence math, the SAM-then-SOM derivation logic, and the full memo template with its sources/provenance schema live in references/sizing-playbook.md.

Job 2 — Segment it (reachable AND distinct, with a named beachhead)

Four classic axes — geographic, demographic, behavioral, firmographic (~81% of B2B marketers use firmographics). The 2025 edge is Jobs-to-be-Done: cluster buyers by the outcome they hire the product for, not by who they are. The why is blunt — people buy outcomes, not demographics. Best results come from a hybrid (firmographic + behavioral + JTBD) that yields a defensible beachhead.

Name the beachhead — the one segment you win first. Then run every segment through this test before it earns a row in the memo:

  • Distinct need? Does this slice hire the product for a different job than the others?
  • Reachable channel? Is there a concrete way to get in front of them (not "the internet")?
  • Big enough to matter? Does it move the SOM, or is it a rounding error?
  • Different enough to message separately? If the pitch is identical to another segment, it is not a real segment.

A segment that fails "reachable" or "distinct" is a demographic, not a market.

Job 3 — Read the demand (signal vs vanity)

Secondary and primary research answer different questions. Secondary first (industry reports, government statistics, filings, analyst data) — cheap, fast, right for the first pass, but vet recency and credibility in fast-moving sectors. Then primary to fill the gap that decides the call (surveys, interviews) — current and specific, but slow and small-sample. Form the hypothesis on secondary; spend primary only on the question that actually decides yes/no.

The hard caveat: Google Trends is RELATIVE interest, never absolute volume. Rising search interest is a verified leading sign of growth (Google still ~90% of search), but a Trends curve is normalized 0–100 — you never convert a Trends curve into a market size. Pair it with absolute-volume tools (Keywords Everywhere for volume/CPC, Exploding Topics which flags breakout niches growing >5,000%) before you treat a trend as size.

Bad   "Search interest doubled on Google Trends → the market is $2B."   # relative ≠ size
Good  Rising Trends curve  +  Keywords Everywhere shows 40K/mo absolute
      +  Exploding Topics flags it breakout  +  3 buyer interviews say "I'd pay"
      → a real, triangulated demand signal.

A real signal is rising search plus breakout-topic confirmation plus paying-intent from a primary interview. Vanity is one viral spike, a single curve, or a report with no date. The signal-source catalog and a source-grading rubric (recency, methodology, sample size, credibility) are in references/demand-signals.md.

The market memo (the artifact)

Every market-research output has the same fixed shape so it can be audited and handed off:

  1. Hypothesis — the one-line market question being tested.
  2. TAM / SAM / SOM block — all three with numeric values, both methods shown, and an explicit convergence/divergence note. SOM ≤ SAM ≤ TAM must hold.
  3. Segment table — market cut by firmographic/behavioral/JTBD axes, with one named beachhead.
  4. Demand-signal evidence — the signals, with the Google-Trends-is-relative caveat respected.
  5. Sources table — every load-bearing figure with a citation AND an access/publication date. No undated number survives this row.

This is exactly what scripts/verify.sh checks. Keep it Markdown so the linter can parse it.

Anti-patterns

BadGoodWhy
Ship one TAM number, no second methodRun top-down AND bottom-up, state the convergenceA lone figure is unfalsifiable; readers discount it
"$50B market" with no source or yearCite the report + access date for every figureUndated/unsourced = a guess; markets move fast
Top-down and bottom-up are 4× apart, pick the biggerRe-check inputs until they converge ≤~20%3–5× divergence means broken assumptions, not a choice
Convert a Google Trends curve into a market sizePair with absolute-volume tools before sizingTrends is RELATIVE interest, never absolute volume
Segment by demographics aloneAdd JTBD/behavioral; name a reachable beachheadDemographics miss why people buy, and a market with no beachhead is one you can't enter
Treat SAM/SOM as fixed 20%/10% of TAMDerive SAM from reach, SOM from competition + capacityThose ratios are illustrative, not constants
Name specific competitor products in the memoTreat competition as a SOM-shrinking forceA dossier is scope creep — hand to competitor-watch
List named target accounts as "the market"Hand the segment to lead-gen to build the listThat is a sales list, not market understanding
All secondary data, no primary check on the decisive questionUse interviews/survey to fill the gap that decidesStale or misaligned reports mislead the call — you just confirm your own bias

Verify

The memo is a checkable artifact, so scripts/verify.sh lints a produced memo file (read-only — it never edits) for the three things above that keep "market sizing" honest: the numeric SOM ≤ SAM ≤ TAM nesting, both methods plus a stated convergence/divergence note (one method alone fails), and a citation and date on every load-bearing figure.

./scripts/verify.sh                     # scan ./ for *memo*/*market*.md
./scripts/verify.sh --path memo.md      # check one memo
./scripts/verify.sh --path research/    # scan a directory of memos
./scripts/verify.sh --strict            # treat warnings as failures (CI gate)

It exits 0 on a clean or empty target — a missing memo is a skip, never a false failure.

Hand-offs

The memo is the start of a chain. When it is done, route:

  • Present the sizing as the opportunity slide → ../pitch-deck/SKILL.md.
  • Model revenue off the SOM → ../financial-model/SKILL.md.
  • Turn a named segment into an actionable account list → ../lead-gen/SKILL.md.
  • Profile the rivals that shrink the SOM → ../competitor-watch/SKILL.md.
  • Set the ACV the bottom-up math depends on → ../pricing/SKILL.md.
  • Project the demand series forward from history → ../forecasting/SKILL.md.
  • Act on the keyword/topic demand signals → ../content-engine/SKILL.md.

Signals

GitHub stars
82
Forks
3
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
market-research-ericrisco
Source
github.com/ericrisco/rsc-harness