Explainer

What Are TAM, SAM and SOM for B2B Teams?

Three nested numbers: everyone who could buy, everyone you can reach, and the slice you can win. Here is how to count each one.

Get your free API key →Free to start. No credit card. 1,000 records to spend whenever you like.

TAM, SAM and SOM are three nested market sizes. TAM is everyone who could buy. SAM is the part you can reach with your product and team. SOM is the part you can realistically win.

Key takeaways

  • TAM is the ceiling, SAM is the reachable part of it, and SOM is what you can win in a set period. Each is smaller than the last.
  • A B2B market is a list of accounts and the buyers inside them. If you can filter that list, you can count it.
  • Count people for reach and companies for revenue. Multiply accounts by contract value to get dollars.
  • On LeadOcean, count_leads returns a people count for any filter set, and it costs no records.

What it is

TAM is the revenue available if every company that fits your product bought it. SAM is the share of TAM you can serve today. SOM is the share of SAM you can win in the next 12 months.

The three are nested, not separate. SOM sits inside SAM, and SAM sits inside TAM.

Most teams get TAM wrong in the same way: they quote a total from an analyst report and stop. That number cannot be filtered, checked or turned into a call list. A B2B market is different from a consumer one because the buyers are findable. You can list them.

Investors ask for them because they show whether the market is big enough and whether your plan is honest. Sales leaders use them for the same reason in a smaller room: how many accounts exist, how many can we call, and how many can our team work.

How it works

You build the three numbers top down from one filterable list of accounts, then convert accounts to dollars. Each step adds a constraint.

  1. Define a buyer. Write the industry, company size and buyer role that fit your product. Example: sales leaders at software companies with 51 to 500 employees.
  2. Count TAM. Apply only the fit filters, with no geography or channel limits. This is every account and buyer that could use the product.
  3. Count SAM. Add what you can actually serve today: the countries you sell in, the languages you support, the sizes you can onboard.
  4. Estimate SOM. Cut SAM to what your team can work in 12 months. Reps times accounts per rep is a better base than a market-share guess.
  5. Convert to dollars. Multiply accounts by your annual contract value. Skip this step and you have a reach number, not a market size.

Worked example. The contact counts below are mailable people (verified, catch all valid or catch all emails), counted on 2026-10-01. Dollar figures are placeholders for a made-up product from Acme.

StepFiltersMailable people
TAMindustry Software Development4,358,656
SAM+ country US, employeeRange 51-200 and 201-500292,374
SOM pool+ jobFunction Sales & Business Development, jobLevel VP and Director8,157

The SOM pool is the buyer list a small team could work in a year. It is still a people count, not a revenue figure. If Acme sells one seat per company at $12,000 a year, and 900 accounts are in scope, the SAM is $10.8M. Your accounts and price replace those numbers.

Read the table as a funnel. Each row keeps the filters of the row above and adds one. Dropping a filter widens the number, so keep a note of the exact filter set next to every count you publish.

The counts are wider than the final list. They do not use funding, revenue or headquarters filters, which the count tool does not support. Those filters narrow the list further at search time.

TAM vs SAM vs SOM

TAM asks how big the whole market is. SAM asks how much of it you can serve. SOM asks how much you can win. People mix them up because each is a share of the one above.

TAMSAMSOM
QuestionWho could buy at all?Who can we serve today?Who can we win in 12 months?
Limited byProduct fitRegion, size, channelTeam capacity, competition
Typical filtersIndustry, company sizePlus country, languagePlus role, seniority
Who asks for itInvestors, boardProduct and strategySales and marketing
Changes whenThe market movesYou add a region or tierYou hire or retool
Mistake to avoidCounting every companyCounting regions you do not sell inGuessing a percentage of SAM

When it matters

Planning a first outbound motion

SOM decides headcount. If the SOM pool is 8,157 buyers and a rep can work 1,200 a year, you need seven reps' worth of capacity or a narrower list. Count first, hire second.

Raising money or writing a board deck

Investors read TAM as a ceiling and SAM as the plan. Show both, and show the filters behind them. A SAM built from a real account list is easier to defend than a top-down analyst figure.

Entering a new region or segment

Move one filter and recount. Entering a market blind is expensive, and a recount is free. Switching country from US to GB, or adding the 1001-5000 employee range, gives a new SAM in a minute. Compare the two before you commit budget.

Checking whether a market is too small

If SAM is a few thousand buyers, outbound can still work, but you cannot burn through the list. Plan for slower, more tailored sequences and a second segment.

If SAM is a few hundred, sell through partners or account-based plays instead. A cold sequence to every name would use up the market in one quarter.

How LeadOcean handles it

LeadOcean sizes each tier with one filter set. The MCP tool count_leads returns a people count and costs no records. The same filters work on POST /v1/people/search and POST /v1/companies/search.

For a free count over REST, send count=true as a query parameter with limit set to 1. meta.total is capped at 100,000 on this route, so use count_leads for larger markets. For the people filters, the exact enum values come from list_enum_values.

bash
curl -X POST "https://api.leadocean.io/v1/people/search?count=true" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "industry": ["Software Development"],
    "country": ["US"],
    "employeeRange": ["51-200", "201-500"],
    "limit": 1
  }'

The response returns empty data and meta.countOnly: true. Add jobFunction and jobLevel to move from SAM to the SOM pool. When the pool looks right, pull the list from the Exports page in the app at app.leadocean.io, or with POST /v1/exports. Exporting spends records. Counting does not.

Read the pricing page before you export. For sourcing methods, see TAM sourcing and the TAM sizing use case. The hub for this topic is how to size your TAM.

FAQ

What is the difference between TAM, SAM and SOM?

TAM is the whole market, SAM is the part you can serve, and SOM is the part you can win soon. Each is a subset of the one before it. Size them with the same account list and add one constraint per tier.

How do you calculate TAM, SAM and SOM for a B2B product?

Count accounts that fit your product, multiply by annual contract value, then narrow by what you serve (SAM) and what you can work (SOM). Use filters on a real database, not a percentage of an analyst report. The worked example above shows the counts for one segment.

Should I count companies or people?

Count companies for revenue and people for reach. Dollars come from accounts times price. People counts tell you how many buyers an outbound team can contact. Run both when you plan a sales motion.

Is SOM a market share percentage?

It can be, but a capacity estimate is stronger. Reps times accounts per rep times the weeks in the plan gives a number you can check against the SAM. A bare percentage of SAM has no mechanism behind it.

How often should I recalculate them?

Recount when you add a region, change pricing or enter a new segment, and once a year otherwise. The LeadOcean dataset is refreshed monthly, so a recount shows current coverage.

Count your own TAM, SAM and SOM for free

Free to start. No credit card. 1,000 records to spend whenever you like.

Get your free API key →