The Triangulation Stack for Honest Measurement
Every operator eventually hits the same wall: the ad platform reports one revenue number, the store reports another, and the gap between them is wider than the budget you’re trying to defend. The instinct is to pick a “real” number and explain away the rest. That instinct is the mistake. No single source is truth. The honest system is marketing measurement triangulation — running several biased instruments at once and reading the disagreement on purpose.
This is a how-to. By the end you’ll have a four-source stack, a way to reconcile the sources when they fight, and a cadence you can actually run without a data team.
For the neighboring economics, compare Express Checkout Without Going Blind to Your Meta Pixel and use First-Order Break-Even vs LTV-Funded Acquisition: When to Lose to validate the measurement decision.
Why one number is always wrong
Each measurement source has a structural bias baked into how it’s built, not a bug you can patch:
- The ad platform is graded by its own homework. It uses click and view windows, default last-touch logic, and modeled conversions to claim credit. It over-counts demand it merely witnessed.
- Your store/backend knows true settled revenue and true margin, but it’s attribution-blind. It can’t tell you why an order happened, and it folds in organic, brand, and word-of-mouth demand that would have converted anyway.
- Marketing mix modeling (MMM) estimates each channel’s contribution from spend and outcome patterns over time. It’s de-duplicated and privacy-proof, but it’s a statistical estimate with wide error bars, and it lags.
- Lift tests are the closest thing to causal truth, but they’re expensive, slow, and only answer one narrow question per test.
Put differently: the platform tells you what it touched, the store tells you what settled, MMM tells you what correlates over time, and lift tests tell you what was actually caused. Each is a different instrument pointed at the same object. You triangulate because no instrument is calibrated to truth alone — but their errors point in known, different directions.
The four-source stack
1. Platform-reported numbers (fast, biased high)
Treat in-platform ROAS as a directional, intraday signal, not a P&L input. It’s the only source fast enough to catch a creative dying or a delivery break the same day. Use it to manage within a channel — which ad, which audience, which creative is pulling — not to decide how much the channel is truly worth. Strip view-through credit when you can, and standardize the attribution window across campaigns so you’re at least comparing like with like.
2. Store / backend data (slow, the only true ledger)
This is your anchor of total truth. Total settled revenue and blended spend give you MER (revenue ÷ total marketing spend), the number that can’t be inflated by attribution games. Pair it with contribution margin so you’re optimizing for money kept, not revenue booked. MER won’t tell you which channel earned the sale, but it’s the ceiling everything else must reconcile to. If platform-reported revenue across your channels sums to more than your store ever made, the platforms are double-counting — and now you know by how much.
3. MMM (de-duplicated, channel-level)
Marketing mix modeling regresses outcomes against spend over a long window to estimate each channel’s incremental contribution. You don’t need an enterprise vendor to start — even a lightweight, well-specified model run on a year of weekly data gives you de-duplicated channel weights that respect a fixed budget. Its job in the stack is to split the credit that MER refuses to split, without trusting any platform’s self-report. Read it as a slow-moving allocation guide, and never as a same-week tactical signal.
4. Periodic lift tests (causal, narrow, decisive)
This is the tie-breaker. When the platform says a channel is your hero and MMM shrugs, you run an experiment: a geo holdout, a public-service-ad placebo cell, or a matched audience split. You hold spend out of a comparable slice of demand and measure the difference in outcomes. That difference is incrementality — the revenue that wouldn’t have happened otherwise. It’s the only source that survives a skeptical question, which is exactly why you reserve it for your biggest budget decisions.
How to reconcile when they disagree
The point of the stack is the disagreement. Here’s how to read it:
- Anchor on the ledger. Start every reconciliation from store-side MER and margin. That’s the total pie. Nothing downstream is allowed to claim more than this.
- Use the platform-to-store ratio as a discount factor. If your channels’ self-reported revenue sums to, say, 1.6× what the store recorded, you’re looking at roughly that much inflation to deduct. Hold that ratio over time; when it moves sharply, something in tracking or demand mix changed.
- Let MMM split the anchored pie. Apply MMM’s channel weights to the real total, not the platform totals. Now you have a de-duplicated allocation grounded in actual settled revenue.
- Let lift tests overrule both. Where you’ve run a clean experiment, its incrementality number wins, full stop. Use it to recalibrate how much you trust the platform’s self-report and MMM’s estimate for that channel — then carry that correction forward until the next test.
A worked example, in ratios so it travels: platform says a channel returned 4.0× ROAS. MER and the inflation ratio suggest the honest blended figure is closer to 2.5×. MMM attributes a modest incremental share once brand demand is removed. A geo holdout then shows true incremental return of about 1.8×. You don’t average these — you let the most causal source set the truth and treat the others as early-warning instruments calibrated against it.
A cadence a real team can run
You don’t run all four every day. You stagger them by how fast each one moves:
| Source | Cadence | Decision it drives |
|---|---|---|
| Platform numbers | Daily | Creative and audience management within a channel |
| Store MER + margin | Weekly | Total spend envelope and profitability guardrails |
| MMM | Monthly / quarterly | Cross-channel budget allocation |
| Lift tests | Quarterly, rolling | Recalibrating trust in the other three |
This is where keeping a single reconciled view pays off. Bach AI sits across the platform feed and your store data and surfaces the platform-to-store gap as a standing number rather than a quarterly fire drill — so the discount factor and MER drift are visible continuously, and you walk into the monthly allocation call already knowing where the self-reported numbers are lying. (It reads and recommends; the spend decisions stay yours to approve.)
The takeaway
Stop hunting for the one true number — it doesn’t exist. Build the stack instead: platform data for speed, store data for the truth ceiling, MMM to split credit, lift tests to break ties. Anchor every reconciliation on settled revenue and margin, carry a platform-to-store discount factor you actually trust, and let your most recent clean experiment overrule the self-reported optimism. Triangulation isn’t more work for its own sake — it’s the difference between defending a budget with a number you chose and defending it with one you earned.