Data Foundation / Data pipelines and dashboards

Every platform reports accurately.

None of them agree.

Ad platforms, analytics, CRM, each telling a slightly different story. We consolidate them into one reporting layer, reconciled, documented, and updated before anyone asks for it.

scroll
How we think

Most marketing teams don't have a reporting problem. They have a consolidation problem.

Every platform has its own dashboard. Each one is accurate on its own terms. None of them reconcile against the others, and none match the CRM. So someone on the team builds a spreadsheet that lines them up, flattens the discrepancies, and produces a version leadership can read.

That spreadsheet is fragile. It misses the cross-market view entirely. When the person goes on holiday, reporting slips. When the business asks a question the spreadsheet wasn't built for, the answer takes three days.

We replace the spreadsheet with infrastructure.

What we build

Marketing data pipelines and dashboards, reconciled into one view.

01 · Custom Schema Design

BigQuery data models, built around business questions.

In a warehouse like BigQuery, all your sources are consolidated into tables. We structure each table around one question: spend by campaign, spend by country, website behaviour, landing page health. The schema is designed backward from the question, not forward from whatever the platform happens to export. Readers know where to look. The dashboard doesn't collapse under the weight of every metric that was technically available.

reporting-schema.sql
Table
Question
Refresh
spend_by_campaign
what did we spend
daily
spend_by_country
where did it go
daily
site_behaviour
what happened next
daily
lp_health
which pages convert
daily
02 · Data Integration Framework

Data joins: what connects, what doesn't.

Some data combines cleanly. Ad platforms to each other, campaigns to countries. Some doesn't. Website analytics rarely joins to ad campaigns with more than a fraction of sessions, and forcing it destroys the rest of the data. Where it should reconcile, we reconcile. Where it shouldn't, we keep it separate in the same dashboard and let the reader filter. The reporting doesn't pretend everything lines up when it doesn't.

what joins, what doesn'tmatch rate
ad platforms96%campaigns · country93%CRM · opportunity85%web analytics22%join threshold · 80%forcing this join would corrupt the other threethree reconciled into one row.one kept separate, filterable
03 · CROSS-PLATFORM STANDARDISATION

Standardised metrics, one definition on every row.

Google counts interactions, Meta counts clicks, LinkedIn won't split conversions by country. Every platform ships its own definitions, and raw comparisons quietly misallocate budget. We standardise fields, metrics, and currencies before the data lands, so a metric means the same thing on every row. What can't be compared is named, not blended.

metric definition
Platform
A view =
Standard
YouTube
30s
≥2s
TikTok
0s
≥2s
Meta
2s
≥2s
LinkedIn
2s
≥2s
04 · Closed-Loop CRM Pipeline Joins

CRM integration, tied to revenue.

Where a CRM is in the stack, we connect it properly. Lead, opportunity, closed deal, matched back to the campaign that generated it. So marketing is judged on real revenue, not just leads. You see which campaigns opened pipeline and which closed deals.

campaign → revenueQ2
leads128pipeline34 · CHF 1.1Mclosed9 · CHF 240kpaid socialsearchLinkedIn ABM
The reconciled view

Each platform tells the truth.
Nobody trusts the same one.

Schema design
The reference table on the right is defined first. Every source lines up to it.
Source joins
When two sources match cleanly, the link is solid. When the match is only partial, we flag it. When it can't be done honestly, we leave it open rather than fake it.
CRM matching
The CRM is what ties the data to real customers. Without it, the right-hand column is just an ad report.
Cross-market view
Each market becomes one comparable row, readable next to the others. Nothing overflows, not the grid, not the dashboard.
Source flow · into reference table4 → 1· 1 friction
schema
joins
crm-sync
markets
Ad platformsGADS · META · LI
clean
AnalyticsGA4
friction
CRMHUBSPOT
anchor
FinanceNETSUITE
partial
reference
One view · reconciled
spend€1.84M
leads12,408
demos3,412
pipeline€8.2M
revenue€2.1M per mkt
4 → 1one row each, no asterisks
What changes on your side

Once the numbers reconcile, the arguments stop.

Reporting the team opens because the numbers are right, not because someone nagged them into opening it.
One cross-market view where Europe and Asia sit in the same schema, not two parallel reporting realities.
A spend-to-revenue view that stands up to finance, not just to the marketing team.
Monday mornings freed up. The spreadsheet, gone.
Start here

Start where the numbers disagree.

Data Foundation Audit

Typically three weeks, scoped to your stack. The deliverable is yours whether we continue or not.

Reply within one working day · Switzerland or Hong Kong
What we map
  • 01Where each source lives and what it reports
  • 02Where the numbers disagree across platforms and CRM
  • 03What reconciles, what doesn't, and why
  • 04The cross-market view that's currently missing
  • 05Prioritised build to a single reporting layer