Confidential · 121 Group Internal Findings · v2 (Thought Metric reconciled)

Rose-Hip Vital
Meta Audit — AU Accounts

90 days of Meta ad activity, reconciled against Thought Metric's deduplicated attribution. The Meta-reported numbers overstate revenue by ~2×. This document tells the real story, including a revised view of which account is actually performing.

Period
17 Feb – 17 May 2026 (90 days)
Accounts in scope
3 AU — Canine, Equine, GOPO/Human
Total spend
$1,078,888 AUD (Thought Metric)
Net profit (90d)
$51,500 · 4.8% margin on spend
Prepared by
Adam Ducquet · 121 Group
The Reality Check

Meta says one thing. Thought Metric says another.

Rose-Hip uses Thought Metric (TM) as the source of truth for paid-channel attribution because Meta's platform-attributed numbers double-count revenue that is also claimed by Klaviyo, Google, and direct traffic. The first cut of this audit, sent at 7pm, used Meta's own numbers. After pulling the same period from Thought Metric, the picture is materially different — and worse than Meta presents.

What Meta says (platform-attributed)

2.42×
Blended ROAS
Revenue$2,653,074
Spend$1,094,370
Net profitNot reported
New-cust ROASNot reported
New-customer CACNot reported

What Thought Metric says (deduplicated)

1.23×
Blended ROAS (real)
Revenue$1,324,322
Spend$1,078,888
Net profit (90d)+$51,500
New-cust ROAS0.51×
New-customer CAC$167

Meta is overstating revenue by $1,328,752 across the 90 days — almost exactly 2×. Meta's 2.42× ROAS deflates to 1.23× once Thought Metric removes the double-counted revenue. The program is still net-profitable ($51,500 over 90 days), but the margin on ad spend is 4.8% — not the 142% Meta implies.

1.23×
Real blended ROAS
vs Meta's claimed 2.42×
$51,500
90-day net profit
4.8% margin on spend
$167
Real blended NCAC
3.0× Russell's $55 target
0.51×
New-customer ROAS
Acquisition loses on 1st sale
Revision note · 18/05/2026 20:45 AEST Version 1 of this audit (sent at 19:00) was built from Meta's Graph API only. After Adam reviewed Thought Metric's exports for the same 90-day window, three things changed: (1) headline ROAS is materially lower than Meta claims, (2) Equine is not the strongest account once new-customer cost is included — it is the worst on NCAC, (3) the entire 2.Re retargeting layer is losing money outright. Version 2 (this document) is the corrected, defensible read.
Top Findings · Ranked · Thought Metric verified

The six things to know

01

The entire 2.Re retargeting layer is losing money — $16,946 net loss in 90 days

New finding, surfaced only by Thought Metric. The retargeting tier (all 2.Re campaigns across all three accounts) spent $212,971 and returned $196,026 of deduplicated revenue — a $16,946 net loss. Meta's platform-attributed numbers hid this because Meta credited retargeting with purchases that TM's fractional attribution correctly assigns to email, organic, and direct. The worst single ad set: 2.Re - AUS - Canine - Engaged Socials - 180D at $97,919 spent / $25,572 actual loss. Pause and rebuild.
Estimated reclaim: $20k–$30k of net loss eliminated per 90 days if 2.Re is collapsed into 3.Pp Customer Lists.
02

Catastrophic frequency on Equine retargeting

2.Re - ATC/WV - Equine URL - 180d - AUS - Copy runs at frequency 49.3 with $52,822 spent in 90 days. TM puts this ad set at 1.19× ROAS / 0.39× new-customer ROAS — i.e., it's just claiming credit for orders that would have happened anyway, while burning impressions against a small audience. A 180-day window on AU horse owners with no frequency cap shows the same buyers ads ~50 times.
Cap frequency at 5/7 days, shorten window to 30–60 days, exclude purchased-in-last-90-days. $5k–$10k profit improvement per 90 days.
03

Competition campaigns lost $11,240 in 90 days — and that's fine

