Multi-million pound leads, sacrificed on the altar of data purity.

I can’t name names. Client confidentiality and all that. But I need to tell you about something that’s completely and totally astonished me, although in fairness, it perfectly encapsulates everything wrong with how software can get built.

We have a client. A significant client. Multi-million-pound turnover, decades-long established business, the works. They recently invested in a shiny new CRM system. And when I say shiny, I mean dazzling. The marketing was superb. The sales team were slicker than a Monaco yacht deck after a champagne spillage. The demos sparkled. The promises soared.

Sadly though, in my not so humble opinion, built by idiots.

Is that harsh? Perhaps. But hear me out and judge for yourself.

This client, like most companies, lives and dies by leads. When they win a customer, that customer can stay for a decade. Over that period, a single client can generate well in excess of £1 million in revenue. You’d think, therefore, that leads would be treated like gold dust. That even the faintest whiff of interest, a half-completed form, a garbled phone number, a misspelt email, would be captured, flagged, cherished, and pursued with the dedication of a truffle pig in a French forest.

You’d think that. But you’d be wrong.

Because the software developers who built this CRM don’t think in terms of million-pound relationships. They think in terms of data purity.

Dedicated acolytes in the church of the clean database

Here’s how it works in practice. A potential customer, let’s call them Mr Million-Pound-Prospect (triple-barrelled surname so clearly loaded), arrives at the website, likes the cut of their jib and fills out the contact form. They’re busy. They’re interested but distracted. They type their phone number slightly wrong. Maybe they omit the area code. Maybe they add a second number, just to be helpful. Maybe they write “call after 2pm and ask for big Dave” because they’re trying to make sure they actually get the call.

In the real world of business, this is valuable information. A human being looked at your website, decided they were interested enough to make contact, and gave you multiple ways to reach them. That’s a good thing.

In software developer logic? That’s an illegal phone number. Illegal phone numbers have no place in a pure database. And data that isn’t pure isn’t fit to be saved.

So the form submits. The enquirer sees a friendly “Thank you for your interest!” message. They go about their day, confident that someone will call them back.

And the lead itself? It simply vanishes. Silently. Completely. As if it never existed.

No error message. No alert to the sales team. No “hey, we got a dodgy phone number but here’s everything else.” Just… nothing. A million pounds, evaporated into the digital ether, sacrificed on the altar of data purity.

“Yes, but that’s how it works”

When I discovered this, and I should mention this was just one example from a litany of similar issues, I assumed our mutual client would be apoplectic. I assumed there would be strongly worded emails. Contractual discussions. Hands in the air like they very much did care.

Instead, they shrugged. “Well,” they said, “they’ve told us that’s how it works. So that’s how it needs to be.”

I genuinely didn’t know what to say. I still don’t, really.

This is a company that employs dedicated salespeople. That invests eye-wateringly high sums in marketing. That agonises over conversion rates and cost-per-lead metrics. And they’ve accepted that their CRM, the system specifically designed to capture and nurture those leads, will silently discard potential customers who don’t fill in forms correctly.

The disconnect

Here’s what I think happens. Software developers, and I say this as someone who’s been writing code for over 25 years, can become so enamoured with elegant systems, clean architectures, and pure data models that they forget what the software is actually for.

A phone number field that only accepts perfectly formatted UK numbers is, from a technical perspective, beautiful. It’s clean. It’s consistent. It makes the database a joy to query. Every record matches the same pattern. It’s a work of art.

It’s also catastrophically, fundamentally stupid when the purpose of that field is to help a business contact potential customers.

Because real people don’t think in regular expressions. Real people write “01625 424216 (call before lunchtime)” and expect that to work. Real people are busy, distracted, and typing on their phones while walking. Real people, and this is the crucial bit, are the ones who will be giving you money.

What should happen

In a sane world, that CRM would do one of several sensible things.

Accept the wonky phone number and flag it for human review. Send an alert saying “We got a lead but the phone number looks odd.” Store the data anyway and let the sales team figure it out.

Any of these would be acceptable. All of them would preserve the lead. None of them were implemented.

Because of preserving the precious data purity.

This is what happens when software is built by people who’ve never had to make a sale, never had to chase a lead, never had to explain to a client why the phones aren’t ringing. It’s what happens when technical elegance is prioritised over practical utility. It’s what happens when nobody in the development team stops to ask “but what is this software actually for?”

A modest proposal

If you’re building software, or buying software, or implementing software, here’s a radical suggestion. Make failure visible.

If something goes wrong, tell someone. If data doesn’t match your precious schema, save it anyway and flag it.

And if you’re evaluating a new system, don’t just look at the happy path. Don’t just marvel at the slick demos and the beautiful dashboards. Ask what happens when something goes wrong. Ask where the failures end up. Ask whether the system prioritises clean data over actual business outcomes.

Because somewhere out there, there’s a database so pure, so pristine, so beautifully normalised, that it contains absolutely no customers at all.

Return to articles