TAM list: how to build a clean total addressable market list

Ask a founder for their TAM and you'll usually get a dollar figure from a pitch deck. Ask an SDR team and they want a spreadsheet of companies they're allowed to call. I think most TAM problems start when a team builds the spreadsheet with pitch-deck logic: a broad category, a big number, and no rules for which rows belong.
The short answer: A TAM list is every account that fits your ideal customer profile, stored as named companies with a domain and firmographics, and deduplicated against your CRM. It's a list of accounts, separate from the market-size number. To build one, turn your ICP into filters, pull accounts from more than one source, normalize names and domains, test coverage against your CRM, and refresh on a schedule. TAM sourcing in Bitscale handles the pull and the whitespace check against your CRM, then syncs the accounts.
What a TAM list is
Total addressable market (TAM) gets used for two different things, and I keep them apart:
- The TAM number: how much revenue exists if every company that could buy your product did. It lives in board decks and fundraising memos.
- The TAM list: the account universe behind that number, one row per company. Territories, outbound and ABM run off it.
When someone asks you to "define TAM" for a sales team, they almost always mean the second. A usable row carries a display name, a matching name, the company's primary domain, HQ country, an industry code, an employee range, the technologies you care about, a parent account if there is one, its CRM status (customer, open opportunity, owned, or whitespace), the source it came from and the date it was last checked.
A tighter list beats a bigger one. In a 2025 Gartner survey of B2B buyers, 73% said they actively avoid suppliers who send irrelevant outreach. A loose TAM puts reps in front of companies that were never going to buy, and those buyers remember it.
TAM vs SAM vs SOM: a worked calculation
TAM, SAM and SOM are three nested cuts of the same account list. I'd build all three in accounts first and convert to revenue last, because account counts can be checked against real data and revenue estimates can't.
| Layer | What it counts | Account formula | Revenue formula |
|---|---|---|---|
| TAM (total addressable market) | Every company that fits your hard ICP filters | Accounts left after industry, geography, size and business-model filters | TAM accounts × annual contract value (ACV) |
| SAM (serviceable addressable market) | The part of the TAM you can sell to today | TAM accounts minus those you can't serve (region, language, tech stack, compliance) | SAM accounts × ACV |
| SOM (serviceable obtainable market) | The part of the SAM you can win in a set period | Accounts you can work in the period × opportunity rate × win rate | SOM accounts × ACV |
Filled example
As an illustration only. These inputs are made up to show the math. A company sells a RevOps tool at $20,000 a year to B2B software companies in the US and UK with 200 to 2,000 employees. The product only integrates with Salesforce and HubSpot.
| Step | Input | Math | Result |
|---|---|---|---|
| TAM accounts | B2B software, 200–2,000 employees, US and UK | Count after hard filters | 12,000 |
| TAM revenue | ACV of $20,000 | 12,000 × $20,000 | $240M |
| SAM accounts | Runs Salesforce or HubSpot | Count after the stack filter | 4,800 |
| SAM revenue | Same ACV | 4,800 × $20,000 | $96M |
| Accounts worked this year | Team capacity | Reps × accounts per rep | 1,600 |
| Opportunities | 15% of worked accounts | 1,600 × 15% | 240 |
| SOM accounts (wins) | 25% win rate | 240 × 25% | 60 |
| SOM revenue | Same ACV | 60 × $20,000 | $1.2M |
In this example the SOM is 60 of 4,800 serviceable accounts, or 1.25%. I like building SOM bottom-up from capacity and conversion because every input can be checked against last year's CRM data. A top-down "we'll win a slice of the market" figure can't be checked.
Copyable template
Copy this into a sheet and fill in your own inputs. Take the opportunity and win rates from your CRM, and use the last 12 months if you have them.
| Line | Your input | Formula | Your result |
|---|---|---|---|
| A. TAM accounts | Count of accounts after hard ICP filters | ||
| B. ACV | Average first-year contract value | ||
| C. TAM revenue | A × B | ||
| D. SAM accounts | A minus accounts you can't serve today | ||
| E. SAM revenue | D × B | ||
| F. Accounts worked per year | Reps × accounts each rep can work | ||
| G. Opportunity rate | Opportunities ÷ accounts worked | ||
| H. Win rate | Closed-won ÷ opportunities | ||
| I. SOM accounts | F × G × H (never more than D) | ||
| J. SOM revenue | I × B |
One sanity check before you trust line A: compare it with an official count. The US Census Bureau's Statistics of U.S. Businesses counts firms by industry and enterprise size every year (the latest data is for 2022). If your TAM for one industry and size band is far larger than the Census count, your filters are loose or the list is full of duplicates.

