12 October 20264 min read

Case study: the customers we couldn't see

How an insurer built a single customer and household view, why we hid the matching engine behind our own layer, and why we went live cautious.

By Srini Vankeepuram · Architecture, Engineering, Data & AI Leader

The insurer didn't have a customer problem. It had a recognition problem. A customer with car insurance never heard about home cover, let alone pet insurance, because the business couldn't tell it was the same person, or the same family. Its happiest customers were invisible to it.

What it was costing

The insurer held a huge amount of customer data, full of duplicates. Without one trusted view of each customer and their household, it couldn't market the right product to the right person, and it felt it was losing its own customers to competitors. The bigger loss wasn't the revenue walking out of the door. It was the revenue it could have earned from people who were already happy with it.

Part of something bigger

The single customer view wasn't a standalone project. It was a core service of a new shared digital platform, built once so that many parts of the business could reuse it: for marketing, for customer surveys, and for understanding how the business itself was performing.

Choosing the engine

We evaluated two leading MDM products and an open-source option. In the end, the insurer's existing relationship with one of the vendors sealed the deal. That taught me something early: on a programme like this, the tool matters less than people expect. The hard parts are the data and the people.

Who to trust

Before arguing about matching algorithms, we had to agree which system we trusted. That turned out to be one of the easiest decisions of the programme. The policy system kept the best-quality customer data, and the business agreed straight away, so it became the trusted source for the golden record. We standardised addresses against Royal Mail's address file before trying any clever matching.

The decision that shaped everything

The MDM product was good at matching and searching, but it wouldn't let us customise it the way the business needed. So we made a choice that shaped the whole architecture: we would never expose MDM to the people who used the data.

Instead, we built our own orchestration layer and a consumer data store on top of it. MDM did the matching, merging and householding behind the scenes; our services wrote the single customer view into that store; and every consumer reached it only through APIs and events. Marketing in the MarTech platform, next-best-action decisions, surveys and performance reporting all used our layer, never the engine.

SOURCESMATCHING ENGINEOUR CUSTOMER DATA LAYERCONSUMERSPolicy systemsTrusted sourceOther customer systemsDuplicates, gapsAddress referenceRoyal Mail PAFInternal only, never exposedMDM engineMatching, mergingSurvivorshipBest field winsHouseholdsSame home, same familyScore below 90Data stewardsReview, and sample merges90 or more merges automaticallyservicesOrchestrationOur services, our rulesSingle customer viewConsumer data storeAPIs and eventsThe only way inMarTech platformCampaigns, cross-sellNext best actionWhat to offer nextSurveysCustomer feedbackPerformance analyticsHow the business is doingWHY HIDE THE ENGINECustomise freely, and change MDM without breaking anyoneWHO DECIDESThe business owns the merge threshold; stewards check the results
Logical view: the matching engine stays out of sight, and consumers only ever see our APIs and events

Hiding the engine gave us two things. We could customise freely, because the logic consumers depended on was ours. And we could upgrade or even replace the MDM engine later without breaking a single consumer.

How the data moved

Around that core, each source and consumer got the integration pattern that suited it. Third-party data providers enriched the data through a daily batch feed and an on-demand service. Every change to a customer was published as an XML event, so subscribing systems knew straight away instead of polling. Digital channels and next-best-action decisions queried customers in real time through API services built around the consumer data store. Batch ETL loaded the data lake for analytics and the MarTech platform for marketing. And the data stewards worked in MDM's own screens, resurfaced for their review queue.

SOURCESMASTER DATACUSTOMER DATA LAYERCONSUMERSPolicy systemsTrusted sourceOther customer systemsDuplicates, gapsAddress referenceRoyal Mail PAFThird-party enrichmentDaily feed, on demandInternal only, never exposedMDM engineMatch, merge, survivorship,householdsScore below 90Steward UIMDM screens, resurfacedservicesOrchestrationOur services, our rulesSingle customer viewConsumer data storeAPI servicesQuery a customerEvents (XML)Publish every changeETL (batch)Scheduled loadsDigital channels and appsNext best actionSubscribing systemsNotified of every changeData lakeAnalytics, performanceMarTech platformMarketing campaignsHOW DATA MOVESAPI (real time)Event (XML, publish)ETL / feed (batch)Internal service
Architecture view: the right integration pattern for each source and consumer

The hardest call: when to merge

Most of our arguments were about auto-merging and survivorship. Merge two different people by mistake and you damage both records, and both customers' experience. So the business, not IT, led the decision on where to draw the line, with us advising.

We went live cautious: only matches scoring about 90 or more merged automatically, and everything below went to a small team of data stewards, who reviewed the queue and sampled what the system merged on its own. The thinking was simple. The more you analyse the data, the more comfortable you become with it, so you relax the threshold as confidence grows, not on day one.

You can try the same trade-off yourself in my MDM playground: move the threshold and watch customers merge, or fail to.

What it made possible

  • One trusted view of every customer and their household, with matching rates 21% better after tuning, cleansing and clearer survivorship rules.
  • Marketing could finally target a car customer with home or pet cover, and next-best-action decisions had a real customer to work from.
  • Surveys and performance reporting used the same customer, not three versions of them.
  • Six projects reused the shared platform instead of building their own, and the steering committee named it one of the key reasons the programme succeeded.

What I'd do differently today

I'd add graph-based matching alongside the scoring rules. Relationships (a shared address, a shared phone, a shared policy) say a lot about whether two records are the same person or the same household, and a graph makes them easy to see and explain. I've since built that approach in my own labs.

What I'd tell another leader

  • Start from the business loss, not the data mess. "We can't see our own customers" gets funded; "we have duplicates" doesn't.
  • Agree which system you trust before you argue about algorithms.
  • Keep the product behind your own interface. Consumers should depend on your APIs and events, not on a vendor's engine.
  • Let the business own the merge threshold, start high, and relax it as the data earns trust.
The goal of a single customer view isn't clean data. It's recognising the people who already trust you.

Contact

Let's talk.

I'm based in London, UK. Whether it's a leadership role, an advisory engagement or a transformation that needs shaping — my inbox is open.

srini.vankee@gmail.com
↑