How to Calculate TAM, SAM, and SOM Using Top-Down and Bottom-Up Approaches
Calculate TAM, SAM, and SOM by applying both top-down (industry shrinkage) and bottom-up (unit economics) methodologies, then reconciling the results to produce a single, triangulated market size that accounts for realistic serviceable and obtainable boundaries.
The phuryn/pm-skills repository provides a structured, reusable framework for product managers to calculate Total Addressable Market (TAM), Serviceable Addressable Market (SAM), and Serviceable Obtainable Market (SOM). By following the seven-step workflow defined in pm-market-research/skills/market-sizing/SKILL.md, you can calculate TAM, SAM, and SOM using top-down and bottom-up approaches that yield defensible, data-driven estimates for investor pitches and strategic planning.
The Seven-Step Market Sizing Pipeline
The core methodology resides in pm-market-research/skills/market-sizing/SKILL.md, which prescribes a rigorous seven-step analysis pipeline. Each step builds upon the previous to ensure your market calculations are grounded in both macroeconomic data and microeconomic reality.
Market Definition
Begin by scoping the problem space, target customer segments, and geographic boundaries. This foundational step prevents scope creep and ensures subsequent calculations address a specific, addressable market rather than an amorphous industry.
Top-Down Estimation
Start with an industry-wide figure—such as total industry revenue or total global spending—and narrow it down using segmentation percentages. This top-down approach gives you a ceiling for your TAM by determining what portion of the broad market theoretically could use your solution.
Bottom-Up Estimation
Build the market from unit economics: customers × price × frequency. This bottom-up approach produces an independent TAM estimate based on actual willingness to pay and usage patterns, often revealing constraints that top-down analysis misses.
Reconciling Dual Estimates
According to the source code at lines 37-41 of the skill file, both top-down and bottom-up calculations are required. The skill reconciles these divergent estimates to produce a single, triangulated TAM figure that balances macro optimism with micro realism.
SAM Scoping
Trim the reconciled TAM to the portion your product can realistically serve. Consider constraints like distribution channels, language support, pricing tiers, and regulatory boundaries. This yields your Serviceable Addressable Market (SAM)—the subset of TAM within your operational reach.
SOM Estimation
Project the share you can actually capture in the next 1-3 years based on competitive positioning, brand strength, and go-to-market capacity. This Serviceable Obtainable Market (SOM) represents realistic revenue potential rather than theoretical possibility.
Growth Projection and Assumption Mapping
Forecast how each metric evolves over a 2-3 year horizon. The skill mandates assumption mapping—listing key assumptions, confidence levels, and validation steps—to ensure your projections withstand scrutiny. The framework also instructs agents to search the web for up-to-date market data (see line 18), requiring citations for all sources and adherence to best-practice guidelines such as reporting currency, confidence intervals, and differentiating between revenue-based and unit-based sizing (lines 78-80).
Implementation in pm-skills
Because the repository treats each skill as a self-contained specification, you can invoke the market-sizing skill via CLI, chatbot, or CI pipeline. The skill outputs a structured markdown report including a summary table, growth drivers, and risk analysis.
CLI Invocation
Trigger the skill from the command line to generate immediate market sizing reports:
# Example 1 – Invoke market-sizing via the CLI with a custom product argument
pm-toolkit market-sizing \
--product "AI-powered code review tool" \
--region "United States" \
--industry "Software Development Tools"
Programmatic Integration
Embed the skill within Python applications or chatbot flows:
# Example 2 – Embed the skill in a chatbot flow (pseudo-Python)
import pm_toolkit as pm
question = """
Estimate the TAM, SAM, and SOM for a cloud-based video-editing platform targeting indie creators in Europe.
"""
response = pm.run_skill("market-sizing", question)
print(response)
Automated Pipeline Integration
Generate market sizing reports as part of your continuous integration workflow:
# Example 3 – Use the skill inside a CI pipeline to generate a market-size report
# (GitHub Actions step)
- name: Generate market sizing
run: |
pm-toolkit market-sizing \
--product "Smart Home Energy Monitor" \
--region "North America" \
--industry "IoT Home Devices" \
> market-sizing-report.md
Summary
- The phuryn/pm-skills repository implements market sizing as a reusable skill in
pm-market-research/skills/market-sizing/SKILL.md. - Top-down calculations start from industry totals and apply segmentation percentages, while bottom-up calculations build from unit economics (customers × price × frequency).
- Both approaches are mandatory and reconciled (lines 37-41) to produce a triangulated TAM.
- SAM narrows TAM by operational constraints; SOM further refines this to realistic 1-3 year capture potential based on competitive positioning.
- The skill requires web-sourced data (line 18) with proper citations and follows standardized output formats including assumption mapping and risk analysis.
Frequently Asked Questions
What is the difference between TAM, SAM, and SOM?
TAM represents the total market demand for a product or service, calculated as the entire revenue opportunity if you achieved 100% market share with unlimited resources. SAM narrows this to the portion you can realistically serve given your business model, geography, and capabilities. SOM represents the short-term subset of SAM that you can actually capture within 1-3 years considering competitive dynamics and go-to-market constraints.
Why does the pm-skills framework require both top-down and bottom-up calculations?
Using both methodologies provides triangulation that validates assumptions against independent data sources. Top-down ensures your estimates align with macroeconomic industry data, while bottom-up verifies that unit economics reflect actual customer behavior and pricing realities. The framework reconciles these divergent estimates at lines 37-41 of SKILL.md to prevent overestimation from relying on a single methodology.
How does the pm-skills market-sizing skill ensure data accuracy?
The skill explicitly instructs agents to search the web for current market data (line 18) and mandates citation of all sources. It also requires best-practice documentation including confidence intervals, currency specifications, and differentiation between revenue-based versus unit-based sizing (lines 78-80), ensuring transparency and auditability for investor presentations.
Can I automate market sizing calculations in my CI/CD pipeline?
Yes. The skill is designed as a self-contained specification that accepts CLI arguments and outputs structured markdown. You can integrate pm-toolkit market-sizing commands into GitHub Actions or other CI pipelines to generate updated market reports automatically when product specifications change, ensuring your market size projections remain current with evolving business requirements.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →