TAM SAM SOM Calculator
deanpeters/Product-Manager-Skills
Calculates total, serviceable available and serviceable obtainable market size for a product idea with explicit assumptions, methods and caveats.
Estimate market opportunity (TAM, SAM, SOM) using multiple sizing frameworks (top-down, bottom-up, comparable company, analogous market).
$ npx skills add product-on-purpose/pm-skills --skill discover-market-sizing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install product-on-purpose/pm-skills discover-market-sizing --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/product-on-purpose/pm-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/discover-market-sizing .claude/skills/discover-market-sizing && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "discover-market-sizing" agent skill from https://github.com/product-on-purpose/pm-skills/tree/main/skills/discover-market-sizing into .claude/skills/discover-market-sizing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discover-market-sizing", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/product-on-purpose/pm-skills/tree/main/skills/discover-market-sizingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add product-on-purpose/pm-skills --skill discover-market-sizing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install product-on-purpose/pm-skills discover-market-sizing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/product-on-purpose/pm-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/discover-market-sizing .agents/skills/discover-market-sizing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "discover-market-sizing" agent skill from https://github.com/product-on-purpose/pm-skills/tree/main/skills/discover-market-sizing into .agents/skills/discover-market-sizing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discover-market-sizing", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add product-on-purpose/pm-skills --skill discover-market-sizing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install product-on-purpose/pm-skills discover-market-sizing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/product-on-purpose/pm-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/discover-market-sizing .cursor/skills/discover-market-sizing && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "discover-market-sizing" agent skill from https://github.com/product-on-purpose/pm-skills/tree/main/skills/discover-market-sizing into .cursor/skills/discover-market-sizing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discover-market-sizing", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/product-on-purpose/pm-skills.git --path skills/discover-market-sizing--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add product-on-purpose/pm-skills --skill discover-market-sizing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install product-on-purpose/pm-skills discover-market-sizing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/product-on-purpose/pm-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/discover-market-sizing .gemini/skills/discover-market-sizing && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "discover-market-sizing" agent skill from https://github.com/product-on-purpose/pm-skills/tree/main/skills/discover-market-sizing into .gemini/skills/discover-market-sizing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discover-market-sizing", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install product-on-purpose/pm-skills discover-market-sizingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add product-on-purpose/pm-skills --skill discover-market-sizing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/product-on-purpose/pm-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/discover-market-sizing .github/skills/discover-market-sizing && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "discover-market-sizing" agent skill from https://github.com/product-on-purpose/pm-skills/tree/main/skills/discover-market-sizing into .github/skills/discover-market-sizing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discover-market-sizing", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add product-on-purpose/pm-skills --skill discover-market-sizing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install product-on-purpose/pm-skills discover-market-sizing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/product-on-purpose/pm-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/discover-market-sizing .opencode/skills/discover-market-sizing && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "discover-market-sizing" agent skill from https://github.com/product-on-purpose/pm-skills/tree/main/skills/discover-market-sizing into .opencode/skills/discover-market-sizing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "discover-market-sizing", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
discover-market-sizingEstimate market opportunity (TAM, SAM, SOM) using multiple sizing frameworks (top-down, bottom-up, comparable company, analogous market).
Discover Market Sizing is an agent skill from product-on-purpose/pm-skills. Estimate market opportunity (TAM, SAM, SOM) using multiple sizing frameworks (top-down, bottom-up, comparable company, analogous market). Triangulates across frameworks, highlights where they converge and diverge as signal, and produces a calibrated range with source-graded confidence labels. Refuses unbounded fabrications; always offers a labeled lower-confidence path when data is thin. Used for investment cases, go/no-go decisions, and stakeholder pitches.
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `HISTORY.md`, `evals/trigger-fixtures.json` and `references/EXAMPLE.md`).
It sits in Product & Project Management, covering Market sizing and Startup and business strategy. The repository describes itself as: 68 plug-and-play, best-practice product management skills for AI agents: 30 Triple Diamond phase + 11 foundation + 12 utility + 15 tool (Foundation Sprint + Design Sprint). Plus… The licence is Apache-2.0.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 1cef1a9. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Discover Market Sizing loads about 3.3k tokens when it runs, and up to ~5.2k if it reads all its reference files. Until then it costs about 121 tokens; SKILL.md has 1,662 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from product-on-purpose/pm-skills at commit 1cef1a9, republished under its Apache-2.0 licence (© product-on-purpose). 1,662 words, ~3,275 tokens.
.claude/skills/discover-market-sizing/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
You produce a multi-framework market-sizing meta-analysis covering TAM (Total Addressable Market), SAM (Serviceable Addressable Market), and SOM (Serviceable Obtainable Market). You run all applicable sizing frameworks (top-down, bottom-up, comparable company, analogous market), compare where they converge and diverge, and synthesize a calibrated estimate with a recommendation. Divergence between frameworks is often the most valuable finding. Your job is to produce a defensible artifact and explain the reasoning.
Multi-framework synthesis and epistemic discipline. Run all applicable frameworks; convergence across methods increases confidence, divergence is a finding to explain. Every dollar figure must trace to (a) a cited public source, (b) an explicitly-stated assumption with reasoning, or (c) a sensitivity range showing the bounds. Hand-wavy guesses are a P0 anti-pattern. When data is thin, offer a labeled lower-confidence estimate with explicit assumptions rather than refusing outright.
Scope: external market opportunity only. This skill sizes the market a product competes in - not internal-tool investment cases (time-savings x headcount x cost).
define-prioritization-frameworkdiscover-competitive-analysisfoundation-persona firstRequired:
Optional but improves quality:
A markdown document with the following sections, in order:
What is being sized, the headline TAM/SAM/SOM range with confidence labels, and the single most important assumption.
What "the market" means in this context. Be specific: what is included; what is excluded. Define the boundary precisely (e.g., "the market for AI-powered code review tools sold to companies with greater than 50 engineers, excluding self-hosted open source").
Use industry-published market figures to derive TAM/SAM/SOM:
Output a table:
| Layer | Number | Method | Source / Assumption | Confidence |
|---|---|---|---|---|
| TAM | $X | Industry report Y | Source Z, page N | High / Medium / Low |
| SAM | $X | Filter on TAM | Customer-fit % * geographic-fit % | Medium |
| SOM | $X | Market share assumption | Z% of SAM in 3 years | Medium / Low |
Build sizing from unit economics:
Output a table:
| Segment | # Customers | Revenue / Customer | Sub-total | Method | Source |
|---|---|---|---|---|---|
| Segment A | X | $Y | $X*Y | Bottom-up | Source / Assumption |
If bottom-up data is not available, say so explicitly. Do not fabricate counts.
Compare all sizing approaches used. Show:
If comparable company sizing or analogous market sizing were applied, include those results in the comparison.
Show how TAM/SAM/SOM change under different assumptions:
| Assumption varied | Low | Mid | High |
|---|---|---|---|
| Market growth rate | 5% (TAM = $X) | 10% (TAM = $Y) | 15% (TAM = $Z) |
| Market share captured | 1% (SOM = $A) | 5% (SOM = $B) | 10% (SOM = $C) |
List every assumption used, with:
You refuse to produce numbers without bounded sources. Specifically:
Unbounded fabrication. If the user provides no inputs and no constraints, you refuse: "I cannot size this market without source data or explicit assumptions. Please provide either (a) an industry report or market figure to anchor the analysis, (b) bottom-up unit-economic inputs (target customer count + revenue per customer), or (c) explicit assumptions you want me to use with sensitivity ranges."
Missing scope definition. If the market definition is ambiguous (e.g., "the AI market"), you refuse: "The market needs a precise boundary. 'The AI market' could mean training infrastructure ($X), AI-powered SaaS ($Y), AI-augmented services ($Z), or all of the above. Please specify which slice you want sized."
Implausible confidence requests. If the user asks for a "definitive" or "single" number, you refuse the framing: "Market sizing is inherently a range, not a point estimate. I can produce a range with confidence labels, but stating a single 'definitive' number would misrepresent the certainty. Want me to produce a central estimate with low/high bounds instead?"
Compliance with hand-wavy sources. If the user provides a source that is actually a tweet, a blog post without citations, or "I heard at a conference", you flag it: "The source you provided does not support the figure cited. I will use it as an assumption but flag it as Low confidence. If you have a primary source, share it."
Misuse of TAM as the sales-projection number. If the user expects TAM to be a revenue projection, you flag: "TAM is total addressable demand if 100 percent of customers bought, which is unrealistic. Revenue projections should be derived from SOM and grow over time. TAM is the upper bound of the opportunity, not the projection."
When sizing claims rest on external data:
Source-calibrated confidence: assign confidence based on source quality, not blanket-label all web-fetched figures as Low:
Proactive fetch recommendation: before proceeding, evaluate what the user has provided. If the inputs would produce Low-confidence results throughout, recommend whether fetching additional sources would materially improve the output and suggest a specific approach (e.g., "your SAM estimate would improve significantly with a public market report on this category; want me to search for one?"). You may use web search if available to verify or supplement source data. You may NOT invent sources.
When the user needs a directional TAM/SAM/SOM for a board slide or early investment case and does not have primary sources, use quick-estimate mode:
Quick-estimate mode still refuses unbounded fabrication. The difference is it accepts user-stated rough assumptions rather than demanding primary-source citations.
develop-solution-brief and deliver-prd (sizing informs scope and the investment case)discover-competitive-analysis (market and competitor context) and discover-interview-synthesis (qualitative signal that informs sizing assumptions)utility-pm-critic (use proactively to challenge assumptions, source quality, and confidence labels)Use the template in references/TEMPLATE.md to structure the output. See references/EXAMPLE.md for a complete worked example showing multi-framework synthesis.
Before finalizing, verify:
references/TEMPLATE.mdreferences/EXAMPLE.md + library samples in library/skill-output-samples/discover-market-sizing/© product-on-purpose, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in skills/discover-market-sizing of product-on-purpose/pm-skills.
Open the folder on GitHubat commit 1cef1a9
Discover Market Sizing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Discover Market Sizing this skillproduct-on-purpose/pm-skills | 716 | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| TAM SAM SOM Calculatordeanpeters/Product-Manager-Skills | 7.2k | 1 repos | ~4.8k | Automated safety check: Pass | Custom licence | |
| Market Sizing Analysisnicepkg/auto-company | 195 | 11 repos | ~3.1k | Automated safety check: Pass | None | |
| Market Sizing Frameworksslgoodrich/agents | 139 | — | ~3.3k | Automated safety check: Pass | Custom licence | |
| Market Sizing Analysiswshobson/agents | 40k | 1 repos | ~620 | Automated safety check: Pass | MIT | |
| Startup Business Analyst Market Opportunityaiskillstore/marketplace | 433 | 7 repos | ~1.8k | Automated safety check: Notes | None |
deanpeters/Product-Manager-Skills
Calculates total, serviceable available and serviceable obtainable market size for a product idea with explicit assumptions, methods and caveats.
nicepkg/auto-company
This skill should be used when the user asks to "calculate TAM", "determine SAM", "estimate SOM", "size the market", "calculate market opportunity", "what's the total addressable market", or…
slgoodrich/agents
TAM/SAM/SOM calculations and market sizing methodologies. An agent skill from slgoodrich/agents.
wshobson/agents
Calculate TAM/SAM/SOM for market opportunities using top-down, bottom-up, and value theory methodologies.
aiskillstore/marketplace
Generate comprehensive market opportunity analysis with TAM/SAM/SOM calculations
Mathews-Tom/armory
Structured market analysis with TAM/SAM/SOM sizing, trends, and competitive landscape via WebSearch, producing investor-grade cited reports.
product-on-purpose/pm-skills
Defines a testable hypothesis with clear success metrics and a validation approach.
product-on-purpose/pm-skills
Creates a Jobs to be Done canvas capturing the functional, emotional, and social dimensions of a customer job.
product-on-purpose/pm-skills
Creates an opportunity solution tree connecting a desired outcome to customer opportunities and candidate solutions, preventing solution-first jumps in continuous discovery.
product-on-purpose/pm-skills
Creates a clear problem framing document with user impact, business context, and success criteria.
product-on-purpose/pm-skills
Generates structured Given/When/Then acceptance criteria for a user story or feature slice, covering the happy path, key failure scenarios, and non-functional expectations in testable form.
product-on-purpose/pm-skills
Creates a cross-functional pre-launch checklist covering engineering, design, marketing, support, legal, and operations readiness, with owners, dates, and go/no-go criteria so nothing is missed…
Categories
Estimate market opportunity (TAM, SAM, SOM) using multiple sizing frameworks (top-down, bottom-up, comparable company, analogous market). Discover Market Sizing is an agent skill from product-on-purpose/pm-skills. Estimate market opportunity (TAM, SAM, SOM) using multiple sizing frameworks (top-down, bottom-up, comparable company, analogous market).
Discover Market Sizing fits situations like: tasks that involve Market sizing; tasks that involve Startup and business strategy.
Run `npx skills add product-on-purpose/pm-skills --skill discover-market-sizing -a claude-code`. Or copy the skill folder (skills/discover-market-sizing in product-on-purpose/pm-skills) into .claude/skills/discover-market-sizing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add product-on-purpose/pm-skills --skill discover-market-sizing -a codex`. Or copy the skill folder (skills/discover-market-sizing in product-on-purpose/pm-skills) into .agents/skills/discover-market-sizing in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add product-on-purpose/pm-skills --skill discover-market-sizing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/discover-market-sizing, .gemini/skills/discover-market-sizing, .github/skills/discover-market-sizing and .opencode/skills/discover-market-sizing in your project.
SKILL.md names no scripts, command-line tools or credentials: Discover Market Sizing is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Discover Market Sizing is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Discover Market Sizing: TAM SAM SOM Calculator (deanpeters/Product-Manager-Skills, 7.2k stars), Market Sizing Analysis (nicepkg/auto-company, 195 stars), Market Sizing Frameworks (slgoodrich/agents, 139 stars) and Market Sizing Analysis (wshobson/agents, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
product-on-purpose (a GitHub organization) maintains it in product-on-purpose/pm-skills, which has 716 GitHub stars. The repository holds 68 skills in this directory. The repository was last updated on October 8, 2026.
Source: product-on-purpose/pm-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.