Why build your TAM?

What a real market list changes for outbound, product and fundraising.

Antique double-hemisphere world map

A TAM you can open in a spreadsheet gives every go-to-market decision a denominator. Sales can see how many accounts are left to work, and an investor can audit your market claim down to the row. That is why I build it as a list of named companies and treat the headline figure as a by-product of that list.

The next chapter pins down the vocabulary. This one makes the case for spending the time. Throughout, say you sell scheduling software to private nursery groups in France. Every figure below is invented for the example.

Which questions a list answers and a slide can’t

Question Without a list With a list
Who do we contact this week? Whoever a rep found on LinkedIn this morning The next uncontacted accounts in the top tier
Do we have enough market for a second rep? An opinion Uncontacted accounts divided by what one rep can open per month
Should we build the multi-site view? The last customer who complained A count of target accounts with several sites
Is this campaign working? A reply rate with nothing to compare it to Results by segment, and the share of each segment already contacted
Can this segment carry our revenue plan? A percentage of a figure from a report Accounts, win rate and contract value, multiplied

Everything in the right-hand column needs only a handful of fields per company. You don’t need a perfect file to get those answers, and a rough one already beats the left-hand column.

Outbound finally knows how much market is left

Reply rates tell you how a message performs. They say nothing about how long you can keep sending it. Say your file holds 1,900 companies, 420 of them in tier A, and one rep can open about 60 new accounts a month. The runway is one formula:

=COUNTIFS(Accounts!F:F,"A",Accounts!G:G,"not contacted") / (new_accounts_per_rep * reps)

With 420 untouched accounts, one rep has seven months of tier A work. A second rep cuts that to three and a half. So hiring the second rep also means deciding what you will say to tier B from month four, and you can have that conversation before the hire.

The list also fixes things that cost you quietly. Customers, open deals and people who asked not to be contacted get flagged once, and every campaign excludes them. Two reps stop working the same account. Each row carries columns you can segment on, so you can write to groups with ten sites or more with a message that only makes sense for them. The outbound chapter builds those sequences segment by segment.

Old sepia map of a coastline

Product can count who a feature serves

Roadmap debates tend to be settled by whoever spoke last. With the file you can count. In the example, 130 of the 420 tier A accounts run five sites or more, so a multi-site planning view concerns 31% of your best segment. You can put that number next to the build estimate and have a real trade-off.

It works in the other direction too. A vertical that sounds exciting in three customer interviews may hold 40 companies in total, which you want to know before you build a module for it. The same file shows how accounts spread across size bands, and that tells you which pricing tier most of your market would land on.

Fundraising gets a claim you can defend

An investor who has read a hundred decks discounts any market figure lifted from a research report. A count they can trace is harder to dismiss.

What an investor asks Where the answer sits in the file
How many companies could buy? Rows in scope
How big is that in euros? Sum of estimated contract value per row
Why this segment first? Tier split, plus win rate by tier from your CRM
How long before you run out of accounts? The runway formula above
Where does the data come from? The source and last_checked columns

The file can also hurt, and that is its value. In the example, 1,900 accounts add up to about €10.9M of annual contract value. That may be a very good business to bootstrap and a hard story to tell a venture fund. You want to find out before the first partner meeting. The sizing chapter goes from accounts to revenue in detail.

Old map of the Eastern Hemisphere

When the work isn’t worth it

A full TAM build is the wrong project in a few situations:

  • Your whole market fits in your head. Below roughly fifty target accounts, a shared sheet filled by hand in a morning does the job.
  • You sell self-serve to a huge number of small buyers. If nobody will ever contact them one by one, size the market by segment and put the time into product and acquisition channels.
  • You have no customers yet. Your ICP is still a guess. Build a rough list of a hundred accounts to test it, and keep the heavy work for after your first deals.

Count the upkeep as well. Companies close, merge and change size, so the file only stays useful if someone owns it.

A first version in a day

Pick one segment and pull the raw list. I use Derrick for this step, and since I co-founded it, weigh that recommendation accordingly. For the nursery example, Import Companies by NAF Code takes an activity code such as 88.91A, optionally narrowed to one département, and queries the French SIRENE registry. Each company comes back with its name, SIREN and SIRET, number of open establishments, headcount band and address, at 1 credit per company imported. You can run it from the web app, the Google Sheets sidebar, the API or an AI assistant over MCP.

It has clear limits. It only covers France. A NAF code is a declaration, so it puts associations and commercial groups in the same bucket, and in sectors like software it says very little about what a company really does. You will need other filters on top.

The same starting point is public if you prefer to do it yourself. Download the SIRENE dataset on data.gouv.fr and filter it on a code from the INSEE activity nomenclature. Check the terms of whichever source you use. Outside France, start from your national company registry or a B2B database export.

By the end of the day you want a sheet that looks like this, with a fictional row for illustration:

company siren open_sites headcount_band department status
Crèches Exemple SAS 000000000 7 12 69 not contacted

Your next step: write down the one decision this list has to inform next quarter, since that decides which columns you collect first. Then pull your best customers out of billing and move on to defining the ICP from real customers.