Why campaign-level ROI tracking fails in most marketing teams
The single most common reporting mistake I've seen in 2025–26 client audits: teams report platform-reported ROAS (Meta says 4.2x, Google says 3.8x) and treat those numbers as truth. They are not truth. Platform ROAS double-counts conversions that multiple platforms claim credit for, ignores the cost of creative / agency / tooling, and in most cases overstates contribution by 25–60% versus true incrementality. The result: budgets inflate on "winning" campaigns that, in reality, are producing less profit than the dashboard shows. This tracker uses MER (Media Efficiency Ratio) — total revenue divided by total spend — as the primary truth metric, with platform ROAS as secondary context.
MER has three advantages over platform ROAS: (1) it cannot double-count conversions because the numerator is all revenue, not platform-attributed revenue, (2) it includes fixed costs (creative, agency, tooling) that platform ROAS ignores, (3) it aligns with finance's view of the business. Finance doesn't care what Meta says its ROAS was. Finance cares whether total marketing spend produced more revenue than it cost, including all overhead. MER is the shared truth metric.
MER benchmarks by business type (2026)
| DTC ecommerce mature ($5M+ revenue) | 3.0–4.5x MER | At steady-state spend |
| DTC ecommerce scaling ($2–5M) | 2.2–3.2x MER | Investment mode tolerated |
| B2B SaaS mature ($10M+ ARR) | 3.5–5.0x MER | Over 12-month LTV window |
| B2B SaaS early stage ($1–5M ARR) | 1.8–2.8x MER | Payback over 18–24 months |
| High-ticket coaching / services | 4.0–8.0x MER | Higher margins justify higher MER |
| Marketplace / platform | 2.5–4.0x MER | Account for take rate |
| Subscription media / content | 2.0–3.0x MER | Payback 4–8 months |
The target MER question: what should yours be?
Target MER is a function of gross margin, customer repurchase rate, and cash runway. A DTC brand with 60% gross margin and 35% 90-day repeat rate can operate at 2.5x MER indefinitely. The same brand with 30% gross margin and 15% repeat rate needs 4.0x+ MER to be profitable. The formula is: Target MER = 1 / (gross margin × (1 + LTV multiplier)) where LTV multiplier is your expected repeat value as a fraction of first purchase. Most teams set target MER based on gut or comparison to "what we did last year," which drifts further from profitable as unit economics shift.
Tracking campaigns at three levels of granularity
Campaign-level tracking should happen at three levels: (1) blended MER across all channels weekly — the finance truth, (2) channel-level MER monthly — Meta MER vs Google MER vs TikTok MER, (3) campaign-level platform ROAS daily for operational optimization. Most teams invert this — they report platform ROAS daily, channel MER quarterly, and blended MER never. Fix that inversion and reporting quality jumps dramatically.
| Blended MER | Weekly, leadership review | Total revenue / total spend |
| Channel MER | Monthly | Includes platform-specific costs |
| Campaign platform ROAS | Daily | Operational optimization |
| Creative-level platform ROAS | Weekly | Fatigue + scaling decisions |
| Cohort LTV vs CAC | Monthly | True profitability measure |
What belongs in spend: all of it, or you're lying to yourself
MER accuracy depends on including all costs. A common understatement: teams include only paid media spend in the denominator, excluding creative production ($15–40k/month for a scaling DTC brand), agency fees ($5–30k/month), platform tools ($2–10k/month Klaviyo, Triple Whale, Northbeam, etc.), and internal marketing salaries ($20–100k/month fully loaded). Including all of it is the honest view. At $200k/month in ad spend plus $60k/month in creative + agency + tools, your true MER denominator is $260k, not $200k. The 4.5x MER on ad spend drops to 3.5x MER on total marketing cost. The lower number is the right one.
Campaign lifecycle: launch, scale, plateau, kill
Most campaigns follow a predictable lifecycle: (1) Launch week — data is noisy, hold judgment; optimize budget allocation minimally. (2) Week 2–3 — signal emerges; campaigns either hit target MER or fall 30%+ below. (3) Week 4–6 — scaling window; if MER is at or above target, raise budget 15–30% per week. (4) Week 7–12 — plateau; MER drift downward is normal as the campaign saturates its best audience. (5) Week 13+ — decay; MER typically falls below target. Kill and replace. The teams that get in trouble are the ones that ignore the plateau-to-decay transition and keep spending. A campaign that hit 4.2x MER in week 5 and drifts to 2.1x MER in week 14 needs to be killed, not saved.
The weekly campaign review ritual
- Pull blended MER last 7 days vs previous 7 days vs target.
- List top 5 spending campaigns with platform ROAS, CPA, and trend (up / flat / down).
- Flag campaigns below kill criteria for 3+ consecutive days. Kill or pause immediately.
- Flag campaigns above target for 7+ consecutive days. Scale budget 20–30%.
- Review creative performance on top campaigns — hook/hold/CTR/CVR scorecard.
- Plan next-week spend with shifted budget. Document changes in shared doc.
- End-of-month reconcile channel MER vs finance-reported revenue to catch tracking drift.
Related tools
- Ad Spend ROICalculate net ROI on any paid ad campaign — revenue, ad cost, margin, br…
- UTM BuilderBuild clean, consistent UTM-tagged URLs for GA4, HubSpot, and every ad p…
- Attribution CompareCompare first-touch, last-touch, linear, and position-based attribution …
- Payback PeriodMonths to recoup CAC from gross margin dollars — the core unit-economics…
Incrementality testing: the truth-check every team should run
Platform ROAS is modeled; incrementality is measured. Run a geo holdout or PSA test at least once per year on each major paid channel to validate that platform-reported ROAS reflects real incrementality. The methodology: pause the channel in a matched-pair test geography for 4 weeks; measure the revenue delta vs the control geography; divide by the spend in the control to get true incremental ROAS. Most tests reveal platform ROAS overstates incrementality by 25–60%. That haircut gets applied to budget allocation decisions — if Meta overstates by 40%, your 4.2x platform ROAS is really 2.5x incremental. Plan accordingly.
| Meta incrementality haircut | 30–45% | Average across 12 tests I ran |
| Google Search incrementality haircut | 10–20% | Brand-term queries inflate self-report |
| TikTok incrementality haircut | 40–60% | Self-report least reliable |
| LinkedIn incrementality haircut | 15–25% | B2B sales cycle lag masks signal |