How to build a TAM list, step by step
This is the TAM sourcing process I'd run. The order matters most in steps 4 and 5: normalize and dedupe before you pay to enrich anything.
1. Write your ICP as filters
A TAM boundary has to be testable by data. "Mid-market SaaS companies that care about pipeline" isn't a filter. "Software companies, 200 to 2,000 employees, HQ in the US or UK" is.
Split your ICP into two groups:
- Hard filters decide whether an account is in the TAM at all: industry, geography, employee range, business model.
- Soft filters decide SAM and priority: tech stack, hiring, funding, leadership changes and other signals.
My co-founder Sanket showed why company size has to be a hard filter. He pulled 1,000 GTM engineer job posts off LinkedIn through Bitscale and ran every job description through AI. At companies under 50 people, nearly 90% of those roles were pure outbound outreach under a new title. At companies with 1,000+ people, that dropped under 40%. The same job post meant a different thing at a different size, so a "hiring" signal only works once size is fixed. His line on it: "If you haven't nailed your ICP, no GTM engineer hire fixes that."
2. Add firmographic and technographic filters
Firmographics (industry, headcount, revenue band, location) give you the TAM. Technographics (what software a company runs) usually give you the SAM, because they decide whether your product can plug in. For a deeper look at stack data and where it comes from, see our guide to technographic data.
3. Pull accounts from more than one source
No single source covers every market. Pull from at least two, keep each source's raw export untouched in its own tab or table, and record which source each row came from. When two sources disagree on a field later, you'll need to know which one to trust.
4. Normalize company names, brands and domains
This is where most TAM lists fall apart, and it's the step behind the question "how do I normalize brand and product names from a mixed list?" My rules:
- Use the registrable domain as the primary key (example.com, lowercase, no "www", no path). Names change and get misspelled. Domains are far more stable.
- Keep two name fields. Leave the display name alone, and build a matching name that strips legal suffixes (Inc, Ltd, GmbH), punctuation and extra spaces.
- Keep an alias table for brands. When a list mixes a parent company, its brands and its products, map each alias to one parent domain and keep the alias as a separate field.
- Map product names to vendors for technographics. "HubSpot CRM", "Hubspot Marketing Hub" and "hubspot" are one vendor. Store the vendor, and keep the product name as detail.
- Standardize location and industry codes. Store ISO country codes next to the display value, and map free-text industries to one taxonomy such as NAICS.
5. Dedupe and test coverage against your CRM
Before you switch TAM data providers, or load a new list, run a duplicate-and-coverage test. I think it's the cheapest hour you'll spend on the whole project. Salesforce's State of Data and Analytics report found that data and analytics leaders estimate 26% of their organization's data is untrustworthy, so assume your CRM has problems until you've measured them.
The test:
- Count duplicates in your CRM first. Group accounts by normalized domain and count the groups with more than one record.
- Pick a sample. Take a few hundred known accounts: customers, closed-won and open opportunities.
- Run the sample through each vendor. Record the match rate, how many key fields come back filled, and where the vendor disagrees with your CRM on industry or size.
- Count the net-new. How many in-ICP accounts does the vendor return that your CRM doesn't have? That's your whitespace.
- Check for vendor duplicates. One company returned as three records will inflate your TAM.
If a new provider matches your known accounts poorly, it'll match your unknown ones poorly too. In Bitscale, whitespace mapping runs step 4 against your CRM for you.
6. Enrich the accounts and find the people
Only now enrich the missing fields and find contacts. If you enrich before deduping, you pay to enrich duplicates. To get from accounts to the right people inside them, see our playbook on how to find decision-makers.
For contact data, I'd use several providers. When I looked at 1M+ email lookups on our platform over a few days in October, no single provider found more than about a quarter of the emails, and about 3 in 10 came from the 4th provider or later. The #1 provider for Europe wasn't the #1 for North America.
7. Sync to your CRM and set a refresh cadence
Push only accounts that pass your required fields. Tag each with its tier and territory, plus the source and a TAM version. Then refresh on a schedule. Markets move faster than most teams assume. In one quarter (April to June 2026), Companies House recorded 192,287 new UK company incorporations and struck 156,515 companies off the register, which held 5,516,377 companies at the end of June. I'd refresh fast-moving segments monthly and stable ones every quarter. And retest your data providers every few months as well, because coverage drifts.
TAM build checklist
- ICP written as hard filters (industry, geography, size, business model)
- Soft filters set for SAM and priority (stack, signals)
- Two or more sources, raw exports kept untouched
- Registrable domain as the primary key
- Matching name, alias table and vendor map for technographics
- CRM duplicate count done before any import
- Coverage test run on a sample of known accounts
- Enrichment only after dedupe
- Tier, territory, source and TAM version on every synced account
- Refresh date on the calendar, plus a provider retest
Where TAM data comes from
| Source | Good for | Watch out for |
|---|---|---|
| Official registries (Companies House in the UK, Census statistics in the US) | Legal names, registered status, official counts for sanity checks | No work emails or phone numbers. Census data is aggregated counts, with no company names |
| B2B company databases | Fast filtering by firmographics and technographics | Coverage varies by region and segment, so test on your own accounts |
| Your CRM and product data | Customers, exclusions, ownership, closed-lost history | Duplicates and stale domains, so dedupe first |
| Websites and job posts | Hiring signals, product lines, tech clues | Needs parsing, and the same signal means different things at different company sizes |
| Multi-provider enrichment | Filling gaps that one database misses | Needs a clear rule for which source wins when fields conflict |
If you'd rather hand the whole build to someone else, our guide to list building services compares services with doing it yourself in a tool.
Common TAM list mistakes
- Treating the TAM number as the list. A $240M market estimate tells a rep nothing about whom to call on Monday.
- Joining on company name. "Acme", "ACME Inc." and "Acme Software Ltd" will become three accounts unless you key on the domain.
- Enriching before deduping. You pay for the same company more than once, and conflicts multiply.
- Mixing parent and subsidiary logic. Decide whether you sell to the site or the group, then model parent accounts the same way everywhere.
- Assuming one vendor covers everything. Coverage changes by region, so measure it on your own accounts.
- Building once. A TAM that isn't refreshed slowly fills with closed companies and missing new entrants.
How long it takes to build a TAM list
How long does it take to get a usable account universe from a new TAM vendor? The pull itself is the fast part, as long as your ICP is already written as filters. What decides when the list is usable are the steps after the pull: normalizing names and domains, the CRM coverage test, and agreeing the exclusions with sales.
So I'd ask a new vendor to run your sample of known accounts before you sign. That way the clock starts with your gaps already measured. Most of the delay in TAM projects comes from finding out late that a source doesn't cover a key region.
How Bitscale helps with TAM sourcing
This is the gap we built TAM sourcing in Bitscale to close: the pull, the CRM check and the sync usually live in three tools, and the list breaks every time it moves between them. Here's what it does, per our product pages:
- Filter a 40M+ company database by headcount, industry, revenue band and geography, plus technographic filters for the stack your product plugs into. Save the definition as a segment that updates as the market changes.
- Whitespace mapping compares your TAM against your CRM to show which accounts you haven't touched, and you can split it by region or book of business.
- Tiering by fit and signal combines an ICP score with buying triggers (we track 15) so the TAM is ranked instead of flat.
- Find the buying committee at each account, with contacts run through one email and phone waterfall across 18+ contact-data providers and 150+ data sources overall. We see 95% email coverage after enrichment.
- Push to CRM by tier, with tier and territory fields filled. Sync is two-way for HubSpot (Growth plan) and Salesforce (Booster plan), and writes back only the fields that changed.
- Ready-made playbooks for common list builds, and GTM engineer support on every paid plan, with a dedicated engineer on Enterprise.
| Plan | Price | Credits |
|---|---|---|
| Free | $0 | 200 |
| Growth | $349/mo ($314 annually) | 15K/mo |
| Booster | $799/mo ($719 annually) | 50K/mo |
| Enterprise | from $15K/yr | Custom |
Pricing is per account, actions are unlimited on paid plans, and credits roll over up to 3x.
Frequently asked questions
What is TAM sourcing?
TAM sourcing is the work of turning your ICP into a clean list of named accounts: filtering companies by firmographics and technographics, merging sources, normalizing names and domains, deduping against your CRM, and refreshing the list on a schedule.
How do I build a total addressable market map using account and company data?
Write your ICP as hard filters, pull matching companies from two or more sources, key every account on its domain, and tag each one with industry, size, region and CRM status. Then group the accounts by segment and territory to see coverage and whitespace.
How long does it take to get a usable account universe from a new TAM vendor?
The filtered pull is fast once your ICP is written as filters. Normalizing and the CRM coverage test take longer, and so does agreeing exclusions with sales. Ask the vendor to run a sample of your known accounts before you sign so the gaps show up early.
Is it worth running a CRM duplicate-and-coverage test before switching TAM data providers?
Yes. Count duplicate domains in your CRM, then run a sample of known accounts through each vendor and compare match rate, filled fields and net-new in-ICP accounts. A provider that misses accounts you already know will miss new ones too.
How do you normalize brand and product names from a mixed list?
Key each company on its registrable domain, build a matching name without legal suffixes or punctuation, and keep an alias table that maps brands and products to one parent domain. For tech stack data, map product names to the vendor and keep the product as detail.
How do you define TAM for a B2B sales team?
For a sales team, TAM is the set of accounts that pass your hard ICP filters, such as industry, geography, employee range and business model. SAM narrows it to accounts you can serve today, and SOM to the ones you can realistically win this year.
Sources
Bitscale first-party data and product pages
- Sanket, Co-founder at Bitscale, LinkedIn post, October 12, 2026: 1,000 GTM engineer job posts pulled through Bitscale; nearly 90% outbound roles under 50 people, under 40% at 1,000+ companies
- Abhinay, Co-founder at Bitscale, LinkedIn post, October 12, 2026: 1M+ email lookups; no single provider above about a quarter of emails; about 3 in 10 from the 4th provider or later
- Bitscale TAM sourcing product page (opened November 2, 2026)
- Bitscale pricing
Statistics and official data
- Companies House: Incorporated companies in the UK, April to June 2026 (published July 30, 2026; opened November 2, 2026)
- US Census Bureau: Statistics of U.S. Businesses (opened November 2, 2026)
- Salesforce: Data and analytics trends for 2026 (opened November 2, 2026)
- Gartner: 61% of B2B buyers prefer a rep-free buying experience (June 25, 2025)
Explore Bitscale
Find decision makers, more insights and contact information about this company on Bitscale
Abhinay is the CRO and Co-Founder of Bitscale. He drives revenue strategy and go-to-market, helping B2B teams build scalable outbound motion using AI-powered enrichment and automation. Abhinay has a sharp focus on pipeline quality over volume, and his thinking on modern outbound has shaped how hundreds of sales teams approach prospecting. He writes about what actually works in GTM — no fluff, just signal.
Read other blogs
All Blogs
AI data enrichment: how it works, 10 examples and what it costs
What AI data enrichment is, how it differs from database lookups, 10 worked examples with risks, and a real cost per 1,000 rows. Know when not to use AI.

Best LinkedIn email finder tools in 2026 (free and paid, compared)
Compare 10 LinkedIn email finder tools on free limits, price and accuracy, plus what's legal and how to pick between an extension and a bulk waterfall.

Claude for sales: what actually works for reps and managers (2026)
How to use Claude for sales: 7 jobs it does well for reps and managers, example prompts, where it falls short, and how to connect your CRM and verified data.
