
Is Number of Leads a Good Pipeline Metric?
A bought list of 50,000 contacts is a photograph of companies that have already moved. How fast it rots, why a category filter can never find a buyer, and what to do with the budget instead.
Someone drops a file into Slack. leads_q3_final_v2.csv. Fifty thousand rows. Rocket emoji. Two colleagues add fire.
Then a rep opens it. First row: a Head of Marketing who left in 2023. Second row: hard bounce. Third row: a company that got acquired eighteen months ago and now redirects somewhere nobody on the list has heard of.
We put it like this internally: the number of leads is not the same thing as a job well done. That sounds like a slogan. It's closer to arithmetic.
The list was already old when you bought it
Every contact record is a claim about the world at one specific moment. This person, this title, this inbox. The world keeps going after the claim gets written down.
The US Bureau of Labor Statistics puts median job tenure at 3.9 years, the lowest reading since 2002, and reports that 22 percent of workers had been with their employer for a year or less. Those are the people answering your emails.
The figure the industry quotes for the resulting rot is 22.5 percent a year, which HubSpot took from MarketingSherpa. I went looking for the sample size and the methodology and couldn't find either, so treat it as a rule of thumb rather than a law of physics. It does land in the same neighbourhood as the labour statistics, which do show their work.
Apply it to fifty thousand rows and the shape is easy to see.
Three years in, half the file is fiction. And raw reachability is the flattering version of this story. Only a slice of any bought list matches your ICP, and Ehrenberg-Bass reckons only about 5 percent of companies are shopping in a given quarter.
Three hundred and eighty-eight. Out of fifty thousand. The file doesn't tell you which ones, so the plan is to email all of them and find out.
You did not buy fifty thousand leads. You bought a haystack and a rumour about a needle.
Smaller lists get more replies
Here's the bit nobody believes until they run it themselves. Woodpecker's 2026 benchmark roundup breaks reply rates down by how many prospects a campaign targets:
| Prospects in the campaign | Average reply rate |
|---|---|
| Under 50 | 5.8% |
| 50 to 200 | 4 to 5% |
| 200 to 500 | Around 3% |
| 500 to 1,000+ | 2.1% |
Same roundup: real personalisation, meaning something past dropping a first name into a template, averages 17 to 18 percent replies against 7 to 9 percent for basic or none.
The list isn't underperforming because it's big. It's underperforming because attention doesn't scale. A rep has the same amount of care to give on a Tuesday whether the file holds fifty rows or fifty thousand.
And volume is not free
Google treats you as a bulk sender past 5,000 messages a day to Gmail addresses, and wants your spam complaint rate held below 0.3 percent. At that volume, 0.3 percent is fifteen people. Fifteen taps of the spam button from strangers who never asked, and you're over for the day. When it goes wrong you don't just lose the campaign. You lose the domain that also carries your proposals and your renewals.
HubSpot's Anti-Spam Policy, section 2.1.1, leaves a door open but not a wide one: "You are strictly prohibited from using the HubSpot Services to directly contact recipients from purchased, rented, borrowed, or other third-party lists, including email append services or enrichment services lists in violation of applicable laws or third-party terms."
And if you sell into Europe, GDPR Article 14(3)(a) says that when you collect personal data from somewhere other than the person, you have to inform them within a month. Read that again with the CSV open. Your first contact with those fifty thousand people is legally supposed to be a privacy notice. Ask a lawyer about that one, not us.
Two things get called a lead list
They aren't the same product, and the difference is where the rows came from. The first kind runs on filters. Industry code, headcount band, country, maybe a tech tag if you pay for the tier. It answers one question: does this company belong to a set?
Fine question. It's just a question about what a company is, and the answer sits still for months. It also gives the same answer to everybody else, so three vendors selling into "B2B SaaS, 100 to 500 people, Nordics" buy the same filter and get the same rows, and one poor VP of Sales collects three near identical emails in a fortnight.
The second kind runs on signals. Something happened, recently, on the public record:
- They raised. A round arrives with a plan attached, and the plan has a budget and a deadline.
- They're hiring into the team you sell to. Three open SDR roles is a company telling you what it's about to try.
- Someone in the buying group posted about the problem. On LinkedIn, in public, with their name on it.
- Something changed. A new market, a new VP, or a new tool in the stack that you happen to integrate with.
Filters describe a company. Signals describe a moment, and a moment is the only thing anyone can sell into. No filter finds the companies that are shopping this quarter, because being in the market isn't an attribute of a company. It happens to one, usually for a reason you could have read about that week.
Which also means a signal tells you when. Interest has a half-life, and a company that raised last month is a different prospect from the same company next spring.
It also decides whether the rep has anything to say. A row reading "Software, 250 employees, Stockholm" can't be personalised, only decorated. A row reading "posted last Tuesday about their CRM being a graveyard" writes its own opening line.
What we do instead
You ask in normal language, the way you'd ask a colleague:
Find 10 property management companies in the Nordics with at least 50 employees. Exclude any we already have in the CRM.
Spiich goes and looks. This morning, not last spring. It finds the decision makers and ranks them, pulls a reason to reach out from hiring signals, recent news and LinkedIn activity, drafts the opener off that research, and writes the records into HubSpot, Attio, Pipedrive or Salesforce, already checked against what you have.
Then the part that matters more than the prompt: stop typing it. Set the criteria once, pick the signals that count for your product, choose a time, and a background agent runs it on a schedule. Every morning at eight it goes looking, checks against the CRM, and either writes the records straight in or parks them in a queue for someone to approve. Your call which.
Freshness stops being a thing somebody remembers on a Monday and becomes a property of the system. Which is the whole argument in one line: the decay curve above only bites data that sits still, and none of it applies to a record created this morning.
| The lead record | Bought list | Spiich |
|---|---|---|
| How it was chosen | A filter your competitors also bought | A signal with a date on it |
| When the data was true | Unknown, and unknowable | This morning |
| Overlap with your CRM | Discovered by an angry rep | Excluded before import |
| Cadence | One purchase, then decay | A run every morning |
| Rep's first hour | Cleaning the file | Talking to someone |
Put a better number on the dashboard
Whatever you measure is what you get, so if "leads added" is the headline metric, someone will eventually solve for it with a credit card and a CSV. Nobody has ever been promoted for the size of a file.
Three numbers we'd rather see on a RevOps scoreboard:
Rows do nothing for any of them. Context does.
Fifty thousand contacts is a big number. It's also a number about storage.
Ten leads with a reason beat fifty thousand rows
Spiich finds the accounts that match your ICP and researches why to call them today. Set the criteria once and a background agent runs it every morning, straight into HubSpot, Attio, Pipedrive or Salesforce.
See how Spiich works →