A firmographic template is a sheet with one row per company and one column per firmographic attribute. That’s the whole idea.
In 2021 my boss asked why a campaign had worked, and I couldn’t answer. My account list had three columns: Company, Contact, and a Notes field full of lines like “big-ish, manufacturing, seemed keen.” No bands. No industry field. No country.
So I rebuilt the sheet over one weekend. Here’s the firmographic data template that came out of it, column by column.
📌 TL;DR: 17 columns in four groups (identity, size, location, scoring), plus three housekeeping columns. Two dropdowns, four formula columns (employee band, revenue band, fit score, tier), one summary block. Fill it by hand, or fill columns C to L in one enrichment run. It doubles as a firmographic segmentation template.
What Goes in a Firmographic Data Template?
One row per company, and one column for each firmographic attribute you segment by. Firmographic data describes an organization rather than a person: industry, employee count, revenue, location, age, ownership type. For the definition proper, with more firmographic examples, read what firmographic data is first. This article is the sheet.
Because firmographic segmentation isn’t a theory problem. It’s a columns problem. You can only group by the firmographic variables you stored.
Every column here sits in one of four groups, the organising idea of the whole build:
- Identity: who the company is. Name, domain, industry, founded year, company type, LinkedIn page.
- Size: how big it is. Employee count and revenue, each with a band column beside it.
- Location: where it sits. HQ country and HQ city.
- Scoring: what you calculate yourself. A fit score and a tier.
Then three housekeeping columns: where the row came from, when you last checked it, and a Notes field.
One boundary is worth naming. Firmographic data describes the COMPANY, not the person who works there (demographic), not the software it runs (technographic).
But firmographic and technographic data get along fine in one file. Same rows, different columns. I’m covering the tech-stack side in technographic data in Google Sheets.
Enough framing. Here’s the sheet.
The Template: 17 Columns, Defined
The firmographic data template starts with a header row. Copy the line below, paste it into cell A1 of a blank sheet, then run Data → Split text to columns → Comma:
Company Name,Domain,Industry,Employee Count,Employee Band,Annual Revenue,Revenue Band,HQ Country,HQ City,Founded Year,Company Type,LinkedIn URL,Fit Score,Tier,Source,Last Verified,Notes
Seventeen columns, A through Q. Here’s what each holds, who fills it, and the trap that comes with it:
- A. Company Name: the legal or trading name, written the way the company writes it. You fill this. Pick one form and stick to it.
- B. Domain: the website domain, no https:// and no www. This is your join key: everything else can be looked up from it. Only have domains? A company name from domain lookup fills column A.
- C. Industry: one label per company, picked from a closed list. Want a real taxonomy behind those labels? NAICS from the US Census is the standard.
- D. Employee Count: a number, never a range. Ranges go in column E. A number can be re-banded later; a range can’t.
- E. Employee Band: a formula column, and the formula is in the next section. Don’t type in it, ever.
- F. Annual Revenue: a number, in ONE currency. And be honest here: private-company revenue is an estimate everywhere, ours included. Filling it in bulk has its own company revenue lookup walkthrough.
- G. Revenue Band: another formula column, same logic as E. Type in it once and the column breaks.
- H. HQ Country: one country per row. Multinationals get their headquarters, plus a second sheet if you track regions.
- I. HQ City: the headquarters city, useful for events and territory splits. Skip it if you never sort by city.
- J. Founded Year: four digits, and a decent proxy for maturity. A 1974 manufacturer buys differently than a 2023 startup.
- K. Company Type: public, private, non-profit, or government. Four options, one dropdown, done.
- L. LinkedIn URL: the company page, not somebody’s personal profile. It’s the fastest manual check when a row looks wrong.
- M. Fit Score: a formula column that scores each row out of 100 against your ideal customer.
- N. Tier: a formula column that turns that score into Tier 1, Tier 2 or Tier 3.
- O. Source: where the row came from (event, inbound, list, referral). This is the column everyone forgets and everyone later wants.
- P. Last Verified: the date you last checked the row. Type it with Ctrl+; on Windows, or Cmd+; on Mac. Never use =TODAY() here.
- Q. Notes: free text, and the one place in this sheet where free text is allowed.
Notice how few columns you actually type. Four are formulas, three are yours, the rest lookups.
💡 Pro Tip: Every typed column gets a dropdown. "Software", "software" and "SaaS" are one segment to you and three to a spreadsheet. Free text is how a segmentation sheet dies.
So that’s the schema. Now let’s make columns E and G fill themselves.
How Do You Turn Employee Counts and Revenue Into Bands?
Use an IFS formula that converts each number into a band label. Put this in E2, then drag it down:
=IFS(D2="","",D2<11,"1-10",D2<51,"11-50",D2<201,"51-200",D2<1001,"201-1000",D2<5001,"1001-5000",TRUE,"5001+")
And this one goes in G2, then down column G:
=IFS(F2="","",F2<1000000,"Under $1M",F2<10000000,"$1M-$10M",F2<50000000,"$10M-$50M",F2<250000000,"$50M-$250M",TRUE,"$250M+")
IFS reads condition-and-result pairs left to right, then stops at the first true one. Google’s IFS function reference has the full syntax.
That first argument matters more than it looks. Because D2=”” catches blank rows and returns blank, instead of dumping every blank into your smallest band.
Now the honest part: these thresholds are conventions, not laws.
Say 80% of your customers sit between 40 and 90 employees. That “11-50 / 51-200” split then hides your whole business inside two buckets. So move the numbers.
Moving them means editing the formula. Swap D2<51,"11-50" for D2<40,"Under 40" and carry on with your own cut points. Bands are market segmentation applied to companies, so the boundaries should match YOUR customers.
📌 Example: My 2021 list had a Notes column that said "big-ish, manufacturing, seemed keen." → 17 columns, two dropdowns, one weekend. → The pattern showed up in ten minutes: 200-1,000 employees, industrial, DACH. Same accounts, different columns.
Bands tell you how big a company is. They don’t tell you whether it’s worth calling. That’s the next column.
How Do You Score Company Fit in the Same Sheet?
Add points for the attributes your best customers share, then band the total. Here’s a 100-point model for M2:
=IF(COUNTA(C2,E2,G2,H2)<4,"",IF(REGEXMATCH(LOWER(C2),"software|saas|information technology"),40,0)+IF(OR(E2="51-200",E2="201-1000"),30,0)+IF(OR(G2="$10M-$50M",G2="$50M-$250M"),20,0)+IF(REGEXMATCH(LOWER(H2),"united states|canada|united kingdom|germany"),10,0))
Then N2 turns that number into something a rep can sort by:
=IFS(M2="","",M2>=80,"Tier 1",M2>=50,"Tier 2",TRUE,"Tier 3")
The weights: industry 40, size 30, revenue 20, geography 10. And those numbers came from our closed-won accounts, not from a rulebook.
So swap them. Put your own industries in the REGEXMATCH list and your own countries in the geography test. The COUNTA guard refuses to score a row missing any of the four inputs.
This is where firmographic targeting stops being a slide and turns into a filter. Sort by column N, and your ideal customer profile becomes a list. That’s ICP scoring at its simplest, and firmographic segmentation doing real work.
Once Tier 1 is defined, you have a shape to copy. That’s when it’s worth going to find similar companies and adding rows that look like your winners. And when the sheet outgrows formulas, lookalike list software runs the same copy-the-winners step across companies and the buyers inside them.
One warning, though. A fit score is a sorting tool, not a verdict; Tier 3 companies still buy.
How Do You Set Up the Dropdowns and the Warning Colors?
Use data validation for the typed columns and conditional formatting for the stale rows. Two minutes each.
Dropdowns for Industry and Company Type
Select column C, open Data → Data validation → Dropdown, and paste your industry labels in. Repeat for column K. Google’s in-cell dropdown guide walks through the dialog.
Why bother? A closed list makes every future filter exact. Free text means cleaning the same column twice a year.
A Color Warning for Stale Rows
Select A2:Q, open Format → Conditional formatting → Custom formula is, and paste this:
=AND($P2<>"",TODAY()-$P2>180)
Pick a background color, and any row you haven’t checked in six months turns that color. Google’s conditional formatting help page shows where the custom-formula option lives.
That one rule is your cheapest defence against data decay. Companies hire, move and get acquired while your sheet sits still.
The Duplicate Flag
Drop this in column Q, or a spare column while you clean. It flags any domain appearing twice:
=IF(B2="","",IF(COUNTIF($B$2:$B,B2)>1,"duplicate",""))
Domains catch duplicates that names never will. “Acme Ltd” and “ACME Limited” look different; acme.com doesn’t.
The Summary Block
Park these four formulas above the data, or off to the right. They answer what people ask in meetings:
- Rows in the list:
=COUNTA($A$2:$A) - Industry coverage:
=IFERROR(COUNTA($C$2:$C)/COUNTA($A$2:$A),""), formatted as a percentage. - Tier 1 count:
=COUNTIF($N$2:$N,"Tier 1") - Companies in a band:
=COUNTIF($E$2:$E,"51-200")
For anything past those four, use a pivot table. Count by industry, by band, by country, in four clicks.
The sheet is built. The problem? It’s empty, and nobody wants to type 400 rows.
How Do You Fill the Template Without Typing It All?
Run a company enrichment service on your domain column and let it write the firmographic fields. But the honest version first.
Columns A, O, P and Q are yours forever. No tool knows where a row came from, or what you promised.
Everything between C and L, though, is lookup work, and that’s what an add-on is for. Business firmographic data lives in four places, your firmographic data sources: a company’s own site, its filings, its LinkedIn page, and enrichment databases. I weighed up the database option in firmographic data providers.
Here’s the run, using the CUFinder add-on:
- Install the add-on. Get the CUFinder add-on from the Google Workspace Marketplace.
- Copy your API key. Open your CUFinder dashboard and copy the API key from there.
- Enter the key in the add-on. Paste it once, and the connection is set.
- Pick the service. Open the add-on from the Google Sheets menu. It opens as a right panel listing all the enrichment services. Choose Company Enrichment, which takes a company name or domain and returns the firmographic profile. Only have names? Run Company Name to Domain first to fill column B.
- Map columns, set the range, run. Set the input column to B, the output column, and the row range (rows 2-401 for my rebuilt list). Then run it.
Now the sequencing rule, the bit nobody writes down. Enrich FIRST, then let the formula columns resolve themselves.
Columns E, G, M and N fill the instant C, D, F and H have values. You never touch a formula column:
→ domains → firmographics → bands → fit score → tier
And the limits, plainly. Some rows come back blank, because no provider matches every company. Private revenue stays an estimate. Credits get consumed, and coverage varies by region and size.
So test 20 rows before you run 400. The longer walkthrough is in my company enrichment in Google Sheets guide. And if your list arrives as an exported file, CSV enrichment covers that round trip.
A Worked Example: 5 Rows, Before and After
Say your sheet starts here. You have names and domains, and the firmographic columns are empty:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Company Name | Domain | Industry | Employee Count | Employee Band |
| 2 | Vireo Analytics | vireoanalytics.com | |||
| 3 | Kestrel Machining | kestrelmachining.com | |||
| 4 | Larkfield Foods | larkfieldfoods.com | |||
| 5 | Nordvent Systems | nordventsystems.com | |||
| 6 | Solvana Health | solvanahealth.com |
Then I picked Company Enrichment, set the input column to B, set the output columns beside it, and ran rows 2 to 6. One run filled industry and headcount. Column E had been waiting with a formula in it:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Company Name | Domain | Industry | Employee Count | Employee Band |
| 2 | Vireo Analytics | vireoanalytics.com | Software | 84 | 51-200 |
| 3 | Kestrel Machining | kestrelmachining.com | Industrial Machinery | 310 | 201-1000 |
| 4 | Larkfield Foods | larkfieldfoods.com | Food Production | 1450 | 1001-5000 |
| 5 | Nordvent Systems | nordventsystems.com | Manufacturing | 27 | 11-50 |
| 6 | Solvana Health | solvanahealth.com | Healthcare | 620 | 201-1000 |
Look at what happened. The run wrote columns C and D. The formula in column E wrote itself the moment column D had numbers.
And the same run filled revenue and HQ country off-screen to the right, so the fit score and the tier resolved at that same instant. Five rows, five tiers, no typing.
Happy with the test? Change the range to rows 2-401 and run the real list.
What Mistakes Kill a Firmographic Sheet?
Free text, stored ranges, mixed currencies, and a Last Verified column that rewrites itself. I’ve shipped every one of these:
- Free text where a dropdown belongs. “Software” and “software” become two segments, and your biggest category splits in half.
- Storing ranges instead of numbers. Type “51-200” into column D and you can never re-band it. The number is the asset; the band is just a view.
- Mixing currencies in the revenue column. One euro row inside a dollar column and the bands become fiction. Pick one currency, or add a column for the original figure.
- Using =TODAY() in Last Verified. It rewrites itself on every open, so every row claims to be fresh forever. Type the date instead.
- Scoring before the data is in. A fit score built on three filled columns is noise wearing a number. That’s why the formula demands all four inputs.
- Never re-running. Firmographics move. Companies hire, raise, get acquired and relocate, and your sheet won’t notice.
🔍 Did You Know? =TODAY() recalculates every time the file opens, so a Last Verified column built on it will always claim today. Type the date instead: Ctrl+; on Windows, Cmd+; on Mac.
FAQ: Firmographic Data Templates
What is an example of firmographic data?
Industry, employee count, annual revenue, HQ country and company type are all firmographic data. In this template they’re columns C, D, F, H and K. Each describes the business itself, and each is something you can filter and count.
What does firmographic data mean?
Firmographic data means the attributes that describe a company rather than a person. Think size, sector, location, age and ownership. It’s the business equivalent of demographics, and it turns a list of company names into segments you can act on.
What is an example of a firmographic segment?
Software companies with 51-200 employees, headquartered in Germany. That’s one segment, and it’s a filter across three template columns: Industry, Employee Band and HQ Country. Add Revenue Band and it gets tighter.
What is the difference between demographic and firmographic data?
Demographic data describes people, and firmographic data describes companies. Age and job title are demographic. Employee count and industry are firmographic. B2B teams track both, but only the company fields belong here, because one row is one company.
What are firmographic and technographic data?
Firmographic data is what a company IS, and technographic data is what it runs. Industry, headcount and revenue are firmographic. CRM, hosting and analytics tools are technographic. Different columns, same sheet, and you can score on both.
What is another word for firmographics?
Company attributes, company profile data, or business demographics. The wording shifts by team. Some people call one finished row a firmographic profile. The label matters less than the habit: everyone fills the same columns the same way.
What are the 4 types of customer data?
Commonly demographic, firmographic, technographic and behavioral data. I say commonly because the lists differ by source; some swap behavioral for intent or transactional. This template covers the firmographic set, the one B2B segmentation runs on.
Build the Sheet This Afternoon
Seventeen columns. Two dropdowns. Four formulas. That’s a firmographic data template, and it’s an afternoon of work.
You can fill it by hand from company websites, annual reports and LinkedIn, and it works fine. Or point one run at column B and go make coffee.
My weekend rebuild answered a question I’d been stuck on for months. It took ten minutes once the columns existed, and it had been sitting in the data all along.
So that’s firmographic data in Google Sheets, start to finish. The rest of the folder, data enrichment in Google Sheets, covers emails, phones and tech stacks. Tell me in the comments: which column do YOU wish you’d added first?