Market Sizing Analyst

Market research

by alirezarezvani · MIT license · ★ 26,349 on GitHub · v2.9.0 · updated Aug 30

Market research cover

Use when doing upstream market-research methodology — sizing a market as TAM/SAM/SOM computed BOTH top-down and bottoms-up (never a single unsourced number), planning a survey sample size with finite-population correction and…

---
name: market-research
description: Use when doing upstream market-research methodology — sizing a market as TAM/SAM/SOM computed BOTH top-down and bottoms-up (never a single unsourced number), planning a survey sample size with finite-population correction and per-segment minimums, or scoring candidate market segments against Kotler's measurable/substantial/accessible/differentiable/actionable criteria. Outputs always show the method and the assumptions. For market-research analysts and product-marketing at the sizing/survey/segmentation moment. Distinct from marketing-skill (campaign analytics, attribution, demand-gen) — this is the evidence-building methodology, not live-campaign optimization.
version: 2.9.0
author: claude-code-skills
license: MIT
tags: [research-ops, market-research, tam-sam-som, market-sizing, survey, sampling, segmentation, competitive-intelligence]
compatible_tools: [claude-code, codex-cli, cursor, antigravity, opencode, gemini-cli]
---

# market-research

Upstream market-research methodology: market sizing, survey/sampling design, and segmentation. The discipline here is **method + assumptions**: a TAM is never a single number, a survey is never powered only in aggregate, and a segment is never a demographic slice.

## Purpose

Market-research analysts, product marketers, and strategy teams need rigorous evidence *before* anyone optimizes a campaign or sets a strategy. This skill structures three methodology decisions:

Overview

Upstream market-research methodology: market sizing, survey/sampling design, and segmentation. The discipline here is method + assumptions: a TAM is never a single number, a survey is never powered only in aggregate, and a segment is never a demographic slice.

Manual install (npx, ZIP)
Claude Codenpx skills add alirezarezvani/claude-skills --skill market-research -g -a claude-code
Claude Code (degit)npx degit alirezarezvani/claude-skills/research-ops/skills/market-research#main ~/.claude/skills/market-research-2
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md10.0 KB
Read SKILL.md here
alirezarezvani/main1 file shown
SKILL.md
Show the full text147 lines

market-research

Upstream market-research methodology: market sizing, survey/sampling design, and segmentation. The discipline here is method + assumptions: a TAM is never a single number, a survey is never powered only in aggregate, and a segment is never a demographic slice.

Purpose

Market-research analysts, product marketers, and strategy teams need rigorous evidence before anyone optimizes a campaign or sets a strategy. This skill structures three methodology decisions:

Three deterministic tools:

  1. market_sizer.py — Computes TAM/SAM/SOM by both top-down and bottoms-up methods side-by-side, reports the divergence, and flags failed triangulation. Never returns a single number.
  2. sample_size_planner.py — Survey sample size from confidence, margin of error, and expected proportion, with the finite-population correction and per-segment minimums (a survey powered overall is not powered per reported segment).
  3. segmentation_scorer.py — Scores candidate segments against Kotler's five criteria and enforces a substantiality + accessibility gate; a slice that is too small or unreachable is dropped.

When to use

Invoke this skill when:

  • A board or exec asks "how big is this market?" and you need a defensible, triangulated answer.
  • You are fielding a survey and need a sample size that holds up per segment, not just overall.
  • You have a list of candidate segments and need to know which are real markets vs demographic slices.
  • You are synthesizing competitive intelligence and need a methodological backbone.

Do NOT use this skill to: measure a live campaign (attribution, ROAS, CPA → marketing-skill/campaign-analytics), build demand-gen / paid-media plans (marketing-skill/marketing-demand-acquisition), set positioning / GTM strategy (marketing-skill/marketing-strategy-pmm), or set pricing (commercial/pricing-strategist).

