SOM Sizer — Segmented Obtainable Market
Who's still gettable — after you remove your competitor's installed base and your own existing customers.
SAM minus competitor installs, plus intent-active overlay = your real SOM
| Stage | Count | Filter |
|---|---|---|
| SAM | 3,840 | search_companies |
| − Competitor installs | −2,690 | company_technographic |
| = SOM | 1,150 | Competitively uncovered |
| Intent-active 60d | 312 | intent_category |
Overview
Obtainable-market sizer: the slice of SAM still actually gettable after subtracting your competitor's installed base — combining HG technographic install detection with intent-active accounts.
Use cases
VP Sales-Ops gets a real SOM in 5 minutes
Today SOM lives in a Salesforce report no one trusts. With this workflow it's: SAM via `search_companies`, minus competitor installs via `company_technographic`, plus intent overlay via `intent_category`. The number is sized, the subtraction is auditable, and the top 50 has names attached for SDR action.
Displacement campaigns that actually have targets
Marketing's quarterly competitive-displacement campaign goes from 'let's target snowflake displacements' to 'here are the 312 intent-active accounts running Snowflake whose intent on cloud-cost rose in the last 60 days'. The campaign converts because the list is real.
View workflow prompt
# SOM Sizer — Segmented Obtainable Market
## Parameters
- `{{industry_filter}}` *(required)* — Industry filter as a NAICS list or descriptor. Example: `software publishers (NAICS 5112)`
- `{{geo_filter}}` *(required)* — Geographic filter. Example: `US`
- `{{revenue_band_min}}` *(required)* — Minimum annual revenue, in USD. Example: `50000000`
- `{{revenue_band_max}}` *(required)* — Maximum annual revenue, in USD. Example: `500000000`
- `{{competitor_domains}}` *(required)* — JSON array of competitor company domains to subtract from SOM. Example: `["snowflake.com","databricks.com"]`
## Purpose
Distinct from SAM. This workflow takes the SAM slice and subtracts {{competitor_domains}} installed base, then overlays intent-active accounts so the SOM is sized as *gettable today*. Filters: {{industry_filter}} × {{geo_filter}} × revenue {{revenue_band_min}}-{{revenue_band_max}}.
## Process
1. **Anchor SAM** — `search_companies` with the three filters. Report SAM count first.
2. **Subtract competitor installs** — `company_technographic` checked across the SAM for installs of products owned by each domain in {{competitor_domains}}. Subtract from SAM. The remainder is the *competitively-uncovered* SOM.
3. **Layer intent activity** — `intent_category` and `company_intent` for categories adjacent to the competitor base. Carve uncovered SOM into "Intent-Active" (signal within 60 days) and "Latent" (no recent intent).
4. **Top-of-funnel cut** — name the top 50 Intent-Active accounts ordered by recent intent score. These are the displacement-ready prospects.
5. **Cohort fit** — `company_firmographic` spot-check on 5 randomly-selected Intent-Active names to validate they fit the cohort.
## Output Format
Markdown with:
- `# SOM — {{industry_filter}} × {{geo_filter}}`
- `## Funnel` (table: SAM → minus competitor installs → SOM → Intent-Active)
- `## Top 50 Displacement-Ready` (table: domain | competitor installed | intent score | recency)
- `## Cohort Spot-Check` (5 sampled accounts via `company_firmographic`)
- `## Read` (one paragraph: is SOM densest in {{industry_filter}} or the geo-tail?)
## Quality Checklist
- Competitor subtraction cites `company_technographic` per install
- Intent-Active cut cites `intent_category` recency
- Top 50 is ordered by signal strength, not alphabetical
- Cohort spot-check confirms filters fired correctly