Case studiesCase study

The business that stopped arguing with its own numbers.

A UK business sold online and advertised in all the usual places, and its marketing data lived in a dozen separate systems. Each had its own login and its own version of the truth. We pulled the lot into one warehouse on the company’s own server, built the reports on top, and added an AI analyst that shows its working.

Before

A dozen

systems, each telling its own story

After

One

warehouse, on the company's own server

History

To 2016

backfilled, refreshed every night

Personal data

None

pseudonymised before it lands

The situation

Like most businesses that sell online, this one had collected marketing platforms the way a shed collects tools. Analytics in one place, advertising in another, search data somewhere else, email in a fourth. A dozen systems in all, each with its own login and its own numbers. The online store said one thing about revenue and the analytics said another, both with equal confidence.

Cross-channel questions were the real cost. Anything that linked spend to outcome, such as what a campaign actually earned, meant exporting from several systems and stitching the results together by hand. So those questions mostly went unasked.

What we did

Every marketing source was connected through its official interface: the advertising accounts, the analytics, the search consoles, the online store and the email platform. A job runs each night and pulls everything into a single warehouse of about twenty tables, with history backfilled as far as each source allows. Advertising data reaches back to 2019 and email campaigns to 2016.

Some platforms restate their own history, and advertising figures can shift for up to thirty days after the event, so each source has its own re-fetch window and late revisions arrive on their own. When a sync fails, the failure is recorded and shown on a status page. Nothing gets silently swallowed.

The most valuable decision came out of reconciling the sources. The analytics platform turned out to be missing a material share of real orders, thanks to consent refusals and ad blockers, plus corporate customers who pay by invoice. It was also counting ghost transactions from orders that had been cancelled. So the warehouse treats the store’s own records as the truth about revenue, and analytics as evidence of behaviour only. Every report is built on that rule.

And no personal data sits in the warehouse at all. Customer emails are reduced at the door to an anonymised fingerprint, enough to recognise a repeat purchase without storing an address, and data from the email platform is held to a stricter rule still: IDs, dates and statuses only. The whole thing runs on the company’s own hardware, behind its own secured remote access. There is no third-party service holding a copy.

What they got

On top of the warehouse sits a reporting suite in the company’s own branding, used from a browser:

  • A status page showing every data source and when it last synced
  • Four data explorers: search, traffic, advertising and revenue
  • Five live reports that export as branded PDFs, from the full picture down to email impact
  • A tracker for the email list: growth, churn and why people leave
  • A read-only query console, with a library of saved questions for the recurring ones
  • Charts drawn in the company's own brand, straight from the warehouse

The AI analyst

This is one of the builds with AI inside, and it earns its place: the whole point of the warehouse is answering questions, and plenty of good questions arrive in plain English. A chat page lets anyone ask the data what they want to know.

We built it to be checked. The analyst can only read from the warehouse, its briefing bakes in the caveats we learned during the build, including which figures to trust for revenue, and every answer shows the exact query it ran and where each number came from. Ask it a question, then look at its working.

What turned up

The point of plumbing is what flows through it. Within days of the data landing in one place, the project had put a number on exactly how many real orders the analytics was missing, settled a long-running advertising experiment against actual outcomes, and traced a two-year-old traffic decline to the day the cookie-consent banner went live.

None of those answers needed new data. They needed the data the business already had to be in one queryable place.

The honest column

Two things belong on the other side of the ledger. The data refreshes overnight, so the suite answers with yesterday’s numbers. For marketing decisions that is plenty; anything that needs the last five minutes wants a different tool. And a self-hosted system needs a human who keeps it fed and patched, which is a real running cost to count against the savings.

It is also the largest build we’ve written up. Most of what we make is far smaller. This is what the same approach looks like when a business has a dozen systems’ worth of weight to lift at once.

Do your own numbers agree with each other?

Tell us where they differ. We’ll tell you honestly what pulling them into one place would take, and what it would cost.