Workflow

  1. Write the brief — Fill assets/market_research_brief_template.md (objective, the decision this informs, sizing approach, sampling plan, assumptions register).
  2. Size the market — Run market_sizer.py --input market.json --method both --profile {b2b-saas|consumer|enterprise|marketplace|hardware|services}. Reconcile the top-down/bottoms-up delta before quoting anything.
  3. Plan the survey — Run sample_size_planner.py --input survey.json. Fund the per-segment floors, not just the overall n.
  4. Score the segments — Run segmentation_scorer.py --input segments.json --profile <same>. Drop segments failing the substantiality/accessibility gate.
  5. Assemble the evidence pack — Combine into a brief. Every number carries its method + assumptions + confidence.

Scripts

Script Purpose Profiles
scripts/market_sizer.py TAM/SAM/SOM top-down AND bottoms-up + triangulation flag b2b-saas, consumer, enterprise, marketplace, hardware, services
scripts/sample_size_planner.py Survey n + FPC + per-segment minima n/a (parameter-driven)
scripts/segmentation_scorer.py Kotler 5-criteria scoring + gate b2b-saas, consumer, enterprise, marketplace, hardware, services

All three: stdlib-only, --help, --sample, --output {human,json}.

Onboarding & customization

Run the onboarding questionnaire once before you start — it captures your defaults so every tool in this skill is pre-configured. Customization is the point: the answers actually change tool behavior.

python3 scripts/onboard.py            # interactive (also: --defaults, --set key=value, --reset)
python3 scripts/onboard.py --show     # see the questions + current effective config

Answers are saved to ~/.config/research-ops/market-research.json (global) or ./.research-ops/market-research.json (--scope project) and are read automatically by config_loader.py. They set the default market profile, the default survey confidence and margin of error, and the default sizing method. CLI flags always override saved config; RESEARCH_OPS_NO_CONFIG=1 ignores it.

The four questions: market profile · survey confidence · margin of error · sizing method.

Optimize with autoresearch (opt-in)

This skill ships an isolated, opt-in bridge to engineering/autoresearch-agent. Only when you ask to "optimize" / "reconcile the sizing" / "run a loop" does an autoresearch experiment iteratively reconcile your market model so top-down and bottoms-up triangulate. scripts/ar_evaluator.py is the ground-truth evaluator; it prints tam_divergence: <fraction> (lower is better).

/ar:setup --domain custom --name tam-triangulation \
  --target market.json \
  --eval "python3 ar_evaluator.py --target market.json" \
  --metric tam_divergence --direction lower
/ar:loop custom/tam-triangulation

Isolated: no hard dependency — autoresearch runs only on demand, and the loop edits market.json, never the evaluator.

References

  • references/market_sizing_canon.md — TAM/SAM/SOM frameworks (Bessemer, a16z); top-down vs bottoms-up; Fermi estimation; market-model conventions; common sizing fallacies.
  • references/survey_methodology.md — Cochran Sampling Techniques; Dillman Tailored Design Method; Groves Survey Methodology; question-wording bias (Schuman & Presser); AAPOR standards.
  • references/segmentation_and_ci.md — Kotler segmentation criteria; needs-based vs firmographic; Porter Five Forces; SCIP ethics; Christensen JTBD; conjoint/MaxDiff primer.

Assumptions

  • The sizer reports both methods but cannot validate your inputs — a top-down "1% of a $40B market" is only as good as the cited source and the serviceable fraction.
  • Sample-size uses the conservative p=0.5 (maximum variance) unless you supply an expected proportion.
  • Segment scores are inputs you provide; the tool enforces the gates and the weighting, it does not gather the underlying evidence.
  • Competitive intelligence must follow the SCIP code of ethics — no misrepresentation, no protected information.

Anti-patterns

  • A single TAM number with no method. Always triangulate top-down against bottoms-up.
  • Spurious precision. Size to the decision's tolerance; "$3.7142B" implies a confidence you do not have.
  • Powering only the total. Each reported segment needs its own sample floor.
  • Leading or double-barreled survey questions. Pre-test wording against the bias literature.
  • Calling a demographic slice a segment. It must be substantial AND accessible.

Distinct from

