market-sizing
Autonomous TAM/SAM/SOM market sizing using top-down and bottom-up approaches with triangulation. Researches market data via web, produces growth projections, segmentation breakdowns, and Mermaid diagrams with optional PNG export.
What this skill does
# Market Sizing
You perform autonomous TAM/SAM/SOM market sizing analysis. You research market data yourself — do not ask the user for data they would need to look up. Only ask the user for decisions and confirmations.
## Input handling
Follow shared foundation §7 — interview mode. When input is missing or insufficient, interview to gather at minimum:
| Dimension | Required | Default |
|---|---|---|
| **Product/service/idea** to size | Yes | — |
| **Industry/market** | Yes | — |
| **Geographic scope** | No | Global |
| **Target customer segments** | No | Will be researched |
| **Pricing data** (ASP, ARPU) | No | Will be researched |
| **Time horizon** for projections | No | 5 years |
| **Known competitors** | No | Will be researched |
**Exit interview when**: Product/service and industry are clear enough to research.
## Phase 1 — Setup
### 1. Collect input
Accept one of:
- A product, company, or idea name/description
- A file path to a business case document
- Pasted business case content
- No input or vague input → enter interview mode (§7)
### 2. Detect scope
From the input (or interview results), identify:
- **Subject**: The product, service, or business to size
- **Industry/market**: Sector and market segment
- **Geographic scope**: Region or global (default: global)
- **Customer segments**: Target segments (if provided)
- **Pricing context**: Known pricing or ARPU (if provided)
### 3. Confirm scope
Present detected scope:
```
**Subject**: [name]
**Industry**: [industry/segment]
**Geographic scope**: [scope]
**Target segments**: [listed or "will be researched"]
**Time horizon**: [N years]
**Approach**: Top-down + bottom-up with triangulation
```
Ask the user to confirm or adjust.
Ask diagram render mode and output path per the `diagram-rendering` and `autonomous-research` mixins.
## Phase 2 — Research
Use WebSearch and WebFetch per the `autonomous-research` mixin.
### 2a. Industry data
Research:
- Total industry/market revenue (global, regional)
- Market growth rates (historical CAGR, projected CAGR)
- Industry reports (Gartner, IDC, Statista, IBISWorld, Grand View Research)
- Government statistics (Census, Eurostat, BLS)
### 2b. Customer data
Research:
- Total potential customers (units, companies, users)
- Customer segments and their sizes
- Average selling price (ASP) or average revenue per user (ARPU)
- Purchase frequency and contract values
### 2c. Competitor data
Research:
- Key competitors and their estimated revenues
- Known market shares
- Total competitor revenue sum (for validation)
### 2d. Data freshness check
Flag any data older than 18 months with `[Dated: YYYY]`. Prefer data from the last 18-24 months. State the publication date for every source.
## Phase 3 — TAM Calculation
Calculate TAM using **both** approaches:
### Top-down approach
Start from published industry figures and apply scope filters.
```
TAM (top-down) = Industry revenue from reports
× geographic adjustment (if scoped)
```
Document: source report, year, geographic scope, any adjustments made.
### Bottom-up approach
Build from unit economics.
```
TAM (bottom-up) = Total potential customers × Average annual revenue per customer
```
Or equivalently:
```
TAM (bottom-up) = Total units that could use the product × Price per unit × Purchase frequency
```
Document: customer count source, pricing source, calculation steps.
### Triangulation
Compare the two approaches:
| Method | TAM estimate | Source |
|---|---|---|
| Top-down | $[X] | [source] |
| Bottom-up | $[X] | [source] |
| **Divergence** | [X%] | |
- If divergence ≤15%: approaches converge — use the average or the more defensible figure
- If divergence >15%: flag the divergence, interrogate which assumptions cause the gap, present both with analysis of why they differ
## Phase 4 — SAM Calculation
Apply filters to narrow TAM to the serviceable addressable market:
```
SAM = TAM × geographic filter × segment filter × channel filter × product-fit filter
```
Filters to apply:
- **Geography**: Markets you can operationally/legally serve
- **Segments**: Customer types your product actually fits
- **Channels**: Distribution channels available to you
- **Product fit**: Portion of the market your specific offering addresses (not the whole category)
Document each filter with its percentage and rationale.
## Phase 5 — SOM Calculation
Calculate the realistically obtainable market:
```
SOM = SAM × realistic capture rate
```
The capture rate must be grounded in:
- **Competition**: Number and strength of competitors, your differentiation
- **Resources**: Team size, sales capacity, marketing budget
- **Go-to-market**: Channel reach, partnerships, brand recognition
- **Traction**: Current revenue, growth rate, customer acquisition cost
Do NOT use an arbitrary percentage. Alternatively calculate bottom-up:
```
SOM = (Customers acquirable per year × Revenue per customer) × Time horizon
```
## Phase 6 — Growth Projections
Project TAM, SAM, and SOM forward using CAGR:
| Year | TAM | SAM | SOM | CAGR applied |
|---|---|---|---|---|
| Current | $[X] | $[X] | $[X] | — |
| +1 year | $[X] | $[X] | $[X] | [X%] |
| +3 years | $[X] | $[X] | $[X] | [X%] |
| +5 years | $[X] | $[X] | $[X] | [X%] |
Use industry CAGR for TAM. SAM and SOM growth may differ based on expansion plans and competitive dynamics.
## Phase 7 — Segmentation Analysis
Break down the market by key segments:
| Segment | TAM | SAM | SOM | Notes |
|---|---|---|---|---|
| [Segment 1] | $[X] | $[X] | $[X] | [key insight] |
| [Segment 2] | $[X] | $[X] | $[X] | [key insight] |
Use the most strategically relevant segmentation (geographic, customer type, use case, price tier — as appropriate for the market).
## Phase 8 — Validation
Cross-check estimates using multiple methods:
### Triangulation
Top-down vs bottom-up convergence (already in Phase 3).
### Competitor reverse-engineering
Sum known competitor revenues. This should approximate or be contained within SAM.
### Analogy comparison
Compare to similar markets in other regions or adjacent categories at similar maturity.
### Sanity checks
- Does SOM imply a plausible market share given competition?
- Does the implied growth rate exceed historical norms?
- Is ASP/ARPU consistent with known pricing?
Present validation results:
| Check | Result | Status |
|---|---|---|
| Top-down/bottom-up convergence | [X%] divergence | Pass / Flag |
| Competitor revenue sum vs SAM | $[X] vs $[X] | Pass / Flag |
| Analog comparison | [comparable market] | Consistent / Divergent |
| SOM market share sanity | [X%] of SAM | Plausible / Aggressive |
## Phase 9 — Diagrams
Generate 6 Mermaid diagrams:
### 1. Concentric circles (TAM > SAM > SOM)
```mermaid
pie title Market Sizing — [Subject]
"TAM: $[X]B" : [tam_value]
"SAM: $[X]B" : [sam_value]
"SOM: $[X]M" : [som_value]
```
### 2. Market sizing funnel
```mermaid
flowchart TB
TAM["TAM: $[X]B\n[description]"]
GEO["Geographic filter: [X%]"]
SEG["Segment filter: [X%]"]
CHAN["Channel filter: [X%]"]
SAM["SAM: $[X]B"]
CAP["Capture rate: [X%]"]
SOM["SOM: $[X]M"]
TAM --> GEO --> SEG --> CHAN --> SAM --> CAP --> SOM
```
### 3. Growth projection chart
```mermaid
xychart-beta
title "Market Growth Projection"
x-axis ["Current", "+1Y", "+3Y", "+5Y"]
y-axis "Revenue ($B)" 0 --> [max]
bar [tam_current, tam_1y, tam_3y, tam_5y]
bar [sam_current, sam_1y, sam_3y, sam_5y]
bar [som_current, som_1y, som_3y, som_5y]
```
### 4. Segmentation breakdown
```mermaid
pie title Market Segmentation — TAM
"[Segment 1]" : [value]
"[Segment 2]" : [value]
"[Segment 3]" : [value]
```
### 5. Top-down vs bottom-up comparison
```mermaid
flowchart LR
subgraph TopDown["Top-Down"]
TD1["Industry report: $[X]B"] --> TD2["Geographic adj: ×[X]"] --> TD3["TAM: $[X]B"]
end
subgraph BottomUp["Bottom-Up"]
BU1["[X]M customers"] --> BU2["× $[X] ARPU"] --> BU3["Related in Ads & Marketing
ads
IncludedMulti-platform paid advertising audit and optimization skill. Analyzes Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, and Apple Ads. 250+ checks with scoring, parallel agents, industry templates, and AI creative generation.
banana
IncludedAI image generation Creative Director powered by Google Gemini Nano Banana models. Use this skill for ANY request involving image creation, editing, visual asset production, or creative direction. Triggers on: generate an image, create a photo, edit this picture, design a logo, make a banner, visual for my anything, and all /banana commands. Handles text-to-image, image editing, multi-turn creative sessions, batch workflows, and brand presets.
rpg-migration-analyzer
IncludedAnalyzes legacy RPG (Report Program Generator) programs from AS/400 and IBM i systems for migration to modern Java applications. Extracts business logic from RPG III/IV/ILE source code, identifies data structures (D-specs), file operations (F-specs), program dependencies (CALLB/CALLP), and converts RPG constructs to Java equivalents. Generates migration reports, complexity estimates, and Java implementation strategies with POJO classes, JPA entities, and service methods. Use when modernizing AS/400 or IBM i legacy systems, analyzing RPG source files (.rpg, .rpgle, .RPGLE), converting RPG to Java, mapping data specifications to Java classes, planning legacy system migration, or when user mentions RPG analysis, Report Program Generator, RPG III/IV/ILE, AS/400 modernization, IBM i migration, packed decimal conversion, or mainframe application rewrite.
brand-library-architect
IncludedBuild a complete brand library for a product — visual asset render pipeline, brand documentation set (BRAND, COPY, MANIFESTO, BIOS, FAQ, GLOSSARY, TONE, PRICING), open-source convention files (README, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT), and a self-contained press kit. This skill should be used when the user asks to "build a brand library / brand kit / press kit / brand assets" for a product, "set up a brand library workflow," "create a positioning manifesto plus visual identity," or any combination of brand documentation + visual asset pipeline. Apply phase-by-phase or run end-to-end. Templates are product-agnostic and use {{TOKEN}} placeholders the skill prompts the user to fill.
writing-tech-post
IncludedAuthors engineering blog posts end-to-end: launch deep-dives, incident postmortems, architecture migrations, performance case studies, tutorials, AI/agent system writeups, security disclosures, and research-to-product translations. Picks the correct archetype, plans the abstraction ladder, enforces an evidence cadence (diagrams, benchmarks, profiles, traces, code, ablations), tunes voice against publisher house styles (Datadog, Vercel, GitHub, AWS, Meta, Cloudflare, Jane Street), and runs a pre-publish gate for narrative momentum and disclosure ethics. Use when drafting a new engineering post, restructuring a draft that feels flat, deciding which evidence form belongs where, validating that depth and product context are balanced, or preparing a postmortem, migration, or performance narrative for external publication. Do not use for API reference documentation, README authoring, marketing copy, release notes, generic SEO content, ghost-written executive thought leadership, or non-engineering long-form essays.
blog-google
IncludedGoogle API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity analysis for E-E-A-T, YouTube video search for embedding, and Google Ads Keyword Planner. Progressive feature availability based on credential tier (API key, OAuth/service account, GA4, Ads). Shares config with claude-seo at ~/.config/claude-seo/google-api.json. Use when user says "google data", "page speed", "core web vitals", "search console", "indexation", "GA4", "keyword research", "nlp entities", "blog performance", "youtube search", "google api setup".