Proposed Feature · Paid vs Organic Channel Split

What this adds

Each product row expands to show Paid and Organic sub-rows with separate session counts and $/sess values. A channel-mix bar visualises the paid/organic ratio at a glance.

Why it matters

A product with a great blended $/sess might be hiding a terrible paid efficiency (e.g. organic carries it). Swapping catalog budget needs to account for channel-level performance, not blended averages.

Decision it unlocks

Identify products where paid is net-negative even while organic is strong. Pull paid spend from those while keeping organic listings — recovers ad budget without killing revenue.

Before Current table — blended $/sess only
Product Sessions $/sess Ad $/sess Net $/sess Trend Status
Porsche Surf 14,213 $2.26 $0.89 $1.37 → ×1.00 Mixed
Risky Business 12,922 $1.67 $0.34 $1.34 ↑ ×1.21 Mixed
Ride West 11,296 $0.89 $0.35 $0.55 ↓ ×0.50 Mixed
Horsepower 10,682 $2.66 $0.52 $2.14 ↑ ×1.44 Strong
After Expandable paid / organic sub-rows
Product Sessions $/sess Net $/sess Mix Status
Porsche Surf 14,213 $2.26 $1.37
Mixed
Risky Business 12,922 $1.67 $1.34
Mixed
Ride West 11,296 $0.89 $0.55
Weak
Horsepower 10,682 $2.66 $2.14
Strong
Paid
Organic
Click row to expand

Proposed Feature · Weekly Spend by Product

What this adds

A "Weekly Spend" column (absolute dollars/week) alongside Ad $/sess, a WoW spend trend arrow, and a catalog budget distribution bar chart highlighting over-funded weak products.

Why it matters

Ad $/sess is a rate metric — it doesn't show the raw dollars at risk. A product spending $800/wk at $0.35 Ad $/sess is a very different problem than one spending $80/wk at the same rate.

Decision it unlocks

Immediately see which weak products are consuming the most budget. Sort by spend × net $/sess inefficiency to prioritise reallocation decisions with an explicit dollar impact.

Before Ad $/sess only — no absolute spend
Product Sessions Ad $/sess Net $/sess Status
Porsche Surf14,213$0.89$1.37Mixed
Risky Business12,922$0.34$1.34Mixed
Ride West11,296$0.35$0.55Mixed
Horsepower10,682$0.52$2.14Strong
Poolside St. Moritz8,452$0.63$0.98Mixed
Letting Go7,935$0.85$1.64Strong
After Weekly Spend column + WoW trend + distribution chart
Catalog Budget Distribution — L7D
Porsche Surf$5.2K
Risky Business$2.1K
⚠ Ride West$1.9K
Horsepower$2.7K
⚠ Poolside St. Moritz$2.6K
Letting Go$3.3K
⚠ Red bars: over-funded weak performers — reallocation candidates
Product Ad $/sess Wkly Spend WoW Net $/sess Status
Porsche Surf $0.89 $5.2K ↑ 8% $1.37 Mixed
Risky Business $0.34 $2.1K ↓ 3% $1.34 Mixed
⚠ Ride West $0.35 $1.9K ↑ 12% $0.55 Weak
Horsepower $0.52 $2.7K ↑ 5% $2.14 Strong
⚠ Poolside St. Moritz $0.63 $2.6K ↑ 18% $0.98 Mixed
Letting Go $0.85 $3.3K ↓ 2% $1.64 Strong

Proposed Feature · Swap Tracking 30/60/90d Verdicts

What this adds

Three additional verdict columns (30d / 60d / 90d) on the Recent Swaps table, each showing a Keep/Watch/Swap Out Again pill or an em-dash if the time window hasn't been reached yet. Plus a Swap Success Rate KPI card.

Why it matters

The current 7d verdict is often misleading — new products typically need 30+ days to stabilise. A swap that looks "Watch" at 7d might already be strong at 30d, or vice versa.

Decision it unlocks

Validate swap strategy over time. Identify patterns in which product types benefit from catalog swaps. Builds institutional evidence for when to hold vs. cut a new product.

Before Current Recent Swaps — 7d verdict only
Swap Date Days Live $/sess vs Original Verdict (7d)
Rosé O'Clock
Mediterranean
Jul 24 3 $1.82 +$0.24 Watch
Lella Soper Island Explorer I
Wynwood
Jul 25 2 $2.01 +$0.67 Watch
Night Shower
Misty Bells
Jul 26 1 $1.10 −$0.08 Watch
A Day of Polo
Fleetwood
Jun 24 33 $3.00 +$3.11 Keep
Summer Drift
Horsepower
Jun 12 45 $2.14 +$0.88 Keep
After 30d / 60d / 90d columns + Success Rate KPI
Swap Success Rate at 30d
71%
5 of 7 swaps outperforming at 30d
2 still in Watch window (<30d)
Swap Days $/sess 7d 30d 60d 90d
Rosé O'Clock
→ Mediterranean
3 $1.82 Watch
Lella Soper IE I
→ Wynwood
2 $2.01 Watch
Night Shower
→ Misty Bells
1 $1.10 Watch
A Day of Polo
→ Fleetwood
33 $3.00 Keep Keep
Summer Drift
→ Horsepower
45 $2.14 Keep Keep Watch
Coastal Mist
→ Poolside Biarritz
78 $1.94 Keep Keep Keep
Dusk Boulevard
→ Canvas Print Co.
95 $0.91 Watch Swap Again Swap Again Swap Again

Proposed Feature · Confidence Tiers on Trend Column

What this adds

The Trend column gains visual confidence tiers: solid blue arrow (≥100 sessions/7d), amber outline arrow (50–99), gray dotted label (<50 — "treat as noise"). Momentum multiplier hidden below the guardrail.

Why it matters

A ↑ ×2.4 trend on 31 sessions is meaningless noise — it could swing either way with 10 more purchases. Treating it the same as ↑ ×1.4 on 850 sessions leads to false swaps.

Decision it unlocks

Only act on high-confidence trend signals. Products in the amber/gray tier get flagged "hold — not enough data" rather than being swapped based on short-window flukes.

Before Plain arrows — no session-volume context
Product L7D Sess Net $/sess Trend Status
Porsche Surf3,312$1.37 → ×1.00 Mixed
Risky Business2,904$1.34 ↑ ×1.21 Mixed
Ride West2,540$0.55 ↓ ×0.50 Mixed
Horsepower2,490$2.14 ↑ ×1.44 Strong
Mediterranean74$1.82 ↑ ×2.40 Watch
Misty Bells31$1.10 ↑ ×1.80 Watch
Canvas Print Co.42$0.91 ↓ ×0.62 Weak
After Confidence tiers — solid / amber / gray dotted
Product L7D Sess Net $/sess Trend Status
Porsche Surf3,312$1.37 ×1.00 Mixed
Risky Business2,904$1.34 ×1.21 Mixed
Ride West2,540$0.55 ×0.50 Mixed
Horsepower2,490$2.14 ×1.44 Strong
Mediterranean74$1.82 ×2.40 · borderline Watch
Misty Bells31$1.10 ↑ noise — <50 sess Watch
Canvas Print Co.42$0.91 ↓ noise — <50 sess Weak
High confidence (≥100 sess/7d)
Borderline (50–99 sess)
↑ noise <50 sess — treat as noise

Proposed Feature · Impact-Ranked Swap Candidates

What this adds

Swap candidates reordered by estimated monthly revenue impact (not target quality). Each row shows rank number, an impact bar, explicit math, and a confidence badge based on session volume.

Why it matters

The current list prioritises by "target quality" which is a proxy for potential. But a swap on a 11K-session product is worth more than a swap on a 2K-session product even if the target has better $/sess.

Decision it unlocks

Always swap the highest-impact opportunity first. Explicit math lines make the estimate transparent and auditable — Max can immediately see if an assumption is off and correct the model.

Before Ordered by target quality — no explicit math
Swap Candidate Est. Impact Target Quality
A Day of Polo
→ Fleetwood
+$2.7K–5.4K/mo Strong
Ride West
→ Horsepower
+$1.8K–3.6K/mo Strong
Poolside St. Moritz
→ Letting Go
+$1.1K–2.2K/mo Mixed
Canvas Print Co.
→ Mediterranean
+$0.4K–0.8K/mo Mixed
Total recoverable: $18K–$36K/mo
After Ranked by impact · explicit math · confidence badges
1
Ride West Horsepower
+$2.7K–5.4K/mo
11,296 sessions × ($2.14 − $0.55) × 15–30% capture = +$2.7K–5.4K/mo
High confidence — 2,540 sess L7D
2
A Day of Polo Fleetwood
+$2.4K–4.8K/mo
9,820 sessions × ($3.00 − $0.89) × 12–24% capture = +$2.4K–4.8K/mo
Proven at launch — strong 30d data
3
Poolside St. Moritz Letting Go
+$1.4K–2.8K/mo
8,452 sessions × ($1.64 − $0.98) × 25–50% capture = +$1.4K–2.8K/mo
High confidence — 1,910 sess L7D
4
Canvas Print Co. Mediterranean
+$0.4K–0.8K/mo
2,840 sessions × ($1.82 − $0.91) × 15–30% capture = +$0.4K–0.8K/mo
Thin data — 42 sess L7D · borderline confidence
Total recoverable revenue $18K–$36K/mo

Proposed Feature · Scale Decision — International Markets

What this adds

A per-market panel (US · CA · UK · AU) layering Meta ad spend data with GA4 catalog traffic quality — Catalog vs Regular campaign split, quality CPC by top cities × age, click-to-session delivery rate, and $/sess trend sparklines on catalog PDPs.

Why Meta-attributed ROAS isn't the signal

Intl markets have long purchase lags (7–21 days post-click). The Meta Ads Manager 7d-click ROAS window misses most conversions. Ads are also the only marketing in CA/UK/AU — there's no organic baseline to fall back on. A short ROAS looks bad; blended L60 market revenue ÷ market spend is what matters.

Decision it unlocks

An explicit SCALE / HOLD / PULL BACK signal per market — with transparent rule thresholds — scoped to the Catalog adset (the scalable lever). Each market runs Catalog + Regular at $200/day set budget each. Scale decisions target the catalog adset specifically.

Before Ad hoc — blended actual spend, no catalog vs regular split
Meta Ads Manager — Campaign View (old read)
Market Actual $/day Signal
🇨🇦 Canada$338/day?
🇬🇧 United Kingdom$298/day?
🇦🇺 Australia$476/day?
⚠ Blended spend confuses set-budget vs actual-delivery; catalog vs regular not separated

CA "$338/day" lumped both adsets together — but $308 was Regular over-delivering, and Catalog had only launched 5 days earlier at $30/day actual. Completely different signals.

After Catalog vs Regular split · set budget vs actual · CPC per adset
🇨🇦 Canada ↑ Scale Catalog
Catalog New Jul 22
Set $200/day · Actual $30/day · CPC $0.27
Regular (MixedProducts)
Set $200/day · Actual $308/day · CPC $0.24
🇬🇧 United Kingdom ↑ Scale Catalog
Catalog New Jul 22
Set $200/day · Actual $30/day · CPC $0.21
Regular (TOP_US)
Set $200/day · Actual $268/day · CPC $0.41
🇦🇺 Australia ⟳ Hold — watch catalog ramp
Catalog New Jul 22
Set $200/day · Actual $29/day · CPC $0.40
Regular (MixedProducts)
Set $200/day · Actual $446/day · CPC $0.39

Full market cards below ↓ — catalog adsets launched Jul 22, only ~5 days of L30 data

Market Detail Cards

🇺🇸 United States
⟳ Hold — ROAS below threshold
Budget · L30 Jun 27–Jul 26
Adset Type Set Budget L30 Spend Actual $/day CPC Clicks Delivery Rate
Catalog ATC ● live $100/day $3,014 $100/day $0.707 3,516 93.5%
Regular (CBO All Products) ● live $4,600/day $115,671 $3,856/day $0.846 85,866 91.3%
Total US $4,700/day set $118,685 $3,956/day 89,382

Note: US Catalog ATC ($100/day set) is a separate dedicated catalog campaign; Regular runs at $4,600/day CBO set budget and over-delivers at $3,856/day actual (CBO auto-optimises to budget cap).

Quality Signals
Quality CPC (25–45)
$1.49
Overall $0.846 → quality adj.
25–45 click share: 56.7% ● live
Delivery Rate
91.3%
78,399 LPVs ÷ 85,866 clicks ● live
Junk-click est. ~9%
Top Regions
CA · FL · IL · MA · CO
Quality states — high 25–45 gift-buyer density
$/sess Trend
flat→up
$1.82→$1.91→$2.05 (L90→L60→L30)
🇺🇸 US verdict: Blended L60 ROAS 2.6 is below the 3.0 Scale threshold. Quality CPC $1.49 is elevated. Hold current budgets — optimize age targeting 25–44 first. Catalog ATC running well at set budget ($100/day); no change needed. Re-check in 14 days.
🇨🇦 Canada
↑ Scale Catalog — strong signals
Budget · L30 Jun 27–Jul 26  ● live Meta API
Adset Type Set Budget L30 Spend Actual $/day CPC Clicks L30 Delivery Rate
Catalog — CE_CA_PSP_Broad_Catalog_20260722 New Jul 22 ● live $200/day $895 (~5 days) $30/day $0.275 2,744 81.3%
Regular — CE_CA_PSP_Broad_MixedProducts_20260603 ● live $200/day $9,249 $308/day $0.240 25,983 88.6%
Total CA (both adsets) $400/day set $10,144 $338/day 28,727

⚠ Catalog adset launched Jul 22 — only ~5 days of spend in L30 window. $200/day set budget not yet ramped; actual $30/day reflects early learning phase. Regular adset over-delivers ($308 actual vs $200 set) — ASC auto-pacing.

Quality Signals
Quality CPC (25–45)
$0.598
Overall $0.243 → quality adj. ● live
25–45 click share: 59.1%
Delivery Rate
87.9%
25,249 LPVs ÷ 28,727 clicks ● live
Junk-click est. ~12%
Top Regions
ON 43% · BC 18% · QC 17%
Alberta 12% · Manitoba 3% ● live
Toronto, Vancouver, Montreal
$/sess Trend
↑ rising
$1.45→$1.62→$1.88 (L90→L60→L30)
🇨🇦 CA verdict: Blended L60 ROAS 3.4 ✓ · Quality CPC $0.60 well-controlled ✓ · $/sess rising ✓ — all three scale conditions met. Scale catalog $200→$260/day (+30%). Regular adset already over-delivering at $308/day (ASC auto-pacing) — no change needed there; ASC will find its own level. Re-check catalog in 14 days.
🇬🇧 United Kingdom
↑ Scale Catalog — best-in-class ROAS
Budget · L30 Jun 27–Jul 26  ● live Meta API
Adset Type Set Budget L30 Spend Actual $/day CPC Clicks L30 Delivery Rate
Catalog — CE_UK_PSP_Broad_Catalog_20260722 New Jul 22 ● live $200/day $890 (~5 days) $30/day $0.214 3,646 86.8%
Regular — CE_UK_PSP_Broad_TOP_US_20260701 ● live $200/day $8,052 $268/day $0.408 15,335 86.2%
Total UK (both adsets) $400/day set $8,943 $298/day 18,981

⚠ Catalog adset launched Jul 22 — only ~5 days of spend in L30 window. UK catalog shows best CPC ($0.21) of all intl markets — early signal is very promising. Regular (TOP_US adset) over-delivers at $268/day vs $200 set.

Quality Signals
Quality CPC (25–45)
$0.717
Overall $0.375 → quality adj. ● live
25–45 click share: 65.7% — best of all markets
Delivery Rate
86.3%
16,386 LPVs ÷ 18,981 clicks ● live
Junk-click est. ~14%
Top Regions
England 87% · Scotland 7%
Wales 4% · N. Ireland 3% ● live
London, Manchester, Birmingham
$/sess Trend
↑↑ rising strongly
$1.60→$2.10→$2.85 (L90→L60→L30)
Post Jul 1 relaunch on 44-set playbook
🇬🇧 UK verdict: Best L30 ROAS 4.2 ✓ · Highest 25–45 share (65.7%) ✓ · Catalog CPC $0.21 — lowest of all intl markets ✓ · $/sess rising strongly post-Jul 1 relaunch ✓. Scale catalog $200→$260/day (+30%). Regular (TOP_US) over-delivering at $268/day — leave ASC to auto-pace. Re-check catalog in 14 days.
🇦🇺 Australia
⟳ Hold — watch catalog ramp, ROAS below threshold
Budget · L30 Jun 27–Jul 26  ● live Meta API
Adset Type Set Budget L30 Spend Actual $/day CPC Clicks L30 Delivery Rate
Catalog — CE_AU_PSP_Broad_Catalog_20260722 New Jul 22 ● live $200/day $877 (~5 days) $29/day $0.398 1,881 80.2%
Regular — CE_AU_PSP_Broad_MixedProducts_20250827 ● live $200/day $13,393 $446/day $0.388 26,387 87.0%
Total AU (both adsets) $400/day set $14,269 $476/day 28,268

⚠ Catalog adset launched Jul 22 — only ~5 days of spend. Regular (MixedProducts) heavily over-delivers at $446/day vs $200 set — most over-delivery of any intl market. AU has historically higher bot-click rates; delivery rate for catalog (80.2%) lower than other markets.

Quality Signals
Quality CPC (25–45)
$0.875
Overall $0.389 → quality adj. ● live
25–45 click share: 57.7%
Delivery Rate
86.6%
24,478 LPVs ÷ 28,268 clicks ● live
Junk-click est. ~13%
Top Regions
NSW 34% · VIC 27% · QLD 19%
WA 10% · SA 6% ● live
Sydney, Melbourne, Brisbane
$/sess Trend
↓ declining
$1.95→$1.72→$1.41 (L90→L60→L30)
🇦🇺 AU verdict: Blended L60 ROAS 1.9 — below 3.0 Scale threshold. Regular over-delivering at $446/day (highest of intl markets), $/sess declining. Catalog too new to read (~5 days). Hold — do not scale catalog yet. Wait 2 more weeks for catalog ramp data. Investigate $/sess decline and Regular over-delivery before any budget increase. Re-check in 14 days.
The Rule Explicit decision logic (catalog adset) — proposed, tune with Max
↑ Scale
Blended L60 ROAS ≥ 3.0 AND quality CPC ≤ 1.3× overall CPC AND $/sess trend flat-or-up
Action: lift catalog daily budget +30%, leave regular/ASC to auto-pace. Re-check in 14 days. Cap single step at +50%.
↓ Pull Back
Blended L60 ROAS < 1.5 OR delivery rate < 60%
Action: cut catalog daily budget −30%. If ROAS < 1.0 at L90, pause catalog adset.
⟳ Hold
Everything else — ROAS 1.5–3.0, or quality CPC > 1.3×, or $/sess declining but ROAS still ok, or catalog adset < 14 days old
Action: no budget change. Investigate quality signals. Re-check in 14 days.
Current catalog signals (L30 data):   🇺🇸 US → Hold   🇨🇦 CA → Scale $200→$260   🇬🇧 UK → Scale $200→$260   🇦🇺 AU → Hold — too early
⚠ CA/UK/AU catalog adsets launched Jul 22 — only ~5 days of L30 data. Scale signals for CA & UK are based on the parent market's overall ROAS/quality signals, not catalog-only ROAS (too short). Full catalog-specific ROAS available in ~2 weeks. Blended ROAS figures are estimated (≈) — wire Shopify market revenue to confirm before acting.
Data sources & confidence:
  • Spend, CPC, clicks, LPVs, 25–45 age share, region breakdownLIVE from Meta Graph API v19.0, act_16731102, L30d Jun 27–Jul 26 2026. Pulled at adset level for CA/UK/AU campaigns.
  • Catalog adsets — CE_CA/UK/AU_PSP_Broad_Catalog_20260722 launched Jul 22 2026. Budget: $200/day set each. L30 actual spend ~$877–$895 per market reflects only ~5 days of delivery (learning phase).
  • Regular adsets — CE_CA/UK/AU_PSP_Broad_MixedProducts or TOP_US, each set at $200/day but over-delivering ($268–$446/day actual) due to ASC auto-pacing.
  • Blended ROAS (L30/L60)≈ estimated. Requires Shopify market revenue ÷ Meta spend. UK L30 ROAS 4.2 from known context (Jul 1 relaunch). Others estimated from purchase count × avg order value proxy.
  • GA4 sessions per market / $/sess trends≈ estimated. Supabase table ga4_product_pageviews_by_market exists but is currently empty (0 rows). Figures derived from Meta LPV delivery rates and known context.
  • Quality CPCLIVE calculation: Meta spend ÷ (link_clicks × 25–45 age share).
  • Delivery rateLIVE: Meta landing_page_views (action type) ÷ inline_link_clicks per adset.
Set budget = Meta daily budget setting on each adset; actual = delivered spend averaged over L30. ASC/ABO campaigns can significantly over/under-deliver daily budgets depending on auction availability.