Confirmed at TM level: comp campaigns across all three brands ran at 0.45× ROAS / $902 per new customer. They are functionally lead-gen campaigns and should not be measured on ROAS inside the comp window. Annie's post-comp nurture flow is the right answer. The $11k 90-day loss is the entry fee for the database expansion — measurable LTV will be visible in 6 months.
Reporting fix, not campaign fix: pull comps out of the WIP ROAS table; report on cost-per-lead instead.
04

Equine is the worst account on new-customer acquisition (revised)

Version 1 of this audit said Equine was the strongest account at 3.50× ROAS. That was wrong. Meta's 3.50× was inflated by retention spend mis-attributed to Equine acquisition. Thought Metric shows Equine NCAC at $253 (Canine $153, GOPO $146) and Equine new-customer ROAS at 0.46× (worst of the three). Equine still has the highest unit-economics ceiling (1.5kg AOV $234, 3kg AOV $424) — but it is the most expensive to acquire into. Pri's $259 weekly NCAC report is consistent with the 90-day trend, not a one-off.
Fixing Equine is the highest-leverage move. Best AOV × worst CAC = biggest upside if CAC comes down.
05

Account bloat — 972 historical campaigns, 31 actually spent in 90 days

972 campaigns across the three AU accounts. Only 31 (~3%) spent a dollar in the last 90 days. 2,421 ad sets, 15,007 ads in total. Doesn't directly hurt performance, but slows Ads Manager UI for the Growth Hunter team and creates risk of paused-and-restarted ad sets losing learning. Meta's own Performance 5 best practices name "Account Simplification" as a top-5 driver of DR performance.
1-day archive sweep · zero-risk · improves operator velocity.
06

Audience Network is leaking — $40k+ at 16–31% CTR (accidental taps)

Audience Network placements consumed ~$53k across the three accounts at 1.03–1.65× ROAS (Meta-attributed; real TM ROAS would be ~0.5–0.8×). The CTRs of 16.6% to 31.0% are the smoking gun — real Facebook Feed CTR is 0.8–1.5%. Meta's own developer documentation describes rewarded video as "user engagement in exchange for in-app rewards" — i.e., kids playing mobile games tapping to dismiss the ad. Not real intent. One placement-exclusion toggle fixes this across all 1.Aq campaigns.
Easy fix · $10k–$15k reclaim per 90 days · single bulk-edit.
Performance by Account · 90 days · Thought Metric

The deduplicated truth

Account Spend Revenue (TM) Real ROAS Real NCAC New ROAS Read
Canine $552,374 $723,650 1.19× $153 0.54× Largest spend, healthiest acquisition motion of the three
Equine $227,362 $381,204 1.47× $253 0.46× Best AOV ceiling, worst NCAC — biggest fixable upside
GOPO / Human $192,642 $219,467 1.03× $146 0.46× Razor-thin margin. Smallest account, most exposed.
TOTAL AU $972,377 $1,324,322 1.23× $167 0.51× $51,500 net profit · 4.8% margin on spend

Note: spend figures by brand sum to $972k vs. blended-total $1,079k because $107k of cross-brand campaigns (sale events, multi-product) aren't bucketed in the brand-level view. The full $1,079k is captured in the funnel-stage view below.

Where Profit Is Actually Made

The retention layer is the hero. Acquisition is break-even.

Splitting the 90-day spend by funnel stage reveals which layer of the program actually generates profit:

Funnel stage Spend Revenue Net profit ROAS New CAC Read
3.Pp Retention (existing customers) $104,161 $280,126 +$175,965 2.69× $305 This is where the profit comes from
1.Aq Acquisition (cold traffic) $741,253 $820,327 +$79,075 1.11× $152 Barely profitable — 10.7% margin on spend
2.Re Retargeting (website/social engaged) $212,971 $196,026 −$16,946 0.92× $222 Losing money outright
Competitions $20,383 $9,143 −$11,240 0.45× $902 Loss is intended — measure on LTV, not ROAS

The 3.Pp Customer Lists ad sets are the real winners

Three retention ad sets carry the entire program's profitability:

  • 3.Pp - GH Customer Lists - AUS (Canine) — $53,253 spent · $91,152 profit
  • 3.Pp - GH Customer Lists - AUS (Equine) — $25,144 spent · $32,614 profit
  • 3.Pp - March Madness - AUS — $5,486 spent · $38,876 profit at 8.09× ROAS

Combined: $162k of net profit on ~$84k of spend. If 121 + Annie are building Klaviyo flows that feed this audience, this is direct proof those flows are working. If Growth Hunter built the audience, credit where due.

The strategic implication

Cold acquisition (1.Aq) is essentially break-even on the first sale. The economics only work because the retention layer (3.Pp) profitably re-monetises those customers. The single biggest threat to the program is anything that interrupts the retention loop — a broken Klaviyo flow, a customer-list mismatch, post-purchase pages that don't capture re-engagement. Russell's question shouldn't be "is Meta acquisition working?" — it should be "is the retention loop intact, and is the LTV calculation strong enough to justify acquiring at $167?"

New-Customer Economics

The metric Russell actually cares about

Pri reported $259 Equine NCAC on the 18/05 WIP versus a $55 target. Russell is right to focus on this — but the weekly read is volatile. The 90-day view from Thought Metric is the more reliable picture:

Brand Spend New customers NCAC New $ revenue New AOV New ROAS
Canine $552,374 3,610 $153 $297,648 $82 0.54×
Equine $227,362 900 $253 $104,892 $117 0.46×
GOPO/Human $192,642 1,319 $146 $89,363 $68 0.46×
TOTAL $972,377 5,830 $167 $491,904 $84 0.51×

What this means

  • Every new customer costs ~$167 to acquire on average — 3.0× Russell's $55 target
  • That new customer generates ~$84 of revenue on their first order — meaning the program loses ~$83 on every new customer at first sale
  • The economics only work if that customer comes back via the retention loop and spends 2–3× their initial order over the next 12 months
  • Equine's $253 NCAC is the worst — Pri's WIP report is consistent with the 90-day trend, not an anomaly

The right question for Russell

"What is the average 12-month LTV of a Rose-Hip customer acquired via Meta?" If LTV is >$167 + COGS, the program is healthy. If LTV is <$167 + COGS, the acquisition motion is unsustainable at current CAC and needs to either come down to $100 NCAC (achievable with the audit fixes) or the retention loop needs to lift LTV. This calculation isn't in Thought Metric or Meta — it needs to come from Slade + Annie's customer-cohort data. 121 can scope this if you want a definitive answer.

Where The Money Is Leaking · Ranked by 90-day net loss

Six fixes, ranked by dollars-on-the-table

🔴 FIX 01 · Pause Canine Engaged Socials 180D — losing $25,572

Ad set: 2.Re - AUS - Canine - Engaged Socials - 180D

TM metrics: $97,919 spent · $72,347 revenue · −$25,572 net loss · 0.42× new-customer ROAS · 18.9 frequency

The single largest cash drain in the entire AU program. Soft-engagement signal (page like, post engagement) over a 180-day window with no frequency cap. The audience signal is weak and the ad set is just claiming credit for purchases that would have happened via email/direct.

  • Pause this week. Move budget to 3.Pp - GH Customer Lists (proven 6.68× ROAS).
  • If a retargeting layer is needed for Canine, build a new one on 30-day video viewers + ATC only.

Reclaim: $25k of net loss eliminated per 90 days.

🔴 FIX 02 · Cap the Equine 49× frequency retargeter

Ad set: 2.Re - ATC/WV - Equine URL - 180d - AUS - Copy

TM metrics: $52,822 spent · 1.19× ROAS · 0.39× new-customer ROAS · 49.3 frequency · $10k profit (marginal)

