Back to Blog

Why "No Data" and "No" Should Never Look the Same in Your Lead List

The most dishonest character in a B2B dataset is a blank cell, because it usually means two opposite things at once. We gave ours three meanings instead of one, and it changed how much you can trust every filter you build.

The Problem Hiding in Every Empty Cell

Open almost any B2B lead list and find a blank cell, say, the "uses Google Analytics" column for some business. What does that blank tell you?

It tells you nothing, and that's the problem. It could mean the data provider checked the website and confirmed there's no analytics installed. Or it could mean they never managed to read the site at all, it was down, it was behind a bot wall, it rendered everything in JavaScript their scraper couldn't run. Two completely different facts, written down as the exact same character: nothing.

You'd think this is a footnote. It isn't. It's the quiet flaw that makes most enriched lead data less useful than it looks, because the filters you actually care about are the ones it breaks.

Your Best Filters Are Negative Ones

Think about how you actually prospect with enrichment data. The valuable queries are rarely "find businesses that have X." They're the negatives:

  • Find businesses with no analytics, they're not measuring anything, so a marketing pitch lands.
  • Find businesses with no SSL, a concrete security problem to fix.
  • Find businesses with no email marketing platform, they're leaving repeat revenue on the table.
  • Find businesses with no booking system, every appointment is still a phone call.

Every one of those is a "find the gap" filter. And every one of them depends entirely on what a blank means. If "no analytics" might secretly mean "we couldn't read the site," your list is now a mix of real prospects and sites you simply failed to measure. You email them all. The ones that already have analytics, you just couldn't see it, reply with some version of "we already do this," and your credibility takes the hit.

"You can only safely filter on the absence of something you actually checked for. A blank that might mean 'we didn't look' can't be filtered on at all."

Three States, Kept Strictly Apart

So we refused to let a blank mean two things. Every enrichment field in Lyre Leads is one of exactly three states, and we never collapse them:

A value. We checked, and it's there. For a yes/no field that's Yes; for a platform field it's the actual name, Shopify, HubSpot, Calendly.

A confirmed absence. We checked, and it's genuinely not there. This shows as No for a boolean or None for a platform field. This is a real finding, it's the thing your negative filters live on.

Unknown. We never got a clean look, the site was unreachable, blocked our request, or wasn't enriched yet. This is the only thing a blank is allowed to mean.

The difference between state two and state three is the whole game. "Confirmed absent" is a fact you can build a campaign on. "Unknown" is an open question you shouldn't be guessing about. Mashing them together is the single most common way lead data lies to you, and it does it silently.

The Master Key for Every Blank

To make this readable rather than theoretical, every lead carries an Enrichment Status field, and it's the key to interpreting any blank in that row:

If the status is enriched, a blank on a checked field is a confirmed finding, we looked, it isn't there. If the status is unverifiable, no_website, failed, or pending, a blank means unknown, don't read anything into it. One field tells you, for the entire row, whether silence means "absent" or "we don't know yet."

This is also why we let you filter by that status directly. Want only leads where the data is trustworthy enough to act on the gaps? Filter to enriched and your negative filters become reliable. It's a small thing that quietly fixes a large class of bad outreach.

Knowing Where Every Value Came From

Honesty about whether we know something naturally extends to honesty about how we know it. So every value also carries its provenance, the source it came from and how confident we are.

An email pulled from a page's structured data (a mailto: link or schema markup) is more trustworthy than one scraped out of visible page text, which is in turn more trustworthy than a guess, so we don't guess at all, and we tell you which of the first two you're looking at. A DMARC record read straight from DNS is a hard fact; a framework inferred from a JavaScript signature is a strong heuristic. Both are useful; they're just not equally certain, and pretending otherwise helps no one.

If you want to see the whole model laid out field by field, what every column means, its type, and exactly which source feeds it, we publish it openly in our data dictionary. It's generated straight from the live export, so it can't drift from what you actually receive.

Why This Is Worth Caring About

It's tempting to file all of this under "engineering hygiene." But the payoff is entirely practical, and it shows up in three places.

Your filters get trustworthy. When "no analytics" reliably means "we checked and there's none," a negative filter produces a clean prospect list instead of a coin flip. The same logic powers our AI lead scoring, a model is only as honest as the signals you feed it, and a three-state signal won't quietly tell it a business lacks something we simply never measured.

Your outreach gets sharper. The whole appeal of enrichment is opening with a specific, true fact about the prospect. That only works if the fact is actually true. An MSP pitching a "missing security setup" needs the gap to be real, which is exactly the discipline we wrote about in spotting unmanaged IT infrastructure from the outside.

Your trust compounds. The first time a prospect replies "we already have that," you start second-guessing the whole list. Data that's honest about its own limits is data you keep using.

The Standard We Hold Ourselves To

There's a version of lead data that optimizes for looking complete: fill every cell, round every unknown down to "no," and ship a spreadsheet with no blanks in it. It demos beautifully and it betrays you on the first campaign.

We took the other path. A blank in a Lyre Leads export means one thing and one thing only, unknown, and there's always a field that tells you why. Confirmed absences are marked as such, because they're findings worth acting on. And every value tells you where it came from. It's less flattering than a wall of green checkmarks. It's a lot more useful when you're the one sending the emails.

Prospect on Data That's Honest About Its Own Limits

Search any niche and city, and every result is enriched with 50+ data points, each one honestly three-state, each one carrying its source. Filter on real gaps, not on blanks that might mean nothing. Free plan includes 500 tokens.

Start free, no credit card required
Share: