market-sizing
Skill4 starsChanged 2 months agoMITView on GitHub
Size a market top-down and bottom-up as TAM, SAM, and SOM, reconcile the two within a stated tolerance, and register every input as an assumption with a source or a test. Use when a business case, a where-to-play choice, a board question, or a Gate 1 cost-of-inaction calculation needs a market number that survives the question "where did that come from". Takes a segment definition, a unit, a price with its source, and count sources; returns both sizings, the reconciliation, a sensitivity range, and the assumption rows.
31 other projects use a version of this.
Adopted by
Most recently taken up by
- solanabr/startup-builder-skilltheir own version, first seen Nov 1, 2026
- writer/skillstheir own version, first seen Nov 1, 2026
- Insightful-Pipe/marketing-strategy-skillstheir own version, first seen Nov 1, 2026
- vijaysuperpositionist/skillstheir own version, first seen Nov 1, 2026
- Big-LAORE/Biblioth-que-de-skillstheir own version, first seen Nov 1, 2026
- daviszhen/agent-skillstheir own version, first seen Oct 25, 2026
Used with
Projects with it also use prioritize-features, brainstorm-okrs and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
skytiger6724Skillprioritize-features
Prioritize a backlog of feature ideas based on impact, effort, risk, and strategic alignment with top 5 recommendations. Use when prioritizing a feature backlog, making scope decisions, or ranking product ideas.
Also in 4 projects that use this
skytiger6724Skillbrainstorm-okrs
Brainstorm team-level OKRs aligned with company objectives — qualitative objectives with measurable key results. Use when setting quarterly OKRs, aligning team goals with company strategy, drafting objectives, or learning how to write effective OKRs.
Also in 4 projects that use this
miovragSkillstrategy-red-team
Red-team a PRD, roadmap, or strategy by attacking its load-bearing assumptions before reality does. Steelmans then attacks each claim, ranks failure modes by impact × likelihood × cheapness-to-test, and returns the cheapest test and kill criteria for each. Use when stress-testing a plan, pressure-testing a strategy, challenging assumptions, or preparing a doc for executive review.
Also in 3 projects that use this
launchapp-devSkillinterview-script
Create a structured user interview script with warm-up, core exploration, and wrap-up sections. Use when preparing for user research interviews to ensure consistent, insightful conversations.
Also in 4 projects that use this
About-IntelligenceSkillbeachhead-segment
Identify the first beachhead market segment for a product launch.
Also in 4 projects that use this
nandanosqlSkillcustomer-journey-map
Map the complete customer experience across all touchpoints using the NNGroup framework. Identifies pain points, emotions, and opportunities at every stage of the user journey.
Also in 5 projects that use this
- +5 more from skytiger6724
Other versions31 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 31
- openai/plugins★ 7.8ksame name
- OneWave-AI/claude-skills★ 378same name
- explorium-ai/gtm-skills★ 346same name
- hamzafarooq/claude-code-starter★ 145same name
- AlphaMao1/AlphaMao_Skills★ 130same name
- z1993/AlphaMao_Skills★ 130same name
- Mehdibargach/claude-code-pm-skills★ 97same name
- atypica-ai/marketing-skills★ 44same name
- raphaelxiao/mck_skills★ 32same name
- writer/skills★ 9same name
21 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository37 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- ai-prdSkill
- competitive-intelSkill
- conductorSkill
- decision-memoSkill
- design-reviewSkill
- escalationSkill
- experiment-designerSkill
- feedback-synthesisSkill
- gtm-launch-plannerSkill
- launch-readinessSkill
- metrics-treeSkill
- okr-criticSkill
- persona-builderSkill
- pm-hiringSkill
- postmortem-facilitatorSkill
- pricing-packagingSkill
- product-analystSkill
- product-reviewSkill
- program-premortemSkill
- reg-gap-checkSkill
- roadmap-builderSkill
- evidence-researchSkill
- experiment-analysisSkill
- independent-reviewSkill
- lifecycle-conductorSkill
- portfolio-planningSkill
- product-definitionSkill
- release-governanceSkill
- spec-reviewSkill
- stakeholder-updateSkill
- story-writerSkill
- strategy-criticSkill
- user-interviewSkill
- write-prdSkill
- write-vision-strategySkill
The file
Files
Market Sizing: two methods that must agree, and every input on the record
A market size fails when it is one number from an analyst headline, a small share of a large figure, and a spreadsheet nobody can reopen. The business case then rests on it, the board quotes it, and the first real customer count proves it wrong. This skill runs the sizing twice, from the top and from the bottom, forces the two to reconcile, and files every input where a reviewer can attack it.
Files this skill drives
- ../../frameworks/strategy/market-sizing.md, the worksheet and its reconciliation table
- ../../templates/definition/assumptions-register.md, one row per input that is not a sourced fact
- ../../templates/planning/business-case.md, where SOM lands in the benefits as a range with its assumption IDs beside it
- ../../templates/discovery/evidence-note.md, one per external figure, with the URL and the definition the source used
- ../../templates/planning/product-strategy.md, where SAM per segment informs where to play
- ../../templates/planning/gtm-plan.md, whose first cohort must be a countable subset of SOM
- Method background: ../../knowledge/crossing-the-chasm.md (Moore, 1991) on why the beachhead, not the market, is the number that matters first
When to use
- A business case or funding ask needs a market number in its benefits section
- A where-to-play choice between segments in the product strategy
- A board or executive asks "how big is this", and the honest answer is not yet written down
- Pricing or packaging work needs a volume estimate per tier
- Gate 1's cost of inaction depends on how many people carry the problem
Inputs
The segment, described precisely enough to count, from section 4 of the positioning template or the discovery document. The unit the market is counted in (companies, seats, transactions), and the unit the product charges by. A price or price range with its source: the price list, pilot invoices, or a labeled assumption. Count sources: public statistics with URLs, internal data (CRM, billing, product analytics), a directory or register a list could be built from. For SOM, the reach and capacity constraints: channel reach from the GTM plan, onboarding and sales capacity from the owners of those teams.
Ask for what is missing. Never fill a count from memory. A figure with no public source is an assumption row with a validation method, not a cell in the table. If the segment cannot be described well enough to count, stop and finish positioning section 4 first.
Workflow
1. Define the market in one sentence
The job, the segment, the geography, the period (a year), the unit. Write it at the top of the worksheet. Decision rule: if two people would count different things from this sentence, it is not done.
2. Size top-down
Start from the largest sourced population and apply filters in sequence: the share in the segment, the share with the trigger that makes the job urgent, the share reachable with the product and channels as they exist. TAM is the population times the unit price per year; SAM is TAM after the reachability filter; SOM is SAM after the capacity filter for the planning horizon. Every filter is a row with a value, a source URL and date or an assumption ID, and a confidence.
3. Size bottom-up
Count from the unit up: the number of target accounts from a list you could actually build, times units per account from a sample of real accounts, times price per unit per year. For SOM, the accounts the channel can reach and the team can onboard in the horizon, from the capacity owners. Each factor is a row with the same columns as step 2. Where a sample was used, state its size and how it was drawn.
4. Reconcile, do not average
Put the two sizings side by side. State the tolerance from the worksheet before comparing. If they disagree beyond it, find the input that explains the gap: usually a definition mismatch (the public figure counts a broader segment) or a price mismatch (list versus invoiced). Adjust the input with the weaker source and record why. Decision rule: the reconciliation names the gap driver or the sizing is not done; a midpoint between two disagreeing methods is a number with no method.
5. Show the range
Take the two least certain inputs, set each to its plausible low and high, and report low, base, and high for SOM. The output is a range with the two drivers named, never a point. Then register every input that is not a sourced fact in the assumptions register: confidence, impact, the cheapest test (count a sample of accounts, check a pilot invoice, run one pricing survey), a validate-by date, an owner. Low-confidence, high-impact inputs get tests scheduled, not caveats.
6. Land the numbers where they are used
The business case takes SOM as the range with the assumption IDs beside it. The product strategy takes SAM per segment. The GTM plan's first cohort must be a subset of SOM that a list could be built for this week. Write one paragraph of defense: what would have to be true for the high case, and the single observation that would collapse the base case.
Output format
- Market definition sentence, with the unit
- Top-down table: | Step | Population or filter | Value | Source (URL, date) or AS-id | Confidence |
- Bottom-up table: | Factor | Value | Source or AS-id | Confidence |
- Reconciliation: | Method | TAM | SAM | SOM |, the stated tolerance, and the named gap driver
- Sensitivity: low, base, high for SOM, with the two inputs that drive the spread
- Assumption rows, and the defense paragraph naming where each number lands
Failure modes this skill guards against
- A TAM lifted from an analyst headline without the definition that produced it
- SOM as a small share of a huge number, with no capacity behind the share
- Averaging top-down and bottom-up instead of finding why they differ
- Mixing units, companies in one row and seats in the next
- Counting the whole population when only the segment with the trigger buys
- Pricing at list when the pilot invoices say otherwise
- A point estimate where the decision needs a range
- Assumptions that live in the spreadsheet instead of the register
- A real figure with no URL, which this repository's rules forbid outright
Exit gate
The sizing feeds Gate 1's cost-of-inaction line in ../../os/STAGE-GATES.md and the business case behind the roadmap. Do not report it done until every input has a source or an assumption ID, the reconciliation names its gap driver, and the range with its two drivers is what the business case carries.
What checks this
Some checks on this skill run automatically and some depend on a person. This section says which is which. It is generated by python3 tools/what_checks.py from the declarations it links to, and CI fails when it falls out of date.
- Checked by CI on every commit. This file must carry the seven sections every prose skill carries:
python3 tools/skill_rubric.py --min 7fails theskill-rubricgate inpython3 tools/ci_gate.pywhen one is missing. That checks structure, not whether the advice is right. - Checked by the runtime. This skill is declared against Gate 1 in SKILL.graph.yml. Gate 1 is recorded with
pmos gate --bank-id discover, which refuses the proof unless every question in that bank has been accepted and the bank is the current one, requires the proof to name itssource,source_sha256,actor_id,requester_id,decisionandapproved_at, and rejects self-approval and any approver the bank does not pin. Approver ids are typed, not authenticated, so a recorded approval is a local attestation, not proof of who signed. If the proof's source changes after approval the gate goes stale and nothing later completes until it is proved again. The journey run shows all six gates and a stale gate being proved again. - Checked by a person. The runtime checks who approved and that the evidence has not changed. It does not check whether the reasoning in this skill's Workflow was followed well; that judgment belongs to the people who sign the gate. Gate 1 is signed by the product owner and the sponsor or lead who can stop this, per the sign-off tables in os/STAGE-GATES.md.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

