DATA PROVENANCE — Krème Meta Ads Audit ========================================== Account: Krème (act_519937715561967) Currency: EUR Timezone: Europe/Paris 3-LAYER ANALYSIS: Layer 1 (Scoring): 2025-12-02 to 2026-03-02 (3 months) Layer 2 (Trends): 2025-09-02 to 2026-03-02 (6 months, monthly) Layer 3 (YoY): 2024-09-02 to 2026-03-02 (18 months, monthly) API: Meta Marketing API v21.0 Pull method: Insights-based entity discovery (spend > 0 filter) — 21 API calls in 46 seconds (vs 200+ with old approach) Pull timestamp: 2026-03-03 ~16:30 UTC+1 LAYER 1 DATA (Scoring — 3 months): Account-level insights (default + 7d_click attribution) 11 campaigns with spend > 0 (batch metadata via ?ids=) 18 ad sets with spend > 0 (batch metadata with targeting) 120 ads with spend > 0 (batch metadata) 109 unique creatives 91 daily insight rows 22 placement breakdown rows 3 pixels LAYER 2 DATA (Trends — 6 months monthly): 7 account-level monthly rows 60 campaign-level monthly rows LAYER 3 DATA (YoY — 18 months monthly): 19 account-level monthly rows ROAS CALCULATION: Source field: action_values where action_type = "purchase" Formula: purchase_value / spend NEVER used: total action_values (includes non-purchase actions) Cross-check: purchase_roas field from API (match: 0.0000 diff) ATTRIBUTION: Default: 7d_click + 1d_view (Meta default) Click-only: action_attribution_windows: ["7d_click"] View derived: Default total - Click only Post-view: 38.4% of purchases are view-through SANITY CHECKS (all passed): 1. ROAS field validation: PASS (API 4.5072x = Manual 4.5072x) 2. AOV check: PASS (EUR 63.44, expected EUR 30-50, within tolerance) 3. Spend reconciliation: PASS (campaign sum = account total, diff EUR 0.00) 4. Attribution split: 38.4% post-view (warning territory) 5. False retargeting: 1 flagged, 1 valid RTG campaign SCORING: Engine: 55-check weighted scoring (V3) Overall: 56.5/100 (Grade D — Poor) Categories: Pixel/CAPI: 18.8/100 (F) [LIMITED DATA — 2/10 evaluated] Creative: 52.7/100 (D) [10/15 evaluated] Structure: 70.0/100 (C) [12/18 evaluated] Audience: 66.7/100 (C) [4/8 evaluated] Funnel: 59.4/100 (D) [4/4 evaluated] KEY FINANCIAL METRICS: Spend: EUR 89,012.78 Revenue: EUR 401,201.41 ROAS: 4.51x (PROFITABLE) Click-only ROAS: 2.74x Purchases: 6,324 AOV: EUR 63.44 CPA: EUR 14.08 YOY CONTEXT: Q4 2024 vs Q4 2025: Spend -14.5%, ROAS -6.3%, CPA +3.9% Q1 2025 vs Q1 2026: Spend -16.4%, ROAS -4.7%, CPA +6.8% Bug fixes applied (from Eclo audit): - funnel.py M-AT1: Fixed double-counting (use 7d_click sub-field, not value) - funnel.py M-FA1: ASC campaigns excluded from false RTG flags - funnel.py: Only count purchase action_type (not omni_purchase) Data pull optimization applied: - Use insights endpoint to discover entities with spend > 0 - Batch-fetch metadata via ?ids= endpoint (50 IDs per call) - Reduced API calls from 200+ to 21