Lumio Arc premium wellness wearable: six-week brand awareness flight ahead of Q3 retail. UK is Meta-only; Germany and UAE split Meta + TikTok. Monitoring ties internal briefs to reach, impressions, frequency discipline, CPM vs benchmarks, Meta EARL, TikTok VCR, and GA4 branded search — with UAE cross-platform overlap called out as a known data gap.
Q2 2026 brand awareness launch · UK, Germany, UAE.
Weekly budgets · platform allocation · caps · rotation · dayparting · escalation.
Paid media application · identity · messaging · market rules · creative approvals.
Q2 2026 live assets · localised DE · week 3 performance notes · deadlines.
UK · Germany · UAE profiles, competition, benchmarks, regs, key dates, cross-market ops.
Use live market-context CPM / VCR bands as this flight’s auction baseline.
Aligns to guidelines + UAE modesty + DE privacy tone + political/religious avoidance AE.
Media-plan escalations + creative approval matrix (condensed).
connectedFrequency, CPM, reach, EARL, impressions by ad set and market
connectedVideo completion rate, reach, CPM, impressions by market (DE, AE)
previewBranded search volume by market — +15% by W4 target — connect property
missingUAE 60–70% overlap estimated; not connected — incremental reach risk
missingSentiment by market — optional
Show
Feed IDs
composio_meta_ads_insightsokcomposio_tiktok_reportingokga4_branded_search_propertyokga4_admin_api_propertyauth errorintegration_tools_catalogoktenant_doc_campaign_briefoktenant_doc_media_planoktenant_doc_creative_logokthird_party_overlap_uaeskippedComposio sweep · connected apps considered
Explain
This stage is “what raw measurements we could pull,” not the diagnosis yet. Layer 3 (pipeline reality): we tried to hydrate these sources for this tenant in this window.
Show
Definitions used (preview)
| Metric ID | Label | Unit |
|---|---|---|
| reach_unique_7d | Unique reach (7d rollup) | people |
| impressions_7d | Impressions delivered | count |
| frequency_7d | Frequency (7-day rolling) | avg imps / user |
| cpm_local | CPM | GBP | EUR | AED / 1k imps |
| earl_meta | Estimated ad recall lift | % (Meta only) |
| vcr_tiktok | Video completion rate | % (TikTok) |
| branded_search_sessions | Branded search (sessions) | count / week |
Explain
Layer 2 for commerce (stable metric identity). This card answers: “Are we comparing apples to apples this run?”
Show
Explain
Which business vocabulary we mapped these metrics into for downstream detection. Coverage summary reflects connected integration reach for those classes.
Show
Context merged
Explain
What contextual lenses could explain movement besides “something broke.” Kept non-sensitive and short.
Show
Anomalies
Explain
What changed enough to be worth investigating under this run’s thresholds — KPI + direction + magnitude vs baseline, not a wall of raw numbers.
| KPI | Target per Market | Per Week Implied |
|---|---|---|
| Unique Reach | 5,000,000 | ~833,000 |
| Impressions | 20,000,000 | ~3,333,000 |
| Frequency (campaign total) | 3.0–5.0 | ~0.5–0.8 per week |
| EARL (Meta) | 8% lift | measured at week 6 |
| TikTok VCR | 50% minimum | weekly |
| CPM vs benchmark | within 20% | weekly |
| Branded search lift | 15% by week 4 | measured weekly |
| Metric | Week 1 | Week 2 | Week 3 | Target W3 Cumulative | Status |
|---|---|---|---|---|---|
| Unique Reach | 780,000 | 820,000 | 310,000 | 2,490,000 | 🔴 BELOW — reach plateaued |
| Impressions | 2,100,000 | 2,450,000 | 1,820,000 | 9,999,000 | 🟡 ON TRACK total but slowing |
| Frequency (7-day) | 1.8 | 2.6 | 3.8 | max 3.0/7d | 🔴 ABOVE threshold |
| CPM (£) | 7.02 | 7.55 | 9.20 | max £8.40 (20% over £7.00 benchmark) | 🔴 31% above W2 |
| EARL (%) | 4.2% | 6.1% | 7.8% | 8.0% by W6 | 🟢 TRACKING well |
| CTR (%) | 0.82% | 0.79% | 0.71% | n/a (awareness) | 🟡 Slight decline |
| Video Completion Rate (%) | 68% | 64% | 61% | 60% minimum | 🟢 OK |
| Budget Spent (£) | 44,800 | 54,600 | 58,900 | 158,300 | 🟢 ON BUDGET |
| Metric | Week 1 | Week 2 | Week 3 | Target W3 Cumulative | Status |
|---|---|---|---|---|---|
| Unique Reach | 620,000 | 710,000 | 690,000 | 2,100,000 | 🟢 ON TRACK |
| Impressions | 1,680,000 | 2,050,000 | 2,100,000 | 7,000,000 | 🟢 ON TRACK |
| Frequency (7-day) | 1.6 | 2.1 | 2.3 | max 2.0/7d | 🟡 SLIGHTLY ABOVE |
| CPM (€) | 5.90 | 6.10 | 6.40 | max €6.60 (20% over €5.50) | 🟢 WITHIN RANGE |
| EARL (%) | 3.8% | 5.2% | 6.9% | 8.0% by W6 | 🟢 TRACKING |
| Video Completion Rate (%) | 72% | 69% | 71% | 60% minimum | 🟢 STRONG |
| Metric | Week 1 | Week 2 | Week 3 (W3 day 1-4) | Target W3 Cumulative | Status |
|---|---|---|---|---|---|
| Unique Reach | 410,000 | 480,000 | 198,000 | 1,320,000 | 🔴 LAGGING — reach not scaling |
| Impressions | 1,820,000 | 2,210,000 | 2,380,000 | 8,400,000 | 🟢 HITTING TARGET |
| Frequency (estimated) | 4.4 | 4.6 | 12.0 (estimated) | n/a | 🔴 SAME USERS REPEATEDLY |
| CPM (€) | 4.20 | 4.50 | 5.80 | max €5.40 (20% over €4.50) | 🔴 ABOVE BENCHMARK |
| Video Completion Rate (%) | 62% | 58% | 41% | 50% minimum | 🔴 DROPPED 17pp in 4 days |
| Engagement Rate (%) | 3.2% | 2.8% | 1.9% | n/a | 🔴 DECLINING — algorithm signal |
| Budget Spent (€) | 38,200 | 47,100 | 51,800 | 137,100 | 🟢 ON BUDGET |
| Metric | Week 1 | Week 2 | Week 3 | Target W3 Cumulative | Status |
|---|---|---|---|---|---|
| Unique Reach | 480,000 | 510,000 | 520,000 | 1,575,000 | 🟢 ON TRACK |
| Impressions | 1,380,000 | 1,620,000 | 1,760,000 | 5,250,000 | 🟢 ON TRACK |
| Frequency (7-day) | 2.1 | 2.4 | 3.2 | max 3.0/7d | 🟡 APPROACHING LIMIT |
| CPM (AED) | 22.40 | 24.10 | 28.50 | max AED 28.80 (20% over AED 24) | 🟡 NEAR LIMIT |
| EARL (%) | 5.1% | 6.8% | 8.4% | 8.0% by W6 | 🟢 AHEAD OF TARGET |
| Video Completion Rate (%) | 71% | 69% | 69% | 60% minimum | 🟢 STRONG |
| Metric | Week 1 | Week 2 | Week 3 | Target W3 Cumulative | Status |
|---|---|---|---|---|---|
| Unique Reach | 390,000 | 420,000 | 440,000 | 1,312,500 | 🟢 ON TRACK |
| Impressions | 1,560,000 | 1,890,000 | 2,020,000 | 6,300,000 | 🟢 ON TRACK |
| CPM (AED) | 17.20 | 18.40 | 19.80 | max AED 21.60 | 🟢 WITHIN RANGE |
| Video Completion Rate (%) | 61% | 59% | 58% | 50% minimum | 🟢 OK |
| Engagement Rate (%) | 4.1% | 3.9% | 3.8% | n/a | 🟢 STABLE |
| Signal | Value | Notes |
|---|---|---|
| Meta audience size (target demo UAE) | ~1,200,000 | Platform reported |
| TikTok audience size (target demo UAE) | ~980,000 | Platform reported |
| Combined unique reach claimed (Meta + TikTok) | ~1,480,000 | Sum of both platforms |
| Estimated actual UAE target audience size | ~900,000–1,100,000 | Industry estimate for target demo |
| Implied overlap | 35–55% | Inferred — not confirmed by tool |
| Incremental reach from TikTok over Meta | Unknown | No cross-platform deduplication |
| Budget allocated to TikTok UAE | AED 85,000 | ~40% of UAE budget |
| Estimated wasted impressions (if 50% overlap) | ~1,010,000 | Based on W1-W3 TikTok impressions |
| Market | Platform | Reach Status | Impressions Status | Primary Issue | Root Cause |
|---|---|---|---|---|---|
| UK | Meta | 🔴 Plateaued | 🟡 Slowing | CPM spike 31% | Auction competition (Oura Ring / Whoop) |
| Germany | Meta | 🟢 On track | 🟢 On track | None | None |
| Germany | TikTok | 🔴 Lagging | 🟢 On track | VCR dropped 17pp | Algorithm deprioritisation — format mismatch |
| UAE | Meta | 🟢 On track | 🟢 On track | Frequency approaching limit | Cross-platform overlap inflating numbers |
| UAE | TikTok | 🟢 On track | 🟢 On track | Overlap unconfirmed | Cross-platform audience duplication |
| Market | Week 1 Baseline | Week 2 | Week 3 | Lift vs Baseline | Target |
|---|---|---|---|---|---|
| UK | 1,240 searches/week | 1,380 | 1,590 | +28.2% | +15% by W4 |
| Germany | 890 searches/week | 940 | 1,020 | +14.6% | +15% by W4 |
| UAE | 620 searches/week | 710 | 830 | +33.9% | +15% by W4 |
Run ID awareness-reach-imp-20260511T234348
Scenario S5-4 · wearable_awareness
Harness: runFullStage1to14 + runProductionPipeline (6a→10, Stage 13 baselines in runner). UI labels match mental model; not only stage6b_* filenames.
| Source | Detail |
|---|---|
| 6a (deterministic) | 8 root-cause hypotheses generated (RootCauseService.hypothesise) — not expanded here; downstream 6b narrowed to 4 branches below. |
| 6b Phase 1 (LLM) | Four competing branches with priors + feed/metric hooks (table). |
| Hypothesis (short) | Confidence (prior) | Evidence hooks (feeds / metrics / flags) |
|---|---|---|
| MacroAuctionPressure_SocialCommerceExplosion — category demand surge → cross-platform CPM inflation | 0.55 | TikTokCPM z=+2.50; MetaAdsCPM z=+2.40 (same window); L1 :SocialCommerceExplosion @ 40%; no deploy/creative/budget flags |
| AudienceExhaustion_FrequencyCapSaturation — audience pool contracting / frequency saturation | 0.45 | MetaAdsFrequency z=+2.30; MetaAdsAudienceReachPct z=-2.20; case facts: UK Meta freq 3.8 / 7d, reach 310k; AE overlap ~45% (proxy — dedup tool not connected) |
| CreativeFatigue_EngagementDegradation — engagement down → quality / CPM pressure | 0.20 | TikTokCTR z=-2.20; Meta MetaAdsCTR not anomalous; Meta VCR case fact DE 0.71 (weak primary Meta creative story) |
| MeasurementAttributionArtifact — pipeline / attribution artifact | 0.20 | meta_ads not connected; runSignalMode=synthetic_scenario; TotalPaidMediaROAS unsafe for causal claims; window misalignment flags in audit |
Explain
Plausible stories consistent with the signals—still pre-commit. Priors are from Stage 6b Phase 1 (submit_evidence_brief); no locked primary cause yet.
| Field | Value |
|---|---|
| Committed primary cause (canonical 6b commit) | Not produced — Stage 6b Phase 2 failed with Anthropic 400: tools.0.custom: For array type, property maxItems is not supported → runner used stub diagnosis (low / failed diagnostic step in downstream 6c text). |
| confidenceAssessment (effective) | Low for a formal locked diagnosis; directional evidence narrative from 6b2 still applied. |
| confirmationDataSources | In-product: anomaly KPIs + caseStudyFacts + monitoringDataDisclosure. External: 6b2 web searches (6 queries) + tool results; no live Ads Manager / Shopify / dedup tool rows in this harness. |
| Row | Outcome | Confidence after evidence |
|---|---|---|
| Macro auction / social-commerce explosion | Rejected as primary — search found no acute May-2026 category spike; Meta CPMs cited down YoY Q1’26 | 0.20 |
| Audience exhaustion / frequency saturation | Leading — frequency thresholds + exhaustion triad match; week-3 flight timing | 0.65 |
| Creative fatigue | Secondary (TikTok-weighted) — TikTok CTR pattern; not primary cross-platform (Meta CTR not anomalous) | 0.25 |
| Measurement / attribution artifact | Caveat retained — Meta outages May 5–6; synthetic + meta_ads connectivity ambiguity | 0.20 |
Explain
What we’re willing to stand behind for this run: an evidence-backed working story (audience exhaustion best supported at 0.65 after 6b2) inside an auditable ledger—but not a fully committed 6b locked diagnosis because Phase 2 commit hit an API schema error.
Show
| Check | What was tried | Outcome |
|---|---|---|
| Macro CPM story | Web search (social / TikTok / UK wearables angles) | No material acute corroboration; treat macro as background, not driver of z≈2.4–2.5 spike |
| Frequency / saturation | Web search (Meta freq vs CPM) | Corroborated vs UK freq 3.8 + triad |
| Platform health | Web search (Meta status May 2026) | Contradiction / caveat: outages + attribution changes → qualify Meta-side certainty |
| TikTok engagement | Web search (CTR + saturation) | Partial corroboration for TikTok path |
| Competitor surge | Searches + narrative | Quiet — no May-2026 spend spike found for category/geo |
Details
Explain
What we tried to falsify or corroborate outside the first-pass story: web retrieval + structured commit (commit_evidence_findings). Several items did not change (macro acute story); others materially changed confidence (audience exhaustion up, macro down).
| Constraint / policy | Effect |
|---|---|
| 6c — escalationRequired | false |
| Channels | Internal only — ops dashboard / Slack / Teams / email to paid media; no customer-facing channels |
| Audience | Internal — performance marketing + audience/creative owners |
| Timing | Monitor-and-investigate first; 24h emphasis on verifying meta_ads feed reality + May 5–6 outage impact before spend changes |
| Brand identity risks (blocked narratives) | No panic-discounting; no mass pause without verified root cause; no rushed creative rotation without confirming mechanism |
| Stage 7 (enforcer) | conservative=true · 82 allowed action types after pruning (console) |
Explain
What we refuse to recommend or execute regardless of what looks optimal: customer-facing plays while diagnostic commit is broken/low-confidence; destructive spend/creative moves per 6c narrative; escalation not required to exec/board for this pattern.
| Candidate (title) | Intent | Tag |
|---|---|---|
| CreateInternalBrief (selected downstream) | Internal documentation + alignment for paid media / measurement follow-up | Exploratory / verify-first — 6b Phase 2 failed; synthetic scenario + feed gaps |
Console: Stage 8 emitted 1 candidate; Stage 10 ran IntelligentPlanGenerator with model gpt-4o — full plan text is not in Anthropic llm-full JSONL for this run.
Explain
Possible moves consistent with policy—not a final customer-facing pick. With stubbed formal diagnosis, outputs should read as verify-first, not autopilot.
| Rubric (plain language) | Application this run |
|---|---|
| Safety under uncertainty | Favor internal / non-destructive when 6b commit failed |
| Actionability without OAuth | Prefer brief / checklist over tool execution |
| Alignment with 6c | Must respect internal-only + investigate-first |
Details
Dampening: scores / decisiveness should be read as attenuated due to diagnosis commit failure + synthetic scenario + meta_ads connectivity ambiguity—scoring must not look magically decisive.
Explain
How we ordered choices given uncertainty: one candidate passed Stage 8; Stage 9 selected CreateInternalBrief as the best harm-minimizing action under conservative enforcement.
| Safety bundle item | Content |
|---|---|
| Tradeoffs | Acting on CPMs without revenue truth → risk of false fixes; acting without feed verification → risk of wrong lever |
| Rejected alternative | Mass pause Meta; force creative refresh as primary lever; shift budget to TikTok “because cheaper” (6b Phase 1 explicitly blocked these patterns where data missing) |
| Kill-switch / recheck | Re-run diagnosis after meta_ads live reconnect + post-outage window check; if reach/freq/CPM normalize → downgrade exhaustion hypothesis |
| Human approval vs automation | Human: any customer-facing, budget reallocation, or attribution setting change. Safe automation (if wired): internal ticketing / brief generation only—not executed here beyond LLM plan text |
Explain
The plan’s safety envelope: investigate connectivity and outage impact before spend or creative surgery; treat Meta delivery metrics as provisional until feeds are real.
| Item | Status |
|---|---|
| Customer connectors / workflows | Not executed — harness ends at plan generation; oauthCoverage=none, workflowDagEligible=false (console) |
| What did run | Baseline / learning repo updates in runner (“Stage 13” in console): e.g. 35 seeded, 4 updated horizon rows for KPI tracking |
Explain
What actually ran in the real world: in this test harness, only offline baseline bookkeeping plus LLM stages—not production side effects on ad accounts.
| Signal | Status |
|---|---|
| Post-intervention KPIs | Pending verification window — no automated post-step measurement in this script path |
Explain
Did the intervention move the needle yet—too early to tell; no post-step read connected in the runner.
| Update | Detail |
|---|---|
| Baselines | In-memory repo: seed/update rows for KPI horizons (console: 35 seeded, 4 updated) |
| Quality gate | Learning should be treated as bounded because run is synthetic_scenario + partial feed truth |
Explain
What the system will do differently next time: slightly warmer baselines for repeated metrics on this tenant in-process—not magical self-rewriting of strategy.
Show — digest
Explain
Stakeholder-readable story with explicit limits: trust the evidence-retrieval synthesis for next questions; do not treat as signed-off diagnosis until 6b Phase 2 is fixed and rerun.
| UI stage | Code path (this run) |
|---|---|
| 6 | 6a hypotheses + 6b Phase 1 (submit_evidence_brief) |
| 7 | 6b Phase 2 (failed) + effective synthesis from 6b2 commit_evidence_findings |
| 8 | 6b2 ReAct + web tools + commit |
| 9 | 6c interpret_brand_constraints + Stage 7 ConstraintEnforcerService |
| 10 | Stage 8 candidates + Stage 10 orchestrator (gpt-4o plan; not in Anthropic JSONL) |
| 11 | Stage 9 ImpactScorerService |
| 12 | remediationSolutionPlan layer (from pipeline; brief in logs) |
| 13 | Runner “Stage 13” baseline writes |
| 14–16 | Honest N/A or pending for this harness |
Run your scenario test and write results into mockAiOutput on the pack, or inject at runtime from the test harness.