Proposed Feature · Paid vs Organic Channel Split
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.
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.
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.
| 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 |
| 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 |
Proposed Feature · Weekly Spend by Product
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.
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.
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.
| Product | Sessions | Ad $/sess | Net $/sess | Status |
|---|---|---|---|---|
| Porsche Surf | 14,213 | $0.89 | $1.37 | Mixed |
| Risky Business | 12,922 | $0.34 | $1.34 | Mixed |
| Ride West | 11,296 | $0.35 | $0.55 | Mixed |
| Horsepower | 10,682 | $0.52 | $2.14 | Strong |
| Poolside St. Moritz | 8,452 | $0.63 | $0.98 | Mixed |
| Letting Go | 7,935 | $0.85 | $1.64 | Strong |
| 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
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.
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.
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.
| 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 |
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
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.
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.
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.
| Product | L7D Sess | Net $/sess | Trend | Status |
|---|---|---|---|---|
| Porsche Surf | 3,312 | $1.37 | → ×1.00 | Mixed |
| Risky Business | 2,904 | $1.34 | ↑ ×1.21 | Mixed |
| Ride West | 2,540 | $0.55 | ↓ ×0.50 | Mixed |
| Horsepower | 2,490 | $2.14 | ↑ ×1.44 | Strong |
| Mediterranean | 74 | $1.82 | ↑ ×2.40 | Watch |
| Misty Bells | 31 | $1.10 | ↑ ×1.80 | Watch |
| Canvas Print Co. | 42 | $0.91 | ↓ ×0.62 | Weak |
| Product | L7D Sess | Net $/sess | Trend | Status |
|---|---|---|---|---|
| Porsche Surf | 3,312 | $1.37 | → ×1.00 | Mixed |
| Risky Business | 2,904 | $1.34 | ↑ ×1.21 | Mixed |
| Ride West | 2,540 | $0.55 | ↓ ×0.50 | Mixed |
| Horsepower | 2,490 | $2.14 | ↑ ×1.44 | Strong |
| Mediterranean | 74 | $1.82 | ↑ ×2.40 · borderline | Watch |
| Misty Bells | 31 | $1.10 | ↑ noise — <50 sess | Watch |
| Canvas Print Co. | 42 | $0.91 | ↓ noise — <50 sess | Weak |
Proposed Feature · Impact-Ranked Swap Candidates
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.
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.
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.
| 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 |
Proposed Feature · Scale Decision — International Markets
A per-market panel (US · CA · UK · AU) layering Meta ad spend data with GA4 catalog traffic quality — blended ROAS, quality CPC by top cities × age, click-to-session delivery rate, and $/sess trend sparklines on catalog PDPs.
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.
An explicit SCALE / HOLD / PULL BACK signal per market — with transparent rule thresholds — so budget changes are driven by data, not gut reads of Meta screenshots. From this panel: lift CA by 30%, hold UK, investigate AU delivery quality.
Budget decisions made ad-hoc from screenshots like this. No consistent rule. No blended ROAS. No click quality signal.
Full detail per market in cards below ↓
Market Detail Cards
≥ 3.0
AND quality CPC ≤ 1.3× overall CPC
AND $/sess trend flat-or-up
< 1.5
OR delivery rate < 60%
- Spend, CPC, clicks, link clicks, LPVs, 25–45 age share, region breakdown — LIVE from Meta Graph API v19.0, act_16731102, L30d Jun 27–Jul 26 2026.
- 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_marketexists but is currently empty (0 rows). Figures derived from Meta LPV delivery rates and known context. - Top-5 cities — ≈ estimated from region data (Meta provides state/province level, not city). Cities inferred from region share.
- Quality CPC — LIVE calculation: Meta spend ÷ (link_clicks × 25–45 age share). Age share from Meta age breakdown.
- Delivery rate — LIVE: Meta landing_page_views ÷ inline_link_clicks per campaign.