One reporting view across channels
Emma & Tom’s was running several channels and reporting on them by hand, with numbers that disagreed with the platforms they came from. We connected the measurement so the team could see one truth and decide from it.
Emma & Tom’s
Consumer food and beverage brand
Strategy · Paid Ads · Tracking + Reporting
Multiple active channels, manual and inconsistent reporting
Business overview
Emma & Tom’s markets a consumer brand across paid, organic and owned channels, with decisions about budget made regularly and by more than one person.
Reporting existed. It was assembled by hand each period from several exports, and the totals rarely matched what each platform reported on its own.
What was disconnected
Each channel measured itself, in its own definitions, and the reconciliation happened in a spreadsheet after the fact.
- Different conversion definitions per channel
- Some events double-counted, others missing
- No shared naming or campaign structure
- Manual exports each period
- Totals disagreed with platform figures
- Decisions delayed while numbers were checked
Where it was leaking
Time was the first cost: hours each period assembling a report nobody fully trusted. The second was decision quality. When two channels disagreed, budget followed the more persuasive argument rather than the better return.
Because definitions varied, channels could not be compared fairly. A channel that counted a lighter conversion looked cheaper than one that counted a heavier one.
What we connected
The work started with definitions — what counts as a conversion and what it is worth — because no dashboard can fix numbers that mean different things.
Measurement definitions
One set of conversion definitions, values and naming agreed across every channel.
Layer: Strategy
Tracking rebuilt
GA4 and tag container cleaned up; events de-duplicated and delivered consistently to every platform.
Layer: Tracking + Reporting
Campaign structure aligned
Paid campaigns renamed and structured so channel and campaign comparisons were like for like.
Layer: Paid Ads
One reporting view
A dashboard built around the decisions the team makes each period, replacing the manual report.
Layer: Tracking + Reporting
Shared conversion definitions and values — client-approved artefact.
The reporting view that replaced the manual report.
Growth system layers involved
Three of nine layers were in scope. Website and email were reviewed and left unchanged; they were not the constraint on decision-making.
What improved
Structurally: channels are measured on the same definitions; the report is live rather than assembled; and the platforms, analytics and dashboard agree with one another.
Verified outcomes
Specific performance figures are published only with the client’s written approval. Where approved, they appear here with the period and the metric definition. Otherwise we show the work and what changed structurally — see our proof rule.
Lessons
- Agree definitions before touching any tool
- Name campaigns for comparison, not for the platform
- Build the report around decisions, not available metrics
- One view read by everyone
- Values on conversions so channels compare fairly
- Regular tracking health checks after site changes
Next opportunities
With reporting trustworthy, spend can be moved between channels with confidence. The next constraint is creative direction for prospecting audiences, now that its results can actually be read.
Other connections
Paid traffic connected to product pages and revenue data
Campaigns optimised without reliable revenue signals from the store.
Paid Ads · Website · Tracking · Email
From shared inbox to owned pipeline
Website forms landed in a shared inbox with no routing, ownership or record.
Website · CRM + Automation · Tracking
Local visibility joined to a booking journey
Local search demand arrived on pages that did not guide a booking.
SEO + AI Search · Website · Tracking
Want to know what your own case study would say?
The free growth plan is the first chapter: what is working, what is disconnected and what to fix next.