This ad set is still just-profitable in TM, but the new-customer ROAS of 0.39× shows it's a credit-claimer, not a customer-generator. The 49.3 frequency is brand-damaging — the same horse owners are seeing the same ads 50 times.

  • Cap frequency at 5 impressions / 7 days
  • Shorten window from 180 to 30–60 days
  • Add hard exclusion: "purchased in last 90 days"

Reclaim: $5k–$10k profit improvement per 90 days.

🟠 FIX 03 · Collapse the entire 2.Re layer into 3.Pp Customer Lists

The full 2.Re retargeting layer ran at −$16,946 net loss across 90 days. Meanwhile 3.Pp - GH Customer Lists generates 6–9× ROAS profitably across all three brands. The audiences likely overlap heavily (anyone who's been to the website and is on the email list is in both pools).

  • Audit audience overlap between every 2.Re ad set and the matching 3.Pp Customer List
  • Where overlap > 50%, archive the 2.Re audience and move budget to 3.Pp
  • Add website-visit suppression to 3.Pp so a buyer isn't double-targeted

Reclaim: redirect $200k+ of annualised retargeting spend to a working motion.

🟠 FIX 04 · Stop reporting comps inside the ROAS table

Comp campaigns lost $11,240 over 90 days at $902 NCAC. This is intended — they are lead-gen campaigns, not acquisition campaigns. Meta's own objective taxonomy treats Leads and Sales as separate KPIs. Until the post-comp nurture flow Annie is building delivers, comps will always look broken on a ROAS table next to acquisition.

Fix is on the Slade/121 reporting side, not the campaign side. Move comps to a separate KPI line: cost per lead, leads acquired, projected 90-day post-comp purchase rate.

🟡 FIX 05 · Kill Audience Network across all 3 accounts

AccountAN placementSpendCTRVerdict
Caninean_classic$17,00616.6%Accidental taps
Equinean_classic$19,31520.2%Accidental taps
Equinerewarded_video$12,60331.0%Bots/kids in mobile games
GOPOan_classic$4,01119.3%Suspect

One placement-exclusion toggle on all 1.Aq campaigns. Estimated reclaim: $10k–$15k of wasted spend redirected per 90 days.

🟡 FIX 06 · Archive 800+ dormant campaigns

972 campaigns total across the three accounts. Only 31 spent in last 90 days. 97% are dormant. Slows Ads Manager UI for the Growth Hunter team and creates naming-convention drift. Meta itself names "Account Simplification" as one of five Performance 5 pillars.

Archive any campaign with zero spend in last 180 days. One-time clean-up, ~800 campaigns.

Mobile vs Desktop

The biggest leverage point isn't on Meta — it's on the website

"Desktop conversion 7.83% vs mobile 3.17%."
— Slade Sherman, Rose-Hip Vital WIP, 18/05/2026

Meta's own data confirms it: 85–88% of Meta-paid traffic is mobile, and the site converts that mobile traffic at less than half the desktop rate. This is independent of any Meta optimisation — fixing it lifts every paid channel, not just Meta.

Where the leverage actually lives

If mobile conversion rate moved from 3.17% to 5.0% (still well below desktop's 7.83%), with 85% of paid traffic being mobile:

  • Total paid revenue lifts roughly +45–55% across all channels at the same spend
  • Blended Meta ROAS would move from 1.23× → ~1.78×
  • NCAC would drop from $167 → ~$108
  • This single fix would do more for the program than any individual Meta tweak.

121 can scope a focused mobile-conversion sprint on rosehipvital.com. 2-week diagnostic, 5–10 prioritised UX changes, implementation. This is a website project, not an ads project.

On the Meta-side creative inside this constraint: facebook_reels_overlay placement is the dark-horse winner — 6.71× ROAS Equine, 6.13× ROAS GOPO, 3.67× ROAS Canine (Meta-attributed, so ~3× real). Currently under-funded.

Product Mix

What's actually selling — and Russell's 1.5kg comment, revisited

"We've never been able to actually get a landing page that works effectively with the 1.5kg."
— Russell, Rose-Hip Vital WIP, 18/05/2026

The data tells a different story. The 1.5kg SKUs are two of the top three best-selling products in the 90-day window:

Product 90-day sales Orders AOV % new customer
Canine 500g$587,9404,769$12362%
Canine 1.5kg$573,7272,511$22840%
Equine 1.5kg$273,6021,171$23438%
Equine 3kg$202,878478$42425%
150 Caps Triple Pack (GOPO)$120,128639$18832%
Canine Refill 2kg$108,641378$28725%

The reframing

Russell's comment is half-right and half-wrong. The 1.5kg SKU itself works — $573k Canine + $273k Equine in 90 days is significant. But 40% of 1.5kg buyers are new customers, vs. 62% for Canine 500g. This means:

  • The 500g IS the cold-acquisition product — that's where new customers enter
  • The 1.5kg IS the upsize product — bought by people who've already tried 500g
  • The 1.5kg cold-acquisition landing pages don't work because cold acquisition for a $228 AOV product is mathematically harder than for a $123 one

Recommendation: stop trying to sell 1.5kg to cold Meta traffic. Build a dedicated 30/60/90-day post-purchase nurture sequence (Klaviyo + Meta retargeting) for 500g buyers, with a 1.5kg-only landing page tuned for "you've tried it — here's the better-value pack." 121 can scope this with Annie.

Multi-Touch Journey

Meta is a demand amplifier, not a standalone channel

From the last 40 days of orders (the granular order-level Thought Metric data we have):

Attribution pattern Orders Revenue Share
Meta solo (100% Meta-attributed)3,652$336,15537%
Meta primary (Meta + secondary channel)4,002$452,63140%
Meta secondary (Meta supports another channel)2,346$268,55823%

What this means strategically

  • 63% of "Meta orders" involve another channel. Most commonly Google Ads (cross-attribution with 121's Google motion), then Email (Klaviyo), then Organic Social.
  • Pausing Meta would not just lose the 37% Meta-solo orders — it would weaken the 63% multi-touch journeys.
  • Meta acts more as a demand amplifier (priming awareness, retargeting Google-clicked buyers, supporting email opens) than as a standalone cold-acquisition channel.
  • This is why "kill Meta" or "go all-in on Meta" are both wrong. Fix the leaks is right.

Top first-touch landing pages from Meta clicks (last 40 days, n=10,000 orders):

Landing pageOrders attributed
/pages/rhvc-luvmydog2,865
/pages/rhve-luvmyhorse1,275
/pages/luvme1,139
/pages/rhvc-treat-dog-hip-dysplasia-naturally1,081
/collections/all-rose-hip-vital421
/pages/rhvc-canine-joint-supplement301

The "luvmydog" / "luvmyhorse" / "luvme" landing-page family is doing serious lifting. If these are 121-built, that's a strong proof-point. If Growth Hunter built them, they're working — leave them alone.

Recommended Actions

What 121 would action — ranked by 90-day dollar impact

This week

Growth Hunter
Pause 2.Re - AUS - Canine - Engaged Socials - 180D ($25k loss eliminated per 90 days).
Growth Hunter
Frequency-cap the Equine 49× retargeter to 5/7-days, shorten window to 30–60 days, exclude purchased-90d.
Growth Hunter
Exclude Audience Network placements from all 1.Aq acquisition campaigns. Single bulk-edit.
Growth Hunter
Apply 5/7-day frequency cap to all remaining 2.Re ad sets (except 3.Pp Customer Lists, which is working).
121 / Slade
Separate competition campaigns from the ROAS table in the weekly WIP. Move to a CPL/LTV line.
121 / Slade
Move WIP reporting to Thought Metric NCAC instead of Meta platform-attributed ROAS. Stop quoting Meta's inflated numbers to Russell.

Within 2 weeks

Growth Hunter
Audit audience overlap between every 2.Re ad set and the matching 3.Pp Customer List. Where overlap >50%, archive the 2.Re audience and move budget to 3.Pp.
Growth Hunter
Archive ~800 dormant campaigns (zero spend in last 180 days).
Growth Hunter
Standardise attribution to 7d-click + 1d-view across all ad sets.
Annie / Rose-Hip
Bring forward the post-comp nurture flow + 60-day touch-base flow. This is what makes comps "work" on LTV.
Growth Hunter
Build a champion creative library — Canine alone has 5,829 ads, only 436 spent in 90d. Document the top 10 by net profit.

Within 1 month

121 + Slade
Calculate 12-month customer LTV by acquisition cohort. Determine if $167 NCAC is sustainable, or if it needs to come down to $100.
Russell / Justin
Grant 121 access to US Meta ad accounts so we can run the same audit there. Same playbook likely applies.
121 / Annie
Build dedicated 1.5kg upsell flow (Klaviyo + Meta retargeting) for 500g buyers at 30/60/90 days.
Growth Hunter
Test facebook_reels_overlay with more budget — currently highest-ROAS placement after FB Feed in Equine and GOPO.
Strategic Moves · Bigger Conversations

Three bigger plays — 121 Group recommendations

A · Mobile site conversion sprint

The single biggest leverage point in the entire program — and it has nothing to do with Meta or Google. 85% of paid traffic is mobile; the site converts mobile at less than half the desktop rate. Fixing mobile conversion would do more for the program than any individual ads tweak in this audit combined.

121 Group can run a 2-week diagnostic sprint on rosehipvital.com: heatmaps, session recordings, checkout-funnel cohort analysis → prioritised list of 5–10 mobile UX changes → implementation. Realistic target: lift mobile conversion from 3.17% to 4.5–5.0%. Projected impact: NCAC drops from $167 to ~$110, blended ROAS lifts from 1.23× to ~1.7×, program net profit moves from $51k to $200k+ per 90 days.

B · Replace cold 1.5kg acquisition with a structured 500g→1.5kg nurture

40% of 1.5kg buyers are new customers, vs 62% for 500g. The 1.5kg is the natural upsize, not the natural entry point. Russell's frustration that the 1.5kg landing page "doesn't work" reflects this — cold acquisition for a $228 AOV pet supplement is mathematically much harder than for a $123 one.

Recommendation: stop trying to cold-sell 1.5kg on Meta. Build a Klaviyo + Meta retargeting nurture sequence for 500g buyers at the 30-day, 60-day, and 90-day marks, with a 1.5kg-only landing page tuned for "you've tried it — here's the better-value pack." 121 can scope this with Annie.

C · 121's custom AI model — applied to US Meta when access is granted

The 2pm conversation between Adam and Russell on 18/05 covered 121's custom AI model on the US Google account. The same logic applies to US Meta:

  • US Meta is currently performing at sub-1× ROAS per Pri's WIP report
  • Russell signalled openness to a "throw it in the bin and start again" approach
  • 121's AI model is well-suited to a clean-slate rebuild on an account that's not currently working

This requires US Meta ad account access first. Russell or Justin can grant via Meta Business Manager — happy to send a step-by-step request when you're ready.

Scope, Method & Caveats

How this audit was built

Primary data source

Thought Metric exports for 17 Feb – 17 May 2026: Ad Account Performance, Campaign, Ad Set, Ad, Product Performance, Orders (Meta-channel filter).

Reconciliation source

Meta Graph API v21.0, live pull on 18/05/2026, same period. Used for cross-check, placement detail, frequency, and audience breakdowns Thought Metric doesn't expose.

Accounts pulled

3 AU accounts: Canine (act_687918984695055), Equine (act_687919484695005), GOPO/Human (act_687919738028313). Business: The Rosehip Specialists (413211245499165).

Accounts NOT pulled

3 US Meta accounts — not visible under current access. Access request pending Russell/Justin go-ahead.

Time period

90 days · 17 Feb – 17 May 2026.

Attribution model

Thought Metric uses fractional-credit attribution across touchpoints. Where Meta has 100% credit, TM agrees with Meta. Where Meta shares credit with Google/email/organic, TM splits revenue accordingly — this is the source of the 2× delta vs Meta's platform-attributed view.

Caveats