Overview
One screen, every domain. Contribution profit is the north star, not revenue.
Meta paid $3,303 to acquire 22 purchases. That is $150 per purchase, against the $43.70 max CPA (at 64% gross margin and $71.94 AOV). The blended number across all 23 Shopify orders is $143 per order. Both are running 2.5 to 2.9x above the sustainable cap. Contribution is negative at this stage. The next step is to identify the winning angles (Deep Sleep, Before/After) and scale those while killing the 65+ age group that drives the worst CPM and ROAS.
| Channel | Share | Orders | Revenue | Media cost | ROAS |
|---|---|---|---|---|---|
| Paid social (Meta LC) | 21 | $1,407.65 | $3,303.05 | 0.43 | |
| Direct / Organic / Email | 2 | $329.82 | owned | ∞ | |
| Total blended | 23 | $1,737.47 | $3,303.05 | 0.53 |
| Channel | Revenue | Gross profit (78%) | Media cost | Contribution |
|---|---|---|---|---|
| Paid social (Meta) | $1,407.65 | $1,098 | $3,303.05 | -$2,205 |
| Direct / Organic / Email | $329.82 | $257 | owned | $257 |
| Total (before shared variable) | $1,737.47 | $1,355 | $3,303.05 | -$1,948 |
| # | Ad | Spend | Impr. | Link clicks | CTR | CPC | Purch. | Revenue | ROAS |
|---|---|---|---|---|---|---|---|---|---|
| 1 | CBOPack2_DareYou_AD03 | $186.21 | 1,825 | 58 | 3.18% | $3.21 | 2 | $189.96 | 1.02 |
| 2 | AD1_Engaged Shoppers | $645.33 | 6,009 | 215 | 3.58% | $3.00 | 8 | $394.87 | 0.61 |
| 3 | P01_SLEEP_CHALLENGE_AD02_V1 | $594.55 | 4,739 | 241 | 5.09% | $2.47 | 3 | $242.94 | 0.41 |
Meta Ads
The full campaign report, every section. Select one campaign or several to combine.
Targets
Core metrics
Ads
| Ad | Launched | Spend | Impressions | CTR | CPC | Purchases | CPA | ROAS | Revenue |
|---|
| Ad | Launched | Days live | Spend | Impressions | CTR | CPC | Purchases | ROAS | Revenue |
|---|
Performance breakdown
Configure cost
Add target
| Funnel layer | Optimised for | Spend | Share | Campaigns |
|---|---|---|---|---|
| Account total | $0.00 | 100% | ||
| Source | Window | Orders | Revenue | ROAS | Cost / order |
|---|---|---|---|---|---|
| Meta pixel, reported | 7-day click, 1-day view | 22 | $1,491.08 | 0.46 | $147.34 |
| Shopify, last-click UTM (paid) | last-click, UTM matched | 21 | $1,407.65 | 0.43 | $154.36 |
| Shopify, unattributed orders | no UTM tag | 2 | $329.82 | n/a | n/a |
| Shopify total (all sources) | all channels | 23 | $1,737.47 | n/a | $71.94 |
Practical rule: read CPM, CPC and CTR from Meta (media metrics are accurate); read purchase counts and revenue from Shopify last-click UTM for cleaner attribution.
Combined figures recompute when you select campaigns above. Shopify figures are last-click UTM attributed from the order customer journey (real, native Shopify data). Across all four campaigns $1,407.65 of the $1,737.47 total sales is attributed to a campaign, the remaining $329.82 came in organic, direct or without a journey (including the $239.85 bundle). Link clicks are only known at the account total, so they show n/a for a subset.
How this period compares to the one before it of the same length.
Select a range where the previous window also has data to see period-over-period numbers. The campaigns started 5 Jun 2026, so only ranges from late June onward have a comparable prior window.
The whole funnel follows the date picker. Sessions, add to cart and checkouts are store-wide from Shopify Analytics (all traffic sources, not only Meta); link clicks and purchases are Meta.
| # | Campaign | Spend | Impr. | CTR | CPC | CPM | Purch. | ROAS | C/Purch. |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Prospecting_CBO_Engaged Shoppers | $1,606.22 | 14,437 | 2.95% | $3.77 | $111.26 | 13 | 0.54 | $123.56 |
| 2 | Test_ABO | $817.17 | 7,303 | 3.64% | $3.07 | $111.90 | 6 | 0.48 | $136.20 |
| 3 | Prospecting_CBO | $629.60 | 5,048 | 7.45% | $1.67 | $124.72 | 3 | 0.39 | $209.87 |
| 4 | Prospecting_CBO_C | $250.06 | 1,795 | 4.29% | $3.25 | $139.31 | 0 | - | - |
| TOTAL · 4 sales campaigns | $3,303.05 | 28,583 | 3.15% | $3.67 | $115.56 | 22 | 0.45 | $150.14 |
| # | Ad set (angle) | Campaign | Spend | Impr. | Link clicks | CTR | CPC | CPM | Purch. | ROAS |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Pack_1_Engaged Shoppers | Engaged Shoppers | $702.13 | 6,799 | 376 | 5.53% | $1.87 | $103.27 | 8 | 0.56 |
| 2 | Pack1_WarmingUp_5jun | Prospecting_CBO | $626.81 | 5,021 | 376 | 7.49% | $1.67 | $124.84 | 3 | 0.39 |
| 3 | CBOPack2_DareYou | Engaged Shoppers | $245.67 | 2,156 | 98 | 4.55% | $2.51 | $113.95 | 2 | 0.77 |
| 4 | COPY_Pack5_Winning1 | Prospecting_CBO_C | $217.14 | 1,577 | 72 | 4.57% | $3.02 | $137.69 | 0 | - |
| 5 | Pack5_Winning1 | Engaged Shoppers | $195.92 | 1,666 | 63 | 3.78% | $3.11 | $117.60 | 1 | 0.46 |
| 6 | CBO_TestPack11_Deep_Sleep | Engaged Shoppers | $176.84 | 1,430 | 35 | 2.45% | $5.05 | $123.66 | 2 | 1.07 |
| 7 | TestPack1_BeforeAfter | Test_ABO | $145.24 | 1,419 | 47 | 3.31% | $3.09 | $102.35 | 2 | 1.07 |
| 8 | TEST_9K CBO_TestPack11_Deep_Sleep | Engaged Shoppers | $97.61 | 673 | 26 | 3.86% | $3.75 | $145.04 | 0 | - |
| 9 | TestPack2_Comparison | Test_ABO | $93.23 | 1,132 | 34 | 3.00% | $2.74 | $82.36 | 1 | 0.59 |
| 10 | TestPack3_3AM Awake | Test_ABO | $92.77 | 750 | 29 | 3.87% | $3.20 | $123.69 | 1 | 0.43 |
| 11 | TestPack4_PillKiller | Test_ABO | $90.25 | 1,004 | 35 | 3.49% | $2.58 | $89.89 | 0 | - |
| 12 | TestPack5_Comparison_Female | Test_ABO | $76.26 | 650 | 27 | 4.15% | $2.82 | $117.32 | 1 | 1.31 |
| + 11 more smaller ad sets | all campaigns | $493.21 | 3,918 | 141 | 3.60% | $3.50 | $125.88 | 1 | - | |
| TOTAL · 23 ad sets | $3,253.08 | 28,195 | 1,359 | 4.82% | $2.39 | $115.38 | 22 | 0.46 |
Women drove more of the spend and engaged harder: $1,590 at a 6.27% CTR and a $2.25 cost per click, versus $1,335 for men at 4.32% and a pricier $2.62 per click. The audience that responds is skewing female.
| Gender | Impr. | % Impr. | CPM | Spend | Link CTR | Link CLK | Cost/CLK | Sales* | CR* | Revenue* | ROAS* | CPA |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Female | $1,590.05 | 11,406 | 739 | 6.48% | $2.15 | $139.41 | ||||||
| Male | $1,334.92 | 12,967 | 524 | 4.04% | $2.55 | $102.95 | ||||||
| Unknown | $22.59 | 305 | 13 | 4.26% | $1.74 | $74.07 | ||||||
| TOTAL |
This is a mobile audience: 88% of spend ran on mobile ($2,376) at a 5.22% CTR, against just $201 on desktop at a weak 2.91%. Build and test for mobile first.
| Device | Impr. | % Impr. | CPM | Spend | Link CTR | Link CLK | Cost/CLK | Sales* | CR* | Revenue* | ROAS* | CPA |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Mobile (app + web) | $2,376.84 | 19,943 | 1,072 | 5.38% | $2.22 | $119.18 | ||||||
| Tablet | $357.82 | 2,593 | 124 | 4.78% | $2.89 | $138.00 | ||||||
| Desktop | $200.60 | 2,978 | 73 | 2.45% | $2.75 | $67.36 | ||||||
| Other | $12.29 | 164 | 8 | 4.88% | $1.54 | $74.94 | ||||||
| TOTAL |
Facebook carried the spend: 81% of spend ($2,441), the best CTR (5.28%) and the cheapest clicks ($2.09). Instagram cost far more per click ($4.12) at a lower 3.54% CTR, and Threads plus Audience Network were rounding errors.
| Platform | Impr. | % Impr. | CPM | Spend | Link CTR | Link CLK | Cost/CLK | Sales* | CR* | Revenue* | ROAS* | CPA |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| $2,440.78 | 22,047 | 1,154 | 5.23% | $2.12 | $110.71 | |||||||
| $467.14 | 2,941 | 106 | 3.60% | $4.41 | $158.84 | |||||||
| Threads | $31.16 | 480 | 8 | 1.67% | $3.90 | $64.92 | ||||||
| Audience Network | $4.72 | 184 | 4 | 2.17% | $1.18 | $25.65 | ||||||
| TOTAL |
Publisher platform split from Meta. Position-within-platform (feed, reels, stories) is available on request but not shown here.
The money is old: 65+ took $1,968 (60% of spend) at the highest CTR (4.26%), and 55+ together took about 83%. Everyone under 45 is a rounding error. A sleep product selling to older buyers, exactly as expected.
| Age | Impr. | % Impr. | CPM | Spend | Link CTR | Link CLK | Cost/CLK | Sales* | CR* | Revenue* | ROAS* | CPA |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 65+ | $1,798.26 | 14,084 | 772 | 5.48% | $2.33 | $127.68 | ||||||
| 55-64 | $657.91 | 5,982 | 285 | 4.76% | $2.31 | $109.98 | ||||||
| 45-54 | $305.10 | 3,337 | 139 | 4.17% | $2.20 | $91.43 | ||||||
| 35-44 | $155.51 | 1,402 | 60 | 4.28% | $2.59 | $110.92 | ||||||
| 25-34 | $42.55 | 509 | 19 | 3.73% | $2.24 | $83.60 | ||||||
| 18-24 | $8.20 | 112 | 2 | 1.79% | $4.10 | $73.21 | ||||||
| TOTAL |
Breakdown totals are summed per day from the raw store across the selected date range, so they follow the date picker and reconcile to the campaign spend for the same window.
| Day | Dates in range | Spend | Revenue | Sales | Avg ROAS | % vs avg | Avg CTR |
|---|---|---|---|---|---|---|---|
| TOTAL |
Video Ads
Thumbstop, thruplay and Meta ROAS per video ad, pulled straight from Meta video metrics. Static image ads never appear here, only ads that actually returned video plays.
Shopify
Store analytics, worked out to campaign-report depth.
| Offer | Orders | Net sales | Avg order |
|---|---|---|---|
| 1 Box subscription | 6 | $239.94 | $39.99 |
| 1 Box one-time | 7 | $384.86 | $54.98 |
| 3 Box sub, first order | 4 | $359.88 | $89.97 |
| 3 Box sub, repeat order | 1 | $239.85 | $239.85 |
| 3 Box one-time | 5 | $512.94 | $102.59 |
| Total | 23 | $1,737.47 | $71.94 avg AOV |
Inventory levels not connected yet. Wire in Shopify inventory counts to see runway, daily sell rate and auto-computed reorder dates per variant.
Country-level session breakdown is not pulled into this snapshot yet.
Total discounts Jun-Jul 2026: $1,065.09 across 23 paid orders, equal to 38.0% of gross sales ($2,802.56). Discounts are the single largest cost after ad spend. Per-code breakdown is not pulled yet.
| Metric | Value | Notes |
|---|---|---|
| Total discount given | $1,065.09 | across all 23 orders |
| Avg discount per order | $46.31 | $1,065.09 / 23 orders |
| Discount rate | 38.0% | of gross $2,802.56 |
| Orders with discount | 23 | all orders used a code or price rule |
| Per-code breakdown | not available | individual code tracking not pulled yet |
No data yet. RFM scoring requires repeat-purchase history, which does not exist after only one month of sales.
Economics
Single source of truth for costs, offer, margin and max CPA. Jun 2-Jul 2 2026 run.
A high CPA is expected in a cold-traffic launch; the target is under $50 at scale. The break-even ceiling rises once a repeat-purchase rate settles, because LTV lets you absorb a higher first-order cost.
| Offer | Jun orders | Money in | COGS | Card fee | Margin $ | Margin % |
|---|---|---|---|---|---|---|
| 1 Box subscription | 6 | $44.98 | $8.80 | $1.60 | $34.58 | 76.9% |
| 1 Box one-time | 7 | $54.98 | $8.80 | $1.88 | $44.30 | 80.6% |
| 3 Boxes sub, first order | 4 | $89.97 | $26.95 | $2.90 | $60.12 | 66.8% |
| 3 Boxes sub, repeat | 1 | $89.97 | $16.45 | $2.90 | $70.62 | 78.5% |
| 3 Boxes one-time | 5 | $99.99 | $26.95 | $3.19 | $69.85 | 69.9% |
| Blended (actual Jun order mix, 23 orders) | 23 | $71.94 avg | $16.23 avg | $2.48 avg | $51.21 avg | 67.8% |
COGS is the strips plus the Deep Sleep Mask on first 3-box and one-time orders; repeat 3-box ships without the mask. Card fee: 2.9% + $0.29 per order (Shopify Payments international rate). Blended margin uses the actual order mix, not a planning assumption.
Jun 2026: paid CPA is $143.61 ($3,303 spend on 23 orders). Blended ROAS 0.53, Meta ROAS 0.45. At AOV $71.94 and first-order break-even of $43.70, we are buying orders above our own margin - payback requires at least one repeat order. This is expected in a cold-traffic launch. As creative improves and the audience warms, CPA falls. Once a repeat rate is established, the blended CAC (which will include organic and direct orders) will close the gap to the $43.70 ceiling.
| Metric | Jun 2026 actual | Target | Status |
|---|---|---|---|
| Cost per order | $143.61 | under $50 | 2.9x above ceiling |
| Blended ROAS | 0.53 | above 1.56 | below break-even |
| Meta ROAS | 0.45 | above 1.56 | below break-even |
| Contribution profit | -$2,313.55 | positive | launch phase loss |
| First-order margin | $51.21 avg | above $43.70 | offer mix pulling down |
| CAC payback | no data yet | within 30-60 days | awaiting repeat orders |
These are first-run numbers off a cold audience with no prior creative history. The CPA gap closes through better creative (lower CPC), warmer audiences (higher CVR) and repeat orders layering on top. CAC payback can be computed once the June 2026 cohort has had 60 days to reorder.
No data yet. Only June 2026 has real numbers. CAC trend, word-of-mouth share and referral coefficient need several months of comparable data. Revisit after August 2026 when three full months can be compared.
No data yet. Inventory value, reorder schedule and 3PL payment terms are not in this snapshot. Add stock levels and supplier terms to the intake doc to enable the cash conversion cycle view.
No data yet. Upload a 3PL invoice to the intake doc and re-run /collect-data. This section rebuilds the expected fulfillment cost from Shopify order volume and flags any lines that deviate from contract rates.
No data yet. Cohort LTV needs at least two months of repeat-purchase history. Jun 2026 is the first full month. This section opens once the June cohort has had 60+ days to reorder (August 2026).
Full path from revenue down to contribution profit. Ad spend at 190% of revenue is the defining feature of a cold-traffic launch. The gross margin on the product itself (78.5%) is strong - the only variable that needs to move to reach profitability is CPA.
| Line | Amount | % of revenue |
|---|---|---|
| Gross revenue (before discounts) | $2,802.56 | 161.3% |
| Discounts applied | -$1,065.09 | -61.3% |
| Total net revenue | $1,737.47 | 100.0% |
| Cost of goods sold | -$373.40 | -21.5% |
| Gross profit | $1,364.07 | 78.5% |
| Ad spend (Meta SALES campaigns only) | -$3,303.05 | -190.1% |
| Payment and processing fees | -$57.06 | -3.3% |
| Refunds and chargebacks | $0.00 | 0.0% |
| Contribution profit | -$1,996.04 | -114.9% |
Contribution profit = net revenue minus COGS, fees, refunds and ad spend. A 4% refund floor is applied as a structural buffer even when actual refunds are lower. Operating profit subtracts fixed monthly costs on top of contribution.
| Leak | The metric | Gap | Fix | Status |
|---|---|---|---|---|
| CPA 2.9x above ceiling | $143.61 vs $50 target · creative + audience | $2,153/mo | Creative testing, ad efficiency | building |
| High discount rate compressing margin | 38% effective discount rate · $1,065 on $2,803 gross | $491/mo | Test lower discounts, monitor CVR | watch |
| No email / owned-channel revenue yet | 5 live Klaviyo flows, revenue not tracked separately yet | unknown | Tag email-attributed orders in Shopify | flows live |
| No repeat orders in period yet | All 23 orders are first orders · LTV not yet layering | unknown | Wait for June cohort to hit day 30-60 | building |
| Tool / cost | Category | Plan | Monthly (USD) |
|---|---|---|---|
| Shopify | E-commerce platform | Basic plan | $32.00 |
| Kaching Cart + Subscriptions + Bundles | Cart, subscriptions, bundles (3-app bundle 20% off) | Standard / Starter | $27.97 |
| 17TRACK | Order tracking | Pro (500 shipments) | $29.00 |
| Microsoft Clarity | Product analytics | Free | $0.00 |
| Klaviyo | Email and flows | Base plan | $19.63 |
| Submagic | Video caption editing | Pro | $78.54 |
| Canva | Design | Pro | $13.66 |
| ElevenLabs | AI voice | Creator | $6.00 |
| ChatGPT | AI assistant | Plus | $21.64 |
| Claude | AI assistant + dashboard agents | Pro | $102.44 |
| Obsidian | Vault and ops | Sync | $14.96 |
| Google Workspace | Email and domain | Business Starter | $8.96 |
| WeTracked | Attribution reference | Growth | $56.91 |
| App subscriptions subtotal | $411.71 | ||
| UpPromote Professional | Affiliate platform (fixed base) | Professional | $89.99 |
| UpPromote variable | Affiliate commissions | 1.5% of affiliate sales | variable |
| Other fixed subtotal | $89.99 | ||
| Total fixed monthly cost | $526.70 | ||
Payment processing fees (2.9% + $0.29 per order) are already captured in the contribution P&L above as variable costs - no double count here. UpPromote's 1.5% variable commission applies only to affiliate-driven orders and is excluded from the fixed total. Operating profit = contribution profit less this total.
No data yet. A spend-response curve needs several distinct spend levels over time. Jun 2026 gives a single data point ($3,303 spend, ROAS 0.53). The curve and scenario planner unlock after a few months of varied spend.
No data yet. The scenario planner runs on the spend-response curve above. Unlocks alongside it. Currently: $3,303 spend produced 23 orders at $143.61 CPA and -$1,996 contribution. Scale by reducing CPA, not by adding spend to the same creative.
Retention & LTV
What a customer is actually worth after the first order. Cohort retention, lifetime value curves and value by acquisition channel.
LTV:CAC below 1.0 means each customer returns less than one acquisition dollar on the first order alone. Reaching 1.0 on contribution needs either a lower CPA or more repeat orders per customer. These numbers update as the cohort reorders.
| Cohort | Size | M1 | M2 | M3 | M4 | M5 | M6 |
|---|---|---|---|---|---|---|---|
| Jun 2026 | 23 | to come | to come | to come | to come | to come | to come |
M1 (first repeat window) opens once a cohort has had 30+ days: 1-box 4-week subscribers reorder first, the 3-box 12-week cycle later. Cancelled subscribers count as churn from the cohort. Heatmap cells fill in green as data matures.
A 0% rate is expected before any customer has had 30+ days to reorder. The meaningful read on product strength comes once the first subscription windows close and we count who reordered versus who cancelled.
| First order at | New cust. | CPA | R-% 90d | M0 (actual) | M1 | M2 | M3 | M4 | M5 | M6 |
|---|---|---|---|---|---|---|---|---|---|---|
| Jun 2026 | 23 | $143.61 | 0% (no data) | $71.94 | to come | to come | to come | to come | to come | to come |
No data yet. June 2026 is the first sales month, so no repeat cohort history exists. These curves populate automatically from actual reorder data once the first subscription windows close (expected Aug 2026 onwards). No projected curve is drawn in the meantime.
| Channel | Orders | % of new | CPA | Rev LTV (M0) | Contrib LTV (M0) | LTV : CAC |
|---|---|---|---|---|---|---|
| Paid social (Meta) | 21 | 91.3% | $157.29 | $66.98 | $51.21 | 0.33 |
| Organic / direct | 2 | 8.7% | $0.00 | $164.91 | $51.21 | unlimited |
| Blended | 23 | 100% | $143.61 | $71.94 | $51.21 | 0.36 |
Subscriptions
The recurring base underneath the one-time orders. MRR movement, subscriber growth, plan mix and churn, from the weekly Kaching export.
Every Sunday you export all subscriptions from the Kaching Subscriptions app and upload it here. The dot turns orange after 8 days and red after 11 days, so you always know when the recurring numbers need a refresh. Thresholds: green 0-7 days, orange 8-10, red 11 or more.
MRR sums each active subscriber's monthly-equivalent revenue (a 3-box billed every 12 weeks counts as a third of $89.97 per month; a 1-box is billed every 4 weeks). Early read: the longer, bigger cadence retains better, possibly because users feel they have enough time to see results.
| Movement | Subscribers | MRR impact | Running MRR |
|---|---|---|---|
| Starting MRR (new program) | 0 | baseline | $0.00 |
| New subscriptions (10 total) | +10 | +$359.90 | $359.90 |
| Reactivations | +0 | none yet | $359.90 |
| Churned (3 x 1-box cancelled) | -3 | -$119.97 | $239.93 |
| Ending MRR (1 Jul 2026) | 7 | +$239.93 net | $239.93 |
Gross monthly churn rate = churned MRR / starting MRR. A high first-month rate here is driven entirely by the 1-box cadence.
The 3-box plan charges less often (every 12 weeks vs every 4) but bills a larger amount per delivery, so it generates steadier MRR per subscriber than the 1-box plan.
| Plan | Price | Cadence | Started | Active | Cancelled | Churn |
|---|---|---|---|---|---|---|
| 3 Boxes | $89.97 | every 12 weeks | 4 | 4 | 0 | 0% |
| 1 Box | $39.99 | every 4 weeks | 6 | 3 | 3 | 50% |
| Total | blended | mixed | 10 | 7 | 3 | 30% |
Cancellations concentrate entirely in the 1-box 4-week cadence, which may feel too frequent for some customers, while the 3-box 12-week plan has held at zero churn.
| Metric | 3-box sub | 1-box sub | One-time |
|---|---|---|---|
| Price per delivery | $89.97 | $39.99 | $71.94 avg AOV |
| Billing cadence | every 12 weeks | every 4 weeks | single order |
| Monthly revenue equiv. | $29.99 | $39.99 | $0 recurring |
| COGS per order | $16.45 (repeat) | $8.80 | $16.23 avg |
| Gross margin per order | 81.7% | 78.0% | 67.8% |
3-box repeat orders ship without the Deep Sleep Mask, so their COGS is lower and gross margin higher than the first order. Subscriber LTV is not projected here: it appears only once real billing cycles complete, so no assumed retention curve is shown as a value.
| Reason | Count | Action |
|---|---|---|
| Reason not captured | 3 | add cancel survey to Kaching flow |
| All were 1-box (4-week cadence) | 3 | test skip / 6-week option |
| None from 3-box (12-week) | 0 | holding |
Cancel reason is not captured in the current Kaching export. The strongest signal is structural: 100% of cancellations are from the 4-week plan. Add a cancel reason survey to the Kaching cancel flow. Most likely culprits for 4-week churn: product accumulating too fast, price per month feeling high vs one-time, or insufficient time to experience results before the next charge.
Clarity
Behaviour signals from Microsoft Clarity. Current plan: rolling 3-day window only. Data always reflects the last 3 days before the snapshot date.
Rage clicks and quick backs are the most meaningful signals here: zero of both means visitors are not immediately frustrated or bouncing on arrival. Dead clicks are worth watching. Friction counts on a rolling 3-day window are too small to read as a trend. Upgrade to Clarity Premium for persistent data, scroll depth heatmaps and per-page recommendations.
Read the funnel to find the biggest leak. Add-to-cart is usually the weakest step for cold paid traffic: the lever is getting more visitors to engage with the product page enough to add. Checkout abandonment is the secondary lever once add-to-cart improves.
Not available on this plan. Web vitals (LCP, CLS, FID) measure how fast and stable the page feels, and they affect Google ad quality scores and Meta landing page experience ratings. Run a Lighthouse audit or connect Google Search Console to get LCP, CLS and FID for the product page. Target: LCP under 2.5s, CLS under 0.1, FID under 100ms.
The current Clarity plan gives friction signals (rage clicks, dead clicks, quick backs) and the rolling 3-day session window. Upgrade to Clarity Premium to unlock persistent data, scroll heatmaps, click maps and per-page CVR by device. These are the inputs needed to run systematic PDP conversion tests.
Ads
Creative library across campaigns, ranked by Meta ROAS, tied to the hypothesis tracker. Period: 2 Jun to 2 Jul 2026.
Per-ad Meta figures for the snapshot period. Rows are the ads that each drove at least one Meta-attributed purchase; ads with spend but no attributed purchase are excluded. ROAS is Meta last-click (a floor, undercounts versus Shopify). CTR = link clicks / impressions; CPC = spend / link clicks.
| # | Ad | Spend | Impr. | Link clicks | CTR | CPC | Purch. | Revenue | ROAS |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Ad9_Comparison (noise, $4 spend) | $4.23 | 53 | 2 | 3.77% | $2.12 | 1 | $54.99 | 13.00 |
| 2 | Ad5_B/A | $67.80 | 715 | 14 | 1.96% | $4.84 | 2 | $155.26 | 2.29 |
| 3 | W_TestPack6_Comparison_AD04 | $50.54 | 513 | 10 | 1.95% | $5.05 | 1 | $89.96 | 1.78 |
| 4 | TestPack11_Deep_Sleep_AD02 | $107.74 | 891 | 15 | 1.68% | $7.18 | 2 | $189.62 | 1.76 |
| 5 | TestPack5_Comparison_AD02 | $65.79 | 559 | 17 | 3.04% | $3.87 | 1 | $100.00 | 1.52 |
| 6 | CBOPack2_DareYou_AD03 | $186.21 | 1,825 | 58 | 3.18% | $3.21 | 2 | $189.93 | 1.02 |
| 7 | TestPack6_Comparison_AD04 | $51.65 | 414 | 11 | 2.66% | $4.70 | 1 | $39.77 | 0.77 |
| 8 | AD1_Engaged Shoppers | $645.33 | 6,009 | 215 | 3.58% | $3.00 | 8 | $393.65 | 0.61 |
| 9 | Ad5_3AMAwake | $75.78 | 545 | 15 | 2.75% | $5.05 | 1 | $40.16 | 0.53 |
| 10 | P01_SLEEP_CHALLENGE_AD02_V1 | $594.55 | 4,739 | 241 | 5.09% | $2.47 | 3 | $243.77 | 0.41 |
| Total (10 ads with purchases) | $1,849.62 | 16,263 | 608 | 3.74% | $3.04 | 22 | $1,497.11 | 0.81 |
Highlighted rows are above break-even ROAS. A very high ROAS on tiny spend (one order, a handful of clicks) is statistical noise, not a scalable signal. The efficiency drag to watch is any high-spend ad sitting below break-even: those absorb most of the budget while returning the least.
Video engagement metrics (thumbstop rate, thruplay rate) are not returned by the Meta API when ads run as static image formats or when the fields are missing from the pull. Until they populate, the efficiency signal comes from CTR and ROAS on meaningful spend.
| Ad | Spend | Impr. | CTR | CPC | Purch. | Meta ROAS | Signal |
|---|---|---|---|---|---|---|---|
| Ad5_B/A | $67.80 | 715 | 1.96% | $4.84 | 2 | 2.29 | above BE |
| W_TestPack6_Comparison_AD04 | $50.54 | 513 | 1.95% | $5.05 | 1 | 1.78 | above BE |
| TestPack11_Deep_Sleep_AD02 | $107.74 | 891 | 1.68% | $7.18 | 2 | 1.76 | above BE |
| TestPack5_Comparison_AD02 | $65.79 | 559 | 3.04% | $3.87 | 1 | 1.52 | above BE |
| CBOPack2_DareYou_AD03 | $186.21 | 1,825 | 3.18% | $3.21 | 2 | 1.02 | near BE |
| TestPack6_Comparison_AD04 | $51.65 | 414 | 2.66% | $4.70 | 1 | 0.77 | below BE |
| AD1_Engaged Shoppers | $645.33 | 6,009 | 3.58% | $3.00 | 8 | 0.61 | below BE |
| Ad5_3AMAwake | $75.78 | 545 | 2.75% | $5.05 | 1 | 0.53 | below BE |
| P01_SLEEP_CHALLENGE_AD02_V1 | $594.55 | 4,739 | 5.09% | $2.47 | 3 | 0.41 | below BE |
| Ad9_Comparison (noise) | $4.23 | 53 | 3.77% | $2.12 | 1 | 13.00 | noise |
| Account avg (purchase ads only) | $184.96 | 1,626 | 3.74% | $3.04 | 2.2 | 0.81 | - |
"Above BE" means the ad is profitable at current margins (ROAS above break-even). Watch for the largest spenders sitting below break-even: they consume a disproportionate share of budget relative to the revenue they return. To add thumbstop and thruplay rates, add video_play_actions and video_thruplay_watched_actions to the ad-level insights call in /collect-data.
No decay curve drawn yet. Real frequency is not pulled at the ad level. Add frequency to the ad-level breakdown call in /collect-data and this fills with per-ad CTR-vs-frequency curves. No illustrative trend is shown in the meantime.
Ranked by Meta ROAS on spend above $50 (the floor for a meaningful read). The volume leader is shown even when it sits near break-even, since total spend and order count matter for scaling decisions. The angles above break-even are the efficiency winners to scale.
| Pack | Ad | Hook | Exp. CTR | Exp. ROAS | Status |
|---|---|---|---|---|---|
Verdict symbols: checkmark confirmed (actual ≥ expected) · warning partial (within 20%) · x refuted (>20% below) · clock pending. A verdict is called once an ad accumulates 50+ link clicks or 14 days of run time, whichever comes first.
Statistical significance testing compares two variants on the same metric (purchase rate) and asks: is this difference real or just luck? You need at least 50 link clicks per variant to call a test at 95% confidence with a realistic lift of 20-30%. Below that threshold, most comparisons cannot be called yet.
An ad is considered fatiguing when frequency exceeds 3.5 (the same person has seen it 3 to 4 times). At that point CTR and ROAS typically drop 15-25%. The fix is always the same: refresh the creative before frequency peaks, not after.
No days-until-fatigue chart drawn yet. It populates once frequency is pulled per ad, so the timeline is built from each ad's real frequency trajectory rather than an assumed curve.
Scaling depends on finding winners faster than the current ads fatigue. This tracks how many hypotheses entered the pipeline and how many have been called. While hypotheses are still pending and no verdicts have been issued, the system is in the learning phase and the volume to call tests is still building.
| Pack | Angle | Launched | Ads | Hypotheses | Verdict | Lead ROAS |
|---|---|---|---|---|---|---|
| Pack 11 | Deep Sleep | 1 Jul 2026 | 10 | - | no data yet | - |
| Pack 8 | Comparison | 20 Jun 2026 | 4 | 4 | pending | - |
| Pack 7 | Comparison | 20 Jun 2026 | 5 | 5 | pending | - |
| Pack 6 | Comparison | 20 Jun 2026 | 4 | 4 | pending | 1.78 |
| Pack 5 | Comparison | 20 Jun 2026 | 5 | 5 | pending | 1.52 |
| Pack 11 (Deep Sleep) | Deep Sleep | Jun 2026 | 1 | - | pending | 1.76 |
| CBOPack2 (Dare You) | Challenge | Jun 2026 | 1 | - | pending | 1.02 |
| Ad5 (B/A) | Before/After | Jun 2026 | 1 | - | pending | 2.29 |
| Total active packs (5-8 + B/A + DS + CBO) | - | - | 21 | 18 | 0 called | - |
Above-break-even ads on low volume are directional wins, not confirmed wins yet: each needs several times more link-click volume before a statistical verdict is possible. The priority action is to move budget out of the high-spend ads sitting below break-even and into the above-break-even ads. That reallocation moves account blended ROAS toward break-even without launching a single new creative.
Email & Flows
Owned-channel setup in Klaviyo. 5 flows are live and have been firing since the first orders on 5 Jun 2026. Performance metrics (open rates, revenue, CVR per flow) are not yet pulled into this snapshot.
No data yet. Populates once /collect-data pulls Klaviyo flow revenue metrics. No estimated flow revenue is drawn in the meantime.
No data yet. Populates once /collect-data pulls Klaviyo list size history.
The live flows have been firing since the first orders. Recipient counts below are estimated from order and checkout volume, not measured. Actual send counts and performance metrics are not yet pulled from Klaviyo.
| Flow | Status | Trigger | Est. recipients | Open rate | Revenue | Priority |
|---|---|---|---|---|---|---|
| Abandon Checkout | live | Checkout started, no purchase | ~14 | not pulled | not pulled | watch first |
| Post-Purchase - The Wait | live | Order placed (between order + delivery) | ~23 | not pulled | - | active |
| Post-Purchase - First 90 Nights Guide | live | Order placed (nurture sequence) | ~23 | not pulled | - | active |
| Sleep Mask Early Access - Auto-Ship Confirmation | live | Subscription order placed | ~7 | not pulled | - | active |
| Lead Magnet - Sleep Guide Delivery | live | Sleep guide opt-in form | unknown | not pulled | - | active |
| Essential Flow Recommendation | draft | - | - | - | - | not live |
| Post-Purchase - 3-Box $10 Coupon | draft | - | - | - | - | not live |
| 5 live, 2 draft | - | - | ~67 est. total sends | Add Klaviyo metrics to /collect-data to unlock performance data | ||
The Abandon Checkout flow is the highest-value metric to watch first. Industry benchmarks for DTC run $0.80-1.20 per recipient, so recovered revenue could be meaningful, or nothing if the emails are not landing or the copy is misaligned with the ad hook. That variance is worth measuring now: recovered checkout revenue is the cheapest lever to close part of the ad efficiency gap.
What each live flow is designed to do in the customer journey, from first touch to repeat.
| Flow | Stage | Goal | Draft flows to activate next |
|---|---|---|---|
| Lead Magnet - Sleep Guide Delivery | Pre-purchase | Deliver sleep guide, warm lead, bridge to first offer | Essential Flow Recommendation - add upsell/recommendation logic after initial purchase Post-Purchase - 3-Box $10 Coupon - move 1-box buyers toward the higher-margin 3-box subscription. With 7 subscription converts out of 23 orders (30%), this could lift that rate significantly |
| Abandon Checkout | Pre-purchase | Recapture ~14 abandoners, highest ROI flow in any DTC account | |
| Post-Purchase - The Wait | Post-purchase | Reduce anxiety between order and delivery, set expectations | |
| Post-Purchase - First 90 Nights Guide | Post-purchase | Drive product use and results, reduce refunds, seed repeat | |
| Sleep Mask Early Access - Auto-Ship Confirmation | Subscription | Confirm recurring order, reinforce value of the subscription |
Broadcasts are a reach play, not a revenue engine at this scale. Flows carry the owned-channel revenue. Once list sizes are pulled, broadcast potential can be estimated: at 35% open rate and 1.8% CTR (DTC average), each send to 1,000 subscribers generates roughly 3-5 orders. First send should align with whichever ad angle is currently working in paid.
| List | Subscribers |
|---|---|
| Email List | not pulled |
| Lead Magnet - Sleep Guide Opt-In | not pulled |
| Sleep Mask Early Access | not pulled |
| Preview List | not pulled |
| Text Messaging List | not pulled |
| 5 lists total | add list metrics to /collect-data |
Subscriber counts unlock once /collect-data pulls the Klaviyo list API. Until then, the Lead Magnet list is the key growth metric - every sleep guide opt-in is a warm lead not yet captured in the current snapshot.
Trends
Where the headline KPIs sit today and where they need to go. One month of real data is the baseline. This page builds as months accumulate.
| Month | Revenue | Ad spend | Blended ROAS | CAC | CVR | AOV | Orders | Contribution |
|---|---|---|---|---|---|---|---|---|
| Jun 2026 (actual) | $1,762.42 | $3,303.05 | 0.53 | $143.61 | 1.30% | $71.94 | 23 | -$1,996 |
| Monthly target | $22,662 | $5,000 | 4.53 | $50 max | - | $71.94 | 300 | +$4,532 |
The target ROAS is a blended figure across all channels, not paid alone. At target scale most orders come from email and repeat, so the paid channel buys a minority of new customers while email and organic deliver the rest. The break-even threshold for the paid channel alone is the account break-even ROAS defined in metrics-definitions.md.
When AOV and the offer are in the right range, a ROAS gap is usually a budget allocation problem: most of the SALES spend sitting in a few below-break-even ads while the above-break-even ads run on a fraction of the budget. Reallocating spend toward the above-break-even ads at their current ROAS lifts the account blended ROAS above break-even without writing a single new creative or acquiring a new customer type.
This trend page tells the real story once more months are logged. The two metrics to watch week by week: (1) blended ROAS climbing toward break-even as budget reallocates, and (2) subscription MRR growing as active subscribers prove the cadence and new ones are added.
Forecast
Where the numbers go next. Jun 2026 actuals vs targets, scenario projections for Jul, and a goal-seek showing what ROAS is needed to reach each contribution milestone.
The gap to target reflects early scale, not model failure. At target order volume the unit economics produce positive contribution; at low order volume fixed ad costs dominate every unit and produce a loss. The path is scale plus creative efficiency, not a change to the offer.
No scenario projections shown yet. Reliable Jul scenarios need each ad's ROAS to be stable (enough spend per ad to trust the number), which the first weeks of a new account do not yet provide. Rather than present a modelled revenue figure as if it were real, this section stays empty and the formula-driven goal-seek below carries the forward view. Scenarios populate automatically once ad-level ROAS settles.
What ROAS does each contribution target require at the current spend level?
| Contribution target | Revenue needed | ROAS required | Reachable now |
|---|---|---|---|
| Break-even ($0) | $4,639 | 1.56 | yes, if budget reallocated |
| +$500 | $5,341 | 1.62 | possible on 4 above-BE ads |
| +$1,000 | $6,044 | 1.83 | possible if scale holds |
| +$2,000 | $7,448 | 2.25 | not yet - needs Pack 11 + email |
| +$4,532 (monthly target) | $11,004 | 3.33 | not yet - month 4-6 horizon |
Same formula at the $5,000 target spend. Raising spend widens the contribution potential but requires maintaining ROAS under scale pressure.
| Contribution target | Revenue needed | ROAS required | Reachable now |
|---|---|---|---|
| Break-even ($0) | $7,022 | 1.56 | yes, if above-BE ads scale |
| +$1,000 | $8,427 | 1.69 | possible with Pack 11 |
| +$2,000 | $9,831 | 1.97 | needs 3-4 strong ads scaling |
| +$4,532 (monthly target) | $13,388 | 2.68 | month 4-6 with email contributing |
The goal-seek uses 71.2% gross margin (revenue minus COGS, card fees, and 4% refund floor). Break-even ROAS is 1.56 as defined in metrics-definitions.md. The formula is: Revenue = (Contribution + Spend) / 0.712, ROAS = Revenue / Spend.
No cash forecast drawn yet. It needs four inputs, none of which are connected: (1) opening cash balance, (2) Shopify payout schedule (typically a 2-3 day rolling cycle), (3) inventory reorder PO dates and amounts, (4) monthly fixed cost config. Add these to /collect-data or config and the projected closing-cash-by-week chart populates automatically. No placeholder curve is shown in the meantime.
Anomaly Detector
Every core and secondary metric across six comparison windows. A cell flags when a move crosses your threshold. Click any cell to build a ready-to-paste investigation prompt. It runs on the daily account rollup, so it stays cheap as ad volume grows.
Brand & Moat
The durable-moat view, built from Hormozi's e-commerce model. Anyone can copy a physical product down to the thread count, but not the brand. As CAC rises, brand is the only thing that compounds. This page scores where Dreamibles is strong, where it is exposed, and which constraint is binding right now.
No data yet. The brand input and output metrics need repeat purchase and multi-month CAC history, which the current data does not provide yet.
No data yet. Brand-spend mix and cohort repurchase charts need history that does not exist yet.
No data yet. The moat scorecard needs verified inputs across the five pillars, not available in this snapshot yet.
No data yet. Cash flow, distribution, supply chain and brand status need verified inputs not wired in yet.
No data yet. The constraint ladder needs marginal ROAS, cash and repeat figures over time, which do not exist yet.
Weekly Report
Key findings narrative, from /weekly-brief.
No data yet. The weekly narrative brief is generated by /weekly-brief once enough weeks of reconciled performance data exist. No brief has been produced yet.
Generations
The AI creative pipeline, ugc-script to video-ads to Submagic to Virality gate. Approve or reject before launch.
No data yet. The generation pipeline is not wired into this dashboard yet, so queue, approval and virality counts are not available.
No data yet. No generations are tracked here yet.
No data yet. No generations are tracked here yet.
Ad & Asset Library
Every generated creative and brand asset, tagged by avatar, angle and format, ranked by true ROAS.
No data yet. The brand asset library is not indexed into this dashboard yet.
No data yet. Shopify last-click UTM carries the ad on each order, but per-ad revenue has not been tallied for this snapshot yet.
Landing Pages
Active destination URLs behind the ads, with on-page conversion. Built by /landing-page.
No data yet. Per-page sessions and CVR need each ad tied to its landing page with session-level analytics, which is not pulled into this snapshot yet.
No data yet. The ad-to-conversion funnel needs per-step session data (impression to click to landing to checkout), which is not pulled into this snapshot yet.
Competitor Intel
The field, from /competitor-analysis. Click a brand to see their live ads and jump straight to the Meta Ad Library. Open lanes are where nobody is advertising yet.
Bars scale to Grüns at 100%. The field count is driven by Grüns DCO volume and OLLY retailer co-op, not by sleep-specific creative. On focused sleep-strip messaging the real rivals are NuStrips and a handful of Beam and Lemme clusters.
| Dreamibles | 3 |
| AG1 AGZ | 0 |
| 8 Hours | 0 |
| Beam Dream | 3 |
| Lulley | 1 to 3 |
| OLLY | 3, 5, 10 |
| Lemme | 5 |
| NuStrips | 5 |
| Grüns | N/A |
Bar width scales to a $3.00 ceiling. We sit mid-field: pricier than the drugstore and celebrity gummies, well under the AG1 and Grüns whole-stack tier. Room to hold price.
AG1 AGZ
high threatA brand-equity launch. AGZ stretches the trusted AG1 name into sleep with a clean-label promise: "no melatonin, no added sugar, no grogginess." Then it backs that up with national retail trust (Target). They sell trust, not a mechanism.
Zero melatonin gives them a slower, vaguer story on how fast it works. We can own the fast, under-the-tongue, "asleep in 15 minutes" claim that they cannot make. Their premium price leaves room under them.
A low dose on purpose (3mg) with a real speed claim beats "no melatonin" for buyers who want to feel it tonight.
Clean. No FTC actions on record. The threat is brand strength, not a weakness to exploit.
Beam Dream
high threatAn emotional identity hook ("Feel Like You Again") plus a cozy hot-cocoa wind-down ritual. They tuck the cortisol angle inside customer quotes, which keeps the FTC off their back while still planting the idea.
No refund policy on Dream, plus recurring billing complaints. An easy-cancellation and money-back angle hits their weakest point head on.
Put cortisol right in the headline, not buried in a quote. We can own the root-cause story they only hint at.
No refund policy on Dream, plus billing complaints. A reputation issue, not yet a formal action.
Grüns
mediumPure volume. 1,729 dynamic-creative variants let them test their way to winning hooks. Sleep is just one benefit inside a whole-stack gummy, led with curiosity hooks like absorption and 3am waking.
A BBB rating of "F", 21% one-star reviews, and a cancellation flow built to trap people. They are a generalist, so a focused sleep-only product beats them on fit.
Easy cancellation as a brand promise lands hard against their trap-the-customer reputation.
BBB "F", 21% one-star, cancellation built to trap. A real weakness we can cite.
NuStrips
mediumThe same strip format as us. They run it with strong authority and social proof: "As seen on NBC, CBS and USA Today", a nurse testimonial, and a "ditching their sleeping pills" line that converts cold traffic.
Trustpilot 2.8 stars against a claimed 7,800-plus reviews, billing complaints, "horrendous chemical taste", and about 50/50 reports on whether it works. The gap between claims and reviews is the opening.
Win over let-down NuStrips buyers: taste, trust and a real speed claim. We are the trusted upgrade for a buyer they disappointed.
Trustpilot 2.8 stars vs a claimed 7,800-plus reviews, plus billing and taste complaints. A strong weakness we can cite.
Lemme (Sleep)
mediumA Kardashian brand halo plus a "clinically-studied ingredients" reassurance hook that has run for 47 days, their longest-running ad. Celebrity trust does the heavy lifting.
An active class action (Case 1:25-cv-01938) over saffron and GLP-1 claims, 5mg melatonin, and too little L-theanine. The substance does not match the celebrity polish.
A low dose on purpose with a real speed claim beats their 5mg-plus-celebrity formula on "feel it without the grogginess."
Active class action Case 1:25-cv-01938 (saffron / GLP-1). Formal legal action on record.
OLLY
lowWide distribution and the lowest price per night in the category. Shelf presence and a familiar brand, mostly paid for through retailer co-op spend rather than their own page.
A 2022 California class action over melatonin at 165 to 274% of the label. Their cheap, commodity position leaves the premium, trust-the-dose lane wide open above them.
Win over let-down OLLY buyers on dose accuracy. "Trust the dose" is a believable premium move against a cheap, over-labeled product.
Class action (California, June 2022) over melatonin at 165 to 274% of the label. A weakness we can cite.
Lulley
lowSharp format hooks ("World's Fastest Sleep Supplement", melts in seconds) that copy our own speed story. On paper, a direct lookalike.
Looks abandoned: only a few live ads and a domain redirect suggest the brand is winding down. They are not defending the format.
Own the under-the-tongue speed story properly with steady spend. They left the lane we can take.
Abandoned brand, domain redirect. Low threat, watch for a comeback.
8 Hours
lowA data-led proof angle: "30% more deep-sleep minutes and 19% HRV lift in 21 nights." The most advanced numbers-based benefit story in the set, back when they were running.
Quiet since November 2025, EU only, no US fulfillment, and seen by some as faking its guarantee. The strong proof angle is wide open in the US.
Sleep-tracker proof (Oura, Whoop screenshots) in the US market, where they have no presence to push back.
Seen as faking its guarantee, no US setup. Inactive, low threat.
Expert Library
The agent toolkit and accumulated knowledge base that feeds every creative decision.
Creative Analyser
Every live ad broken down by hook, angle, persona, creator and retention. Fetches feed.json, falls back to seed data.
Ads Logbook
Per pack, per ad: waarom we dit format en deze hook kozen, wat we verwachtten, en wat het uiteindelijk deed. Met een Learnings-overzicht dat win-rate per format, hoek en emotie over alle packs samenvat.
Context & Skills
The standing rules every agent reads, avatar priority, brand voice and creative defaults.
Integrations
Every data source the dashboard pulls from, with live connection status.
No data yet. This dashboard runs on a manual weekly snapshot, not a live per-source sync log yet.
Mentor Review
Videos, statics and primary text for approval. Approve, reject or leave a comment, the team sees it right away.