We're on track to hit 84% of our Q2 sales target with 11 days to go — but France creative is showing fatigue.
Amazon is carrying us at €38 CPA (target €60). Meta GB is our hero — €41 cost per sale at scale. France needs a creative refresh — frequency hit 4.31, audience is seeing the same ad too often. NL Search is paused (price war with retailers). DSP retargeting just went live.
Q2 Pacing — W14 to W21
27 Apr – 25 May 2026
Sales (QTD)
1,832
of 2,187 target
83.8%355 to go
Spend (QTD)
€144k
of €179k planned
80.6%11 days left
Blended CPA (W21)
€80
avg cost per sale
↓ €14 better than W20 (€94)
Action Needed
2
items below
FR fatigue · NL price parity
Funnel Health · How each stage is performing
TOP → MID → BUC — each stage has its own job
📡 TOP — Awareness
Reach cold audiences.
Build the future retargeting pool. Mostly off-Meta — Radio + DOOH live in NL.
Reach (30d)1.4M
CPM <€10€8.94
🎯 MID — Consideration
Drive traffic & cart adds.
Warm audiences click through — feeding the BUC retargeting pool with high-intent users.
Link CTR >1.5%3.91%
CPC <€0.50€0.23
💰 BUC — Conversion
Close the sale.
Always-on. Hot audiences. This is where we measure CPA & ROAS — the real bottom line.
Where the spend is going · Where the sales are coming from
Spend by channel · 30-day window
Total €58k Meta + €8k Google + €7k Amazon
Sales by channel · W21
Amazon dominates volume; Meta dominates spend
Channel scorecard · W21 (19–25 May)
Channel
W21 Spend
W21 Sales
CPA
QTD CPA
Status
🛒 Amazon AMS
€6,670
162
€41
€38
Strong
📘 Meta
€6,387
32
€200
—
FR fatigue
🔍 Google SEA
€3,314
17
€195
—
NL paused
📡 DSP Retargeting
€548
0
—
—
Just live
AI Insights
Auto-generated alerts and observations based on live data
⚠️
France creative is wearing out
People in France have seen our ads 4.3 times on average — past the fatigue threshold of 4.0. CTR has dropped from 1.8% to 1.24%. CPA is creeping up. Refresh creative or expand audience before performance gets worse.
✅
UK is our scale opportunity
3516a GB delivers €41 per sale — well under the €60 target. Frequency is healthy (3.0). Adding budget here will add ~7 more daily sales without hurting efficiency.
⏸️
NL Search paused — wait for price parity
Amazon, Bol & Coolblue are running price promos. We pulled NL Shopping to avoid wasting spend until our pricing is competitive again. Expect re-activation when retailer promos end (estimated W23).
🎯
Q2 pacing: achievable if we hold the line
11 days left. Need 355 more sales. If Amazon and Meta maintain pace, we'll hit ~95% of target. DSP recovery is upside.
📊
Hidden gem: FR Performance Max
3123 FR PMax (Google Ads) is delivering at €16.62 CPA — the best CPA in the entire portfolio. It's currently under-resourced at €30/day. Doubling budget could add ~90 sales/month.
📉
FR Proposition Test inconclusive
3528 ran 8 days with only 3 purchases — well below the 50-conversion significance threshold. Don't draw conclusions. Either re-launch with more budget or accept the test is inconclusive and reallocate €100/day.
Creative Analysis
How each creative concept is performing across markets
Top creative
3516a GB
AI Creatives · €41 CPA
Fatigued
3518 FR
Frequency 4.31 · refresh due
Hottest engagement
3524 NL UGC
CTR 3.92% · best in portfolio
Failed test
3528 FR Prop
3 sales · inconclusive
Creative concept comparison
Concept
Markets
Avg CTR
Avg CPA
Frequency
Sentiment
AI Creatives
GB, FR
1.37%
€49
3.67
Strong · GB scaling
UGC Bottom
NL
3.92%
— (MID)
3.56
Best engagement
Proposition Test
FR
1.84%
€704
2.49
Failed test
Recommended actions
🎨
Refresh 3518 FR creatives this week
Current creative has reached fatigue. Brief 3 new variants from the AI Creatives concept (which still works well in GB). Target launch: W23.
🌍
Test UGC concept in GB/FR
UGC is the strongest engagement concept (3.92% CTR in NL). Adapt for GB/FR markets — likely improves BUC retargeting pool quality.
Audience Analysis
Reach, frequency & audience saturation per market
Frequency by market · Are we over-exposing?
Average frequency per market
Threshold 4.0 = fatigue · 5.0+ = action required
Audience pool health
GB Reach (30d)
440k
Freq 3.03 · healthy
FR Reach (30d)
360k
Freq 4.31 · fatigue
NL Reach (30d)
505k
Freq 3.56 · healthy
Total unique
1.4M
across all markets
Pricing Intelligence 🕷️ LIVE
Tom by TomTom retail prices · Auto-refreshes every 5 minutes · Live scrape via Apify
—
PRICE WARWhy NL Search is on hold
TomTom.com is +€11.23 above the NL market average — competitors are undercutting us by 16.3%.
This is exactly why 3188 NL Shopping is paused (W21 decision). Until retailer promos end or our pricing aligns, paid spend would just drive shoppers to cheaper listings on Amazon, Bol, Coolblue & MediaMarkt. Re-activation gate: gap < €5.
Live prices per retailer
Loading…
Price comparison
Tom by TomTom prices · 27 May 2026
Lower bars = better deal for the customer · TomTom.com (red) is the manufacturer reference
Strategic implications
💸
Coolblue is the deepest undercutter
At €59, Coolblue is €20.99 below RRP (-26%). Their checkout shows "Retail price TomTom 79,99" crossed out — they're using us as the reference price to make the deal look better.
📦
Amazon listing is third-party
Amazon.nl shows €68.06 from yoursecondchance94, "only 5 left" — a third-party reseller, not Amazon retail. Sale-through is unstable but pricing pressure is real.
🎯
Re-activation criteria for NL Search
Watch this dashboard. Once the price gap closes to <€5 (either Coolblue promo ends or TomTom.com discounts), unpause 3188 NL Shopping. Expected timeline: late W23 based on typical promo cycles.
🕷️
How this works
Cockpit calls /api/competitor-prices → Apify rag-web-browser actor scrapes each retailer's product page → regex extracts price → cache 5 min. Coolblue + Amazon are live-scraped successfully. Bol + MediaMarkt use Akamai protection that needs Apify Pro proxies; current values are last-verified snapshots.
Customer Journey 🗺️ LIVE GA4
One real anonymous Tom by TomTom buyer · their full session-by-session path · pulled live from ga360-data-project.GA4_results.test_ecom_funnel_with_orderid
Q2 Projections
Where we'll land · Based on current pace
Projected Q2 sales
2,075
95% of 2,187 target
Based on current weekly pace
Projected Q2 spend
€176k
98% of €179k plan
11 days left
Projected blended CPA
€85
If no creative refresh
€72 if FR refresh lands
Gap to target
112 sales
5% miss · recoverable
If GB scales as recommended
Scenario analysis · what would close the gap
Scenario
Action
Extra sales
Extra spend
Closes gap?
Current pace
Do nothing
0
€0
Miss by 112
Scale GB
+€300/day on 3516a
+77
€3,300
Close to 65%
+ Double FR PMax
+€30/day on 3123
+30
€330
Reach 90%+
+ Reactivate DSP
Resume tracking-fixed
+15
€1,200
Hit target ✓
Recommendations AI
AI-suggested actions based on live performance · Click "Apply" to queue (Preview mode — nothing pushed to Meta/Google)
🛡️
Preview Mode — actions are simulated
In this demo, clicking "Apply" does not push changes to Meta or Google Ads. All actions are logged for review only. To enable live push, connect production API tokens and switch off Preview Mode in settings.
AI Smart Budget Allocator
4 recommendations · Total impact: +14 daily sales · €0 net spend change
3528 FR · Proposition Test €704 cost per sale · 3 conversions · inconclusive
€100 / day
↓ Pause test reallocate to UK
Save €700 / week redeploy to 3516a
Budget Simulator 🎛️ INTERACTIVE
Drag the sliders to reallocate daily budget across channels. The model uses live historical CPAs + diminishing-returns curves to project sales & blended CPA in real time.
Projected Daily Spend
€0
vs current —
Projected Daily Sales
0
vs current —
Blended CPA
€0
vs current —
Q2 Gap close (11 days left)
—
vs 355 sales needed
Channel allocation
Each slider goes from €0 to 3× current daily spend
Daily sales mix
Updates as you move the sliders
How the model works: Each channel has a baseline daily spend & CPA from live Meta/Google/Amazon data. As you push budget above baseline, marginal CPA degrades following a saturation curve (channels with low fatigue degrade slowly; high-fatigue channels degrade fast). Below baseline, CPA stays at the current rate.
Per-channel breakdown
Live model · updates instantly
Channel
Current spend/day
New spend/day
Current CPA
Marginal CPA
Current sales/day
Projected sales/day
Δ Sales
Automation Rules
Standing rules that monitor your campaigns 24/7
🛡️
Preview Mode — rules are not active
When enabled, these rules check campaign data every hour and trigger alerts or actions based on the thresholds below.
Active monitoring rules
4 rules · all in preview
Rule
Condition
Action
Status
Fatigue alert
Frequency > 4.0 in any market for 3 days
Email team + flag in cockpit
Preview
CPA breach
CPA > €60 for any BUC campaign for 2 days
Pause campaign + alert
Preview
Budget pacing
Spend < 80% of plan with 7 days left
Suggest scale on top performer
Preview
Test significance
Test campaign at < 50 conv after 10 days
Recommend pause or extend
Preview
Glossary
Key terms used in this cockpit · For people new to marketing analytics
TOP
Upper funnel — AwarenessCold audiences who don't know us yet. Job: build the future retargeting pool. Measured by reach, video views, frequency.
MID
Mid funnel — ConsiderationWarm audiences who've seen us. Job: get them to the site & add to cart. Measured by CTR, CPC, ATC rate.
Two ways of counting salesPixel = Meta's count (under-reports iOS by 30–50%). GA4 = source of truth.
ROAS
Return on ad spendRevenue ÷ Spend. ROAS 3.0× = €3 in sales for every €1 spent.
ATC
Add to cartUser added product to cart but hasn't bought yet. ATC is the strongest mid-funnel intent signal.
AI Auto-generated · Ready to submit
FR Creative Refresh — 3518 AI Creatives Fatigue (W22 2026)
Project
📁 BBM · BUC Brand Marketing
Issue type
Task
Summary
Priority
🔴 Critical AI suggested
Category
Tom_BUC_Creative AI suggested
Assignee
👤 Brittney Malpeli
Due date
Description
📊 Background (from cockpit analysis)
The 3518_BUC_FRA_FR_FBK_SALES Meta campaign currently delivers at €57.52 CPP — just under the €60 target — but has crossed the creative fatigue threshold. Live data from the last 30 days:
Average frequency hit 4.31 (target <4.0)
Link CTR declined from 1.8% (W18) → 1.24% (W21)
CPP crept up from €52 → €60 over 3 weeks
Audience reach 360k; saturation visible
🎯 Objective
Refresh creative inventory to:
Reduce avg. frequency below 3.5 within 14 days of launch
Restore link CTR above 1.5%
Stabilise CPP at or below €55
🎨 Concept direction
Build 3 new variants under the AI Creatives concept — preserving the visual style that's working in GB (3516a delivers €40.74 CPP) but with refreshed messaging tailored to the French market.
📝 Variants requested
#
Angle
Headline (FR)
A
Zones de danger
"Voyez chaque zone de danger avant qu'elle ne vous surprenne."
B
No subscription
"Pas d'abonnement. Pas de surprises. Juste la route."
C
Effortless
"Branchez. Roulez. Tom s'occupe du reste."
Creative rule: Visually identical layout — only headline and CTA changes. Apply yellow highlight behind the key phrase (consistent with W21 proposition test treatment).
📐 Asset specs
1080×1080 static · Facebook + Instagram feed
1080×1920 9:16 video · 15 sec · Reels + Stories
1 of each per variant = 6 assets total
⚠️ Legal note (France): Speed camera detection is illegal in France. Never use the words "radar", "détecteur de radar", or "contrôle de vitesse". Always say zones de danger or alertes de zones de danger.
📅 Timeline
Week
Date
Milestone
W23
3 Jun
Brief approved · creative kick-off
W24
10 Jun
First drafts shared
W25
17 Jun
Final approval
W25
19 Jun
🟢 Live in 3518 FR campaign
📊 Success metrics (review at W27)
Metric
Current
Target post-refresh
Frequency
4.31
<3.5
Link CTR
1.24%
>1.5%
CPP
€57.52
<€55
Daily purchases
6.3
>7.5
💰 Budget
No change to media budget (€500/day). Production budget within standard creative refresh allocation.
🤖 Auto-filled from: Cockpit insight #1 (3518 FR fatigue) · Meta Ads API live data · Tom by TomTom brand framework · BBM-142 precedent