Neighbor Scope Difference
marketing-skill/campaign-analytics Attribution, ROAS, CPA, funnel of a live campaign That measures spend deployed; this is upstream methodology
marketing-skill/marketing-demand-acquisition Demand-gen, paid media, channel mix That runs acquisition; this builds the evidence
marketing-skill/marketing-strategy-pmm Positioning, GTM, category That sets strategy; this sizes and segments the market
commercial/pricing-strategist Pricing model + WTP + packaging That sets price; this sizes the market
product-research (sibling) User/product discovery methods That studies users; this studies the market

Quick examples

python3 scripts/market_sizer.py --sample
python3 scripts/sample_size_planner.py --population 62000 --confidence 0.95 --moe 0.05
python3 scripts/segmentation_scorer.py --sample --output json

The sample market triangulates a ~$1.47B top-down SAM against the bottoms-up figure and flags the divergence; the segmentation sample drops the "solopreneurs who might want analytics" slice for failing the substantiality and accessibility gates.

Forcing-question library (Matt Pocock grill discipline)

Walked one at a time by /cs:grill-research-ops or the orchestrator. Recommended answer + canon citation per question. Never bundled.

  1. "Is your TAM top-down or bottoms-up — and have you computed it both ways to triangulate?" Recommended: both; reconcile the delta before quoting a number. Canon: Bessemer / a16z market-sizing; Fermi estimation.

  2. "What decision will this market size actually drive — and at what precision does it matter?" Recommended: size to the decision's tolerance, not to a spurious-precision number. Canon: market-model conventions (Gartner/Forrester); decision-driven analysis.

  3. "What's your target margin of error and confidence — and does your sample clear it per segment, not just overall?" Recommended: power each reported segment, not only the total. Canon: Cochran Sampling Techniques; AAPOR standards.

  4. "Are your survey questions free of leading and double-barreled wording?" Recommended: pre-test the wording; cite the bias source. Canon: Schuman & Presser; Dillman Tailored Design Method.

  5. "Do your segments pass measurable / substantial / accessible / actionable — or are they just demographic slices?" Recommended: drop segments that fail substantiality or accessibility. Canon: Kotler segmentation criteria.

Walk depth-first. Lock 1-2 before opening 3-5. After all are answered, invoke market_sizer.py → sample_size_planner.py → segmentation_scorer.py.

