Back to blog
positioning·6 min read

The spreadsheet trap — why broken prospect data costs you more than you think

A positioning piece on the real cost of stale, generic, list-vendor prospect data — and why the alternative (harvesting fresh from Maps) is so much cheaper than it looks.

Every local-business prospector has a spreadsheet. The spreadsheet has columns for name, address, phone, email, owner, notes. The spreadsheet gets used on Monday, ignored on Tuesday, half-remembered on Wednesday, and exported on Friday. By the third month, half the rows are stale — phone disconnected, owner changed, business closed. By the sixth month, the spreadsheet is mostly fiction.

This is the spreadsheet trap. It’s not that the spreadsheet is wrong, it’s that it’s slowly wrong, in a way you can’t see from the row count.

What the trap looks like

You bought a list of 1,000 local businesses in January. The list was fresh when you got it. You worked through it over the next three months. You converted maybe 50 of them. The other 950 are still in the spreadsheet, getting older.

In April, you look at the spreadsheet again. 950 rows still to work. You start dialing. The first 20 calls hit disconnected numbers — the businesses closed, or moved, or changed their phone system. The next 30 calls hit voicemail boxes that no one checks. By call 100, you’ve burned a day and converted 3. The list looks bad. The list is bad — but it was bad from the start, you just couldn’t tell until the data went stale.

The trap is that the list doesn’t tell you it’s stale. The rows still have names. The phone numbers still have 10 digits. The addresses still parse. From the spreadsheet’s perspective, nothing is wrong. From the dialer’s perspective, nothing is wrong. From reality’s perspective, most of the list is fiction.

What it costs

The cost of stale prospect data is not just the bad rows. It’s the time you waste believing the bad rows.

If a rep spends 8 hours dialing 100 rows and 60 of them are stale, the cost is:

  • 4.8 hours of dial time on rows that will never convert.
  • The rep’s morale — the sixth disconnect in a row is a real psychological hit.
  • The pipeline forecast — if the manager doesn’t know 60% of the list is stale, they’ll forecast 50 conversions from a list that will yield 5.

Multiply that by the size of the team. An agency with 10 SDRs, each spending 4 days a week on stale lists, is burning 32 rep-days a week on rows that don’t work.

Why list vendors make it worse

The instinct is to buy a fresher list. The problem is that list vendors refresh quarterly at best, and their refresh rate is opaque — you don’t know if the list you got is 30 days old or 200 days old. The list vendor doesn’t tell you, because telling you would mean admitting that some of what you paid for is now stale.

You can pay for a “real-time” list from some vendors. The pricing is per-row, the refresh rate is per-call (the vendor hits the API every time you dial), and the per-row cost can be $0.50 to $2.00. A 1,000-row list at $1.00 per row is $1,000, every time you want to make sure the data is fresh. Do that weekly and you’re spending $4,000 a month on data refresh alone.

This is the trap’s industrial version: the data goes stale, the vendor offers a “fix” that costs more than the original list, the rep’s time is still wasted.

What the alternative is

The alternative is to harvest fresh. Leadline reads Google Maps in your browser and saves the rows into your list as they exist right now. The phone number is the one on the Maps panel today. The website is the one that resolves today. The hours are the hours shown today.

When you harvest a neighbourhood, the rows are fresh by definition — they came out of Maps within the last few minutes. When you call them this morning, the data is hours old, not months.

If the data does go stale (you harvested it three weeks ago and have been dialing slowly), you don’t need to buy a new list — you re-run the harvest on the same region and Leadline dedupes against what you already have. New rows come in, existing rows are kept, stale rows stay where they are until you delete them.

The per-row cost of a harvest is essentially zero (the bandwidth of fetching Maps cells, which is on the order of single-digit kilobytes). The per-row cost of a list vendor is $0.50 to $2.00 plus the risk of staleness.

What the maths looks like

A 1,000-row harvest takes 20–40 minutes. If your time is worth $50/hour, that’s $20–35 of operator time. The output is 1,000 fresh rows.

The same 1,000 rows from a list vendor: $500–1,000, plus the risk that 30–60% of them are stale by the time you call them. The expected value is 400–700 actually-callable rows for $500–1,000.

A harvest is 5–10x cheaper per usable row.

What this is not

A few honest things:

  • Not an argument against buying lists. Some lists are useful — if you’re targeting a vertical you can’t harvest (B2B SaaS decision-makers, for example, aren’t on Google Maps), a list is your only option. The argument is against relying on lists for local business prospects, where Maps is the source of truth.
  • Not an argument against ever using a CRM. A spreadsheet is the trap. A CRM is the fix. Leadline syncs to CRMs that have an API (HubSpot, Pipedrive, etc.) via webhook. The CRM is where the post-harvest workflow lives.
  • Not a promise that harvest data is perfect. Maps has its own staleness — businesses that closed in the last week may still appear. Phone numbers can be wrong. The harvest is fresher than the list, not perfect.

How to start

The pattern that works:

  1. Pick one neighbourhood, one zip, one vertical. Don’t try to harvest the whole city on day one.
  2. Run the harvest. Clean the half-rows. End up with 100–300 fresh rows.
  3. Dial the list over the next week. See what your conversion rate looks like.
  4. Repeat on the next neighbourhood.
  5. After two months, you’ll have 2,000–3,000 fresh rows, harvested in batches, each one recent enough to dial without a refresher.

This is the workflow that escapes the trap. It is also slower than buying a list. That is the point — the slowness is what keeps the data fresh.

Where to go next

If you’re ready to start, install the extension and harvest one neighbourhood.

If you want to read more:

  • Harvest a neighbourhood — the step-by-step for the workflow above.
  • Email lookup — for getting the email after the harvest.
  • Solo vs Team — for whether to upgrade when the team starts sharing the list.

The spreadsheet trap is real. The fix is not a better spreadsheet — it’s harvesting fresh, batch by batch, and never trusting a list that’s older than the harvest that produced it.

#positioning#decision-guide#workflow