Market sizing tam
Skill megandmartin/agent-skills-repo/skills/research-analysis/market-sizing-tam
75 production-grade agent skills for Hermes Agent + Paperclip — research, write, organize, earn, and run an AI workforce. Every skill passes a QA gate with hard safety rails. Built by Gen AI Hub.
npx -y skills add megandmartin/agent-skills-repo --skill market-sizing-tamAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 13 days oldThe repository was created 13 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Build a TAM/SAM/SOM estimate with sourced assumptions, bottom-up math preferred over top-down, and a pessimistic/base/optimistic sensitivity table. Use when the user asks "how big is this market", "TAM for my pitch deck", "size the opportunity", "is this market big enough", or needs SAM/SOM numbers investors will probe. Don't use for dissecting a single rival's product — that's competitor-teardown — or for weekly market monitoring — that's trend-radar.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.8 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it
Market Sizing (TAM / SAM / SOM)
Builds a market size a founder can defend under questioning: bottom-up first (count of buyers × price they'd pay), top-down only as a cross-check, and every single number carrying a receipt — a source URL, a user-provided figure marked as such, or an explicitly labeled assumption. The standard: no naked numbers. A TAM slide with unsourced figures is the fastest way to lose an investor's trust.
When to Use
- User needs TAM/SAM/SOM for a pitch deck, accelerator application, or go/no-go decision.
- User asks "is this market big enough to bother?"
- Stress-testing a market claim someone else made ("the report says $40B — is that real?").
- Not for: analyzing one competitor (
competitor-teardown); tracking market signals over time (trend-radar); crunching a CSV of your own sales data (csv-data-analyst).
Quick Reference
| Action | Command / Call |
|---|---|
| Bottom-up TAM | (# of potential buying units) × (realistic annual price) — both sourced |
| SAM | TAM × reachable fraction (geography, segment, channel) — each filter sourced |
| SOM | SAM × attainable share in 3 yrs — anchored to a comparable's actual trajectory |
| Buyer counts | census/labor stats, industry bodies, app-store counts, LinkedIn filters — record URL + date |
| Cross-check | independent top-down (analyst report) — flag if it diverges >3x from bottom-up |
| Sensitivity table | python heredoc, step 6 — pessimistic / base / optimistic per assumption |
Procedure
- Precheck — get from the user: the specific buyer definition ("who writes the check"), the price point (their actual or intended pricing), and geography/segment limits. If web tools are available, sources get fetched live; if not, every external number must come from the user with its origin named — otherwise it goes in as
assumptionwith low confidence. - Define the unit — one sentence: "A buyer is <who>, paying <price> per <period> for <what>." Every later number hangs off this. Vague unit = fictional TAM.
- Count buyers (bottom-up) — find the number of buying units from a primary-ish source: government stats, industry association counts, platform self-reporting, LinkedIn/job-board filter counts. Record the figure, URL, publication date, and what it actually counts (which is rarely exactly your buyer — state the mismatch).
- Price the unit — use the user's real pricing, or comparable products' actual prices (source them). Annualize. TAM = buyers × annual price. Show the multiplication explicitly.
- Filter to SAM and SOM — SAM: apply each reachability filter (geography, language, segment, channel) as a separate sourced or labeled percentage — no single mystery "×20%". SOM: anchor to evidence, e.g. a comparable company's year-3 revenue or share (sourced), or channel math (audience × conversion). "1% of the market" with no mechanism is banned.
- Sensitivity table — vary the 2–3 weakest assumptions:
python3 <<'PY' buyers = {"pess": 60_000, "base": 120_000, "opt": 200_000} # source each in the report price = {"pess": 240, "base": 480, "opt": 720} # annual $, sourced reach = {"pess": 0.05, "base": 0.12, "opt": 0.20} # SAM filters combined for k in ("pess", "base", "opt"): tam = buyers[k] * price[k] print(f"{k:>4}: TAM ${tam:,.0f} | SAM ${tam*reach[k]:,.0f}") PY - Cross-check top-down — find one independent analyst/industry figure for the market. If it's within ~3x of bottom-up TAM, note agreement. If not, investigate which definition differs and say which you trust and why. Then deliver via the template.
Output Template
# Market Size — <product/market> — <date>
Buyer unit: <who> paying $<X>/yr for <what>
## Bottom-up
TAM = <N buyers> [source: <url>, <date>, counts: <what it actually counts>]
× $<price>/yr [source: <url or "user's live pricing">]
= $<TAM>
SAM = TAM × <filter 1: X% — source/label> × <filter 2: ...> = $<SAM>
SOM = SAM × <mechanism-based share — anchor: <comparable + source>> = $<SOM>
## Sensitivity
| Scenario | Buyers | Price | Reach | TAM | SAM |
|---|---|---|---|---|---|
| Pessimistic / Base / Optimistic rows |
## Cross-check
Top-down: $<X> [source] — <agrees / diverges because <definition difference>>
## Assumption register
| # | Assumption | Value | Receipt (url/user/assumption) | Confidence |
## Verdict
<Big enough for the goal? One paragraph, referencing the pessimistic case.>
Pitfalls
- Top-down laundering — "$50B market, we take 1%" survives zero investor questions. Recovery: bottom-up is the spine; top-down only cross-checks. If only top-down data exists, say so and mark the whole estimate low-confidence.
- A number without a receipt slips in — one unsourced "80M SMBs" poisons the whole model. Recovery: the assumption register is mandatory; before delivering, scan every numeral in the doc and confirm it appears in the register or derives from ones that do.
- Source counts the wrong thing — "number of US restaurants" used for "restaurants that would buy scheduling software". Recovery: for each source, write one line on the mismatch between what's counted and your buyer, and haircut accordingly with the haircut labeled as an assumption.
- SOM by wishful percentage — "we'll capture 5%" with no mechanism. Recovery: SOM must come from channel math or a named comparable's actual trajectory; otherwise report SOM as "not estimable yet" — that's more credible than fiction.
- Stale or circular sources — a 2019 blog citing a 2016 report citing a press release. Recovery: record publication dates; prefer primary sources; if the chain ends in a vendor press release, label it
vendor-claimedand lower confidence.
Verification
- Every number appears in the assumption register with a receipt and confidence label
- TAM math shown explicitly (buyers × price), reproducible by hand
- Sensitivity table has all three scenarios with stated assumption ranges
- SOM anchored to a mechanism or comparable, not a naked percentage
- Top-down cross-check present, divergence explained if >3x
Gives 0 of the 12 instructions most slides presentations skills give in ~1.5k tokens
Counted across 568 of the 571 authors here whose files we hold, read 2026-08-06
- include a visual element on every slidein 52 of 568, across 21 files
- put one idea per slidein 50 of 568, across 42 files
- state the design approach before writing codein 38 of 568, across 8 files
- validate XML immediately after each editin 37 of 568, across 7 files
- rasterize gradients and icons as PNG images before referencing themin 37 of 568, across 7 files
- generate and inspect thumbnails to validate layoutin 37 of 568, across 7 files
- commit to a single visual motif across every slidein 37 of 568, across 12 files
- use web-safe fonts onlyin 36 of 568, across 7 files
- keep 0.5 inch minimum marginsin 35 of 568, across 9 files
- use two-column layout for slides with charts or tablesin 34 of 568, across 5 files
- save a template inventory analysis to a filein 33 of 568, across 4 files
- use subagents to visually inspect rendered slidesin 33 of 568, across 9 files
Said here and by no other author read
- define the buyer unit in one sentence
- count buyers using primary sources
- calculate TAM bottom-up
- show TAM multiplication explicitly
- apply reachability filters separately for SAM
- anchor SOM to a comparable trajectory
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.