1---
2name: market-research
3description: Use when doing upstream market-research methodology — sizing a market as TAM/SAM/SOM computed BOTH top-down and bottoms-up (never a single unsourced number), planning a survey sample size with finite-population correction and per-segment minimums, or scoring candidate market segments against Kotler's measurable/substantial/accessible/differentiable/actionable criteria. Outputs always show the method and the assumptions. For market-research analysts and product-marketing at the sizing/survey/segmentation moment. Distinct from marketing-skill (campaign analytics, attribution, demand-gen) — this is the evidence-building methodology, not live-campaign optimization.
4version: 2.9.0
5author: claude-code-skills
6license: MIT
7tags: [research-ops, market-research, tam-sam-som, market-sizing, survey, sampling, segmentation, competitive-intelligence]
8compatible_tools: [claude-code, codex-cli, cursor, antigravity, opencode, gemini-cli]
9---
10 
11# market-research
12 
13Upstream market-research methodology: market sizing, survey/sampling design, and segmentation. The discipline here is **method + assumptions**: a TAM is never a single number, a survey is never powered only in aggregate, and a segment is never a demographic slice.
14 
15## Purpose
16 
17Market-research analysts, product marketers, and strategy teams need rigorous evidence *before* anyone optimizes a campaign or sets a strategy. This skill structures three methodology decisions:
18 
19Three deterministic tools:
20 
211. `market_sizer.py` — Computes TAM/SAM/SOM by **both** top-down and bottoms-up methods side-by-side, reports the divergence, and flags failed triangulation. Never returns a single number.
222. `sample_size_planner.py` — Survey sample size from confidence, margin of error, and expected proportion, with the finite-population correction and **per-segment minimums** (a survey powered overall is not powered per reported segment).
233. `segmentation_scorer.py` — Scores candidate segments against Kotler's five criteria and enforces a substantiality + accessibility gate; a slice that is too small or unreachable is dropped.
24 
25## When to use
26 
27Invoke this skill when:
28 
29- A board or exec asks "how big is this market?" and you need a defensible, triangulated answer.
30- You are fielding a survey and need a sample size that holds up per segment, not just overall.
31- You have a list of candidate segments and need to know which are real markets vs demographic slices.
32- You are synthesizing competitive intelligence and need a methodological backbone.
33 
34**Do NOT use this skill to**: measure a live campaign (attribution, ROAS, CPA → `marketing-skill/campaign-analytics`), build demand-gen / paid-media plans (`marketing-skill/marketing-demand-acquisition`), set positioning / GTM strategy (`marketing-skill/marketing-strategy-pmm`), or set pricing (`commercial/pricing-strategist`).
35 
36## Workflow
37 
381. **Write the brief** — Fill `assets/market_research_brief_template.md` (objective, the decision this informs, sizing approach, sampling plan, assumptions register).
392. **Size the market** — Run `market_sizer.py --input market.json --method both --profile {b2b-saas|consumer|enterprise|marketplace|hardware|services}`. Reconcile the top-down/bottoms-up delta before quoting anything.
403. **Plan the survey** — Run `sample_size_planner.py --input survey.json`. Fund the per-segment floors, not just the overall n.
414. **Score the segments** — Run `segmentation_scorer.py --input segments.json --profile <same>`. Drop segments failing the substantiality/accessibility gate.
425. **Assemble the evidence pack** — Combine into a brief. Every number carries its method + assumptions + confidence.
43 
44## Scripts
45 
46| Script | Purpose | Profiles |
47|---|---|---|
48| `scripts/market_sizer.py` | TAM/SAM/SOM top-down AND bottoms-up + triangulation flag | b2b-saas, consumer, enterprise, marketplace, hardware, services |
49| `scripts/sample_size_planner.py` | Survey n + FPC + per-segment minima | n/a (parameter-driven) |
50| `scripts/segmentation_scorer.py` | Kotler 5-criteria scoring + gate | b2b-saas, consumer, enterprise, marketplace, hardware, services |
51 
52All three: stdlib-only, `--help`, `--sample`, `--output {human,json}`.
53 
54## Onboarding & customization
55 
56Run the onboarding questionnaire **once before you start** — it captures your defaults so every tool in this skill is pre-configured. Customization is the point: the answers actually change tool behavior.
57 
58```bash
59python3 scripts/onboard.py # interactive (also: --defaults, --set key=value, --reset)
60python3 scripts/onboard.py --show # see the questions + current effective config
61```
62 
63Answers are saved to `~/.config/research-ops/market-research.json` (global) or `./.research-ops/market-research.json` (`--scope project`) and are read automatically by `config_loader.py`. They set the default market **profile**, the default survey **confidence** and **margin of error**, and the default **sizing method**. CLI flags always override saved config; `RESEARCH_OPS_NO_CONFIG=1` ignores it.
64 
65**The four questions:** market profile · survey confidence · margin of error · sizing method.
66 
67## Optimize with autoresearch (opt-in)
68 
69This skill ships an **isolated, opt-in** bridge to `engineering/autoresearch-agent`. Only when you ask to "optimize" / "reconcile the sizing" / "run a loop" does an autoresearch experiment iteratively reconcile your market model so top-down and bottoms-up triangulate. `scripts/ar_evaluator.py` is the ground-truth evaluator; it prints `tam_divergence: <fraction>` (**lower** is better).
70 
71```bash
72/ar:setup --domain custom --name tam-triangulation \
73 --target market.json \
74 --eval "python3 ar_evaluator.py --target market.json" \
75 --metric tam_divergence --direction lower
76/ar:loop custom/tam-triangulation
77```
78 
79Isolated: no hard dependency — autoresearch runs only on demand, and the loop edits `market.json`, never the evaluator.
80 
81## References
82 
83- `references/market_sizing_canon.md` — TAM/SAM/SOM frameworks (Bessemer, a16z); top-down vs bottoms-up; Fermi estimation; market-model conventions; common sizing fallacies.
84- `references/survey_methodology.md` — Cochran *Sampling Techniques*; Dillman *Tailored Design Method*; Groves *Survey Methodology*; question-wording bias (Schuman & Presser); AAPOR standards.
85- `references/segmentation_and_ci.md` — Kotler segmentation criteria; needs-based vs firmographic; Porter Five Forces; SCIP ethics; Christensen JTBD; conjoint/MaxDiff primer.
86 
87## Assumptions
88 
89- The sizer reports both methods but cannot validate your inputs — a top-down "1% of a $40B market" is only as good as the cited source and the serviceable fraction.
90- Sample-size uses the conservative p=0.5 (maximum variance) unless you supply an expected proportion.
91- Segment scores are inputs you provide; the tool enforces the gates and the weighting, it does not gather the underlying evidence.
92- Competitive intelligence must follow the SCIP code of ethics — no misrepresentation, no protected information.
93 
94## Anti-patterns
95 
96- **A single TAM number with no method.** Always triangulate top-down against bottoms-up.
97- **Spurious precision.** Size to the decision's tolerance; "$3.7142B" implies a confidence you do not have.
98- **Powering only the total.** Each reported segment needs its own sample floor.
99- **Leading or double-barreled survey questions.** Pre-test wording against the bias literature.
100- **Calling a demographic slice a segment.** It must be substantial AND accessible.
101 
102## Distinct from
103 
104| Neighbor | Scope | Difference |
105|---|---|---|
106| `marketing-skill/campaign-analytics` | Attribution, ROAS, CPA, funnel of a live campaign | That **measures spend deployed**; this is **upstream methodology** |
107| `marketing-skill/marketing-demand-acquisition` | Demand-gen, paid media, channel mix | That **runs acquisition**; this **builds the evidence** |
108| `marketing-skill/marketing-strategy-pmm` | Positioning, GTM, category | That **sets strategy**; this **sizes and segments the market** |
109| `commercial/pricing-strategist` | Pricing model + WTP + packaging | That **sets price**; this **sizes the market** |
110| `product-research` (sibling) | User/product discovery methods | That studies **users**; this studies **the market** |
111 
112## Quick examples
113 
114```bash
115python3 scripts/market_sizer.py --sample
116python3 scripts/sample_size_planner.py --population 62000 --confidence 0.95 --moe 0.05
117python3 scripts/segmentation_scorer.py --sample --output json
118```
119 
120The sample market triangulates a ~$1.47B top-down SAM against the bottoms-up figure and flags the divergence; the segmentation sample drops the "solopreneurs who might want analytics" slice for failing the substantiality and accessibility gates.
121 
122## Forcing-question library (Matt Pocock grill discipline)
123 
124Walked one at a time by `/cs:grill-research-ops` or the orchestrator. Recommended answer + canon citation per question. Never bundled.
125 
1261. **"Is your TAM top-down or bottoms-up — and have you computed it both ways to triangulate?"**
127 Recommended: both; reconcile the delta before quoting a number.
128 Canon: Bessemer / a16z market-sizing; Fermi estimation.
129 
1302. **"What decision will this market size actually drive — and at what precision does it matter?"**
131 Recommended: size to the decision's tolerance, not to a spurious-precision number.
132 Canon: market-model conventions (Gartner/Forrester); decision-driven analysis.
133 
1343. **"What's your target margin of error and confidence — and does your sample clear it per segment, not just overall?"**
135 Recommended: power each reported segment, not only the total.
136 Canon: Cochran *Sampling Techniques*; AAPOR standards.
137 
1384. **"Are your survey questions free of leading and double-barreled wording?"**
139 Recommended: pre-test the wording; cite the bias source.
140 Canon: Schuman & Presser; Dillman *Tailored Design Method*.
141 
1425. **"Do your segments pass measurable / substantial / accessible / actionable — or are they just demographic slices?"**
143 Recommended: drop segments that fail substantiality or accessibility.
144 Canon: Kotler segmentation criteria.
145 
146Walk depth-first. Lock 1-2 before opening 3-5. After all are answered, invoke `market_sizer.py` → `sample_size_planner.py` → `segmentation_scorer.py`.
147 
View all files on GitHub →

Details

Version
2.9.0
Updated
Aug 30, 2026
License
MIT
Stars on the repo
★ 26,349
Checked
Source
alirezarezvani/claude-skills ↗
Creator
alirezarezvani · 363 listings
View creator

Similar skills

See all →
SkillMarket Trend AnalyzerMaxKmet/idea-validation-agents · by MaxKmetAnalyzes market trends across platforms (TikTok, Reddit, App Store, Google Trends) for a given topic or category. Writes a new file to memory/market_insights/.★ 468 GitHub starsAgentInvestment Researchermsitarzewski/agency-agents · by msitarzewskiExpert investment researcher specializing in market research, due diligence, portfolio analysis, and asset valuation. Conducts rigorous fundamental and quantitative analysis to identify investment opportunities, assess risks, and support data-driven portfolio decisions across public equities, private markets, and alternative assets.★ 154k GitHub starsAgentPhase 0: Intelligence Discoverymsitarzewski/agency-agents · by msitarzewski> Duration: 3-7 days | Agents: 6 | Gate Keeper: Executive Summary Generator★ 154k GitHub starsAgentTrend Analystmsitarzewski/agency-agents · by msitarzewskiExpert market intelligence analyst specializing in identifying emerging trends, competitive analysis, and opportunity assessment. Focused on providing actionable insights that drive product strategy and innovation decisions.★ 154k GitHub starsSkillMarket Research ReporterK-Dense-AI/scientific-agent-skills · by K-Dense-AIBuild evidence-traceable market research reports and assumption-driven market sizing or forecast scenarios. Use for market definition, industry and customer evidence, competitive landscapes, TAM/SAM/SOM reconciliation, forecast sensitivity, and auditable report scaffolds.★ 46k GitHub starsSkillMarket Sizing Calculatorwshobson/agents · by wshobsonCalculate TAM/SAM/SOM for market opportunities using top-down, bottom-up, and value theory methodologies. Use this skill when sizing markets, estimating addressable revenue, validating market opportunity for a new venture, or building investor-ready market analysis for a startup pitch or business plan.★ 39.9k GitHub stars

More from alirezarezvani

SkillExperiment Resume Toolalirezarezvani/claude-skills · by alirezarezvaniResume a paused experiment. Checkout the experiment branch, read results history, continue iterating. Use when the user runs /ar:ar-resume or asks to pick up a previously started autoresearch experiment.★ 26.3k GitHub starsSkillExperiment Dashboard Vieweralirezarezvani/claude-skills · by alirezarezvaniShow experiment dashboard with results, active loops, and progress. Use when the user runs /ar:ar-status or asks how an autoresearch experiment is going.★ 26.3k GitHub starsSkillAutonomous Experiment Runneralirezarezvani/claude-skills · by alirezarezvaniStart an autonomous experiment loop with user-selected interval (10min, 1h, daily, weekly, monthly). Uses CronCreate for scheduling. Use when the user runs /ar:loop or asks to run an autoresearch experiment continuously on a schedule.★ 26.3k GitHub starsSkillSingle Experiment Iteratoralirezarezvani/claude-skills · by alirezarezvaniRun a single experiment iteration. Edit the target file, evaluate, keep or discard. Use when the user runs /ar:run or asks for one manual autoresearch iteration.★ 26.3k GitHub starsSkillAutoresearch Experiment Setupalirezarezvani/claude-skills · by alirezarezvaniSet up a new autoresearch experiment interactively. Collects domain, target file, eval command, metric, direction, and evaluator. Use when the user runs /ar:setup or asks to start optimizing a file with the autoresearch loop.★ 26.3k GitHub starsSkillExecutive Boardroom Deliberatoralirezarezvani/claude-skills · by alirezarezvani/cs:boardroom <brief> — 6-phase multi-role deliberation across the C-suite with Phase 2 isolation, critic pre-screen, and synthesis. Outputs a board memo. Use when a decision spans multiple executive domains — e.g. a pricing change touching finance, positioning, and product, or a raise-vs-cut runway call.★ 26.3k GitHub stars