
DTC skincare — United States
Velmora — from promising to unavoidable.
A clean-formulation skincare brand with a cult following and a ceiling: every attempt to push past $40k a month in spend had eroded returns. Nine months later, spend is 3x higher — and so is efficiency.
| Campaign | Spend | ROAS | CPA | Purchases |
|---|---|---|---|---|
| Meta — A+ Shopping · Hero serum | $41,900 | 4.40x | $12.02 | 3,485 |
| Meta — Retargeting · Engaged 14d | $21,800 | 6.90x | $7.67 | 2,843 |
| Meta — Retention · Past buyers | $12,100 | 8.20x | $6.45 | 1,876 |
| Meta — Prospecting · Creative test lab | $16,400 | 3.10x | $17.07 | 961 |
| Meta — Prospecting · Founder story (new) | $2,120 | 3.80x | $13.95 | 152 |
| Meta — Clinical-proof angle (killed d9) | $4,180 | 1.90x | $27.87 | 150 |
| Google — Brand, Shopping & PMax | $19,500 | 6.98x | $7.58 | 2,573 |
| Month 9 total | $118,000 | 5.40x | $9.80 | 12,040 |
The working view
The account, exactly as we look at it.
Month nine of the engagement, one 30-day window, four views of the same account. Every figure below reconciles to the same $118,000 of spend and $637,000 of revenue.
| Campaign | Delivery | Budget | Purchases | Reach | Impressions | Cost per result | Amount spent | Purchase ROAS |
|---|---|---|---|---|---|---|---|---|
VEL · A+ Shopping — Hero serum Sales · Advantage+ Shopping | ActiveSales | $1,540/day | 3,485 | 1,388,214 | 3,609,412 | $12.02 | $41,900 | 4.40 |
VEL · Retargeting — Engaged 14d Sales · Manual · Custom audience | ActiveSales | $720/day | 2,843 | 186,442 | 1,742,108 | $7.67 | $21,800 | 6.90 |
VEL · Retention — Past buyers · new SKU Sales · Manual · Customer list | ActiveSales | $400/day | 1,876 | 94,318 | 812,540 | $6.45 | $12,100 | 8.20 |
VEL · Prospecting — Creative test lab Sales · Manual · Broad | ActiveSales | $620/day | 961 | 742,190 | 1,214,806 | $17.07 | $16,400 | 3.10 |
VEL · Prospecting — Founder story Sales · Manual · Broad | LearningSales | $260/day | 152 | 61,220 | 98,410 | $13.95 | $2,120 | 3.80 |
VEL · Prospecting — Clinical-proof angle Sales · Manual · Broad | Off — killed day 9Not delivering | — paused | 150 | 118,904 | 196,330 | $27.87 | $4,180 | 1.90 |
| Results from 6 campaigns | $3,540/day | 9,467 | 2,204,908 | 7,673,606 | $10.40 | $98,500 | 5.08 |
Meta Ads Manager — month 9$98,500 spent at 5.08x. One campaign off: killed on day 9 at $4,180 without hitting threshold.
→ swipe the panel sideways to see every column
| Ad set | Delivery | Budget | Purchases | Frequency | CPM | Cost per purchase | Amount spent | ROAS |
|---|---|---|---|---|---|---|---|---|
A+ Shopping — Hero serum · Broad Advantage+ audience · US · 18–65 | ActiveSales | $1,540/day | 3,485 | 1.84 | $12.80 | $12.02 | $41,900 | 4.40 |
RT — Engaged 14d · video + site Custom audience · 1,142,800 people | ActiveSales | $720/day | 2,843 | 9.34 | $12.51 | $7.67 | $21,800 | 6.90 |
Retention — Buyers 60–180d Customer list · 84,210 matched | ActiveSales | $400/day | 1,876 | 8.61 | $14.89 | $6.45 | $12,100 | 8.20 |
Test lab — Angle rotation (4 ads) Broad · US · no exclusions | ActiveSales | $620/day | 961 | 1.64 | $13.50 | $17.07 | $16,400 | 3.10 |
Founder story — new hook Broad · US · 25–54 | LearningSales | $260/day | 152 | 1.61 | $21.54 | $13.95 | $2,120 | 3.80 |
Clinical-proof angle — killed d9 Broad · US · interest stack | OffSales | — paused | 150 | 1.65 | $21.29 | $27.87 | $4,180 | 1.90 |
| Results from 6 ad sets | $3,540/day | 9,467 | 2.84 | $12.84 | $10.40 | $98,500 | 5.08 |
Ad-set level — same windowFrequency 9.34 on retargeting is deliberate: a 14-day window on a considered purchase, capped by budget not by fatigue.
→ swipe the panel sideways to see every column
| Campaign | Status | Budget | Impr. | Clicks | CTR | Avg. CPC | Cost | Conv. | Cost / conv. | Conv. value / cost |
|---|---|---|---|---|---|---|---|---|---|---|
| Velmora — Search · Brand Search · Manual CPC | Eligible | $110/day | 48,210 | 6,842 | 14.19% | $0.45 | $3,100 | 691 | $4.49 | 11.80 |
| Velmora — Shopping · Core catalog Shopping · tROAS 500% | Eligible | $250/day | 1,284,610 | 18,504 | 1.44% | $0.40 | $7,400 | 853 | $8.68 | 6.10 |
| Velmora — Performance Max · All products Performance Max · tROAS 550% | Eligible | $235/day | 2,140,882 | 21,562 | 1.01% | $0.32 | $6,900 | 835 | $8.26 | 6.40 |
| Velmora — Search · Non-brand skincare Search · tCPA $11 | Limited by budget | $70/day | 96,440 | 2,470 | 2.56% | $0.85 | $2,100 | 194 | $10.82 | 4.90 |
| Total: account | $665/day | 3,570,142 | 49,378 | 1.38% | $0.39 | $19,500 | 2,573 | $7.58 | 6.98 |
Google Ads — same 30 days$19,500 across Brand, Shopping, PMax and one budget-limited non-brand test.
→ swipe the panel sideways to see every column
Events Manager98.2% deduplication and 8.7/10 Purchase match quality — fixed in week one, before a dollar was scaled.
→ swipe the panel sideways to see every column
The creative that did it
One angle, four variants, one survivor.
Week 31's test matrix. Variant B was promoted into the core campaign on day 11; Variant C was killed on day 9 at $4,180 spent and 1.9x — the line item you can see switched off in the Ads Manager view above.
Variant A · Founder
Variant B · Routine
Variant C · Clinical
Variant D · ComparisonWhat we tested
The nine months, in verdicts.
Every test entered with a written threshold and a budget cap. Eight are shown; twenty-nine ran.
| Test | Hypothesis | Spent | Result | Verdict |
|---|---|---|---|---|
| Advantage+ core vs manual broad | A+ finds the buyer cheaper than our interest stacks | $14,200 | A+ −23% CPA | WON |
| Clinical-proof angle | Lab data outperforms lifestyle for a barrier serum | $4,180 | 1.9x — killed day 9 | LOST |
| Founder story hook | Origin story lifts cold CTR on a crowded shelf | $2,120 | 3.8x in learning — held | OPEN |
| $28-vs-$90 comparison hook | Price-anchor framing beats benefit framing | $6,900 | 2.08% CTR, best of month | WON |
| 14-day vs 30-day retargeting window | Shorter window, higher intent, better CPA | $8,400 | 14d −31% CPA | WON |
| Auto-ship upsell at checkout | Subscription lifts LTV without hurting CVR | $0 (CRO) | +11% AOV, CVR flat | WON |
| Broad lookalike 1–3% | Seed list is large enough to model | $5,600 | Matched broad, no lift | TIED |
| Klaviyo post-purchase flow rebuild | Owned channel compounds paid traffic | $0 (retention) | 31% of revenue owned | WON |
Before Orvalis
- Spend capped near $40k/mo — every push collapsed ROAS
- Two creatives carrying the entire account
- No retention layer; every sale bought cold
- Event deduplication at 71% — the data itself was lying
- Blended ROAS 3.9x and falling on scale attempts
After the engagement
- $118k/mo spend with ROAS improving on the way up
- A weekly creative matrix feeding 12–15 live ads
- Klaviyo flows compounding: 31% of revenue from owned audiences
- 98.2% deduplication, 8.7/10 event match quality
- 5.4x blended, held for three consecutive months
The problem
Velmora had what most brands beg for — a product people repurchase and talk about. What it didn't have was an account built to spend. Structure had accreted over two years of ad-hoc launches: fourteen overlapping campaigns, retargeting cannibalising prospecting, and creative refreshed only when someone remembered.
Underneath all of it sat a quieter problem. The pixel and the Conversions API were both firing, un-deduplicated, at a 71% match rate — so the account was being optimised against numbers that were partly invented. Every scaling decision made before we arrived had been made on bad data.
What we did
Month one was a rebuild, not a launch: one clean Advantage+ core per hero product, a separate creative test lab with its own ring-fenced budget, retargeting cut down to windows that actually add value, and Klaviyo flows rebuilt so paid traffic compounds instead of evaporating. Tracking was fixed before a single budget moved — you cannot scale on numbers you can't trust.
From month two onward the operation was rhythm: new angles queued weekly, winners promoted into the core, budget stepped only after the account held target for a full week, and never by more than 30% at a time.
What happened
Spend tripled in nine months — and efficiency rose with it. That's the part that matters: scale that improves the account instead of taxing it. Velmora now plans product drops around a paid engine it trusts, with cost per purchase 31% below where we found it.
Month by month
How the nine months actually ran.
Rebuild, don't launch
Structure collapsed from 14 overlapping campaigns to four jobs. Pixel and CAPI fixed; deduplication went from 71% to 98%.
Prove, then step
Spend moved $52k → $74k in five increments, none larger than 30%, each after seven days at target.
Creative becomes the constraint
Testing budget ring-fenced at 5%. Six briefs a week; the survival rate settled near one in six.
Retention compounds
Klaviyo flows rebuilt — 31% of revenue now arrives from owned audiences, which quietly lifts blended ROAS.
Where the money went
Channel mix and delivery, month nine.
Where the money actually went
Placement & audience breakdown — same month.
Budget is never “Meta” in the abstract. This is the delivery breakdown behind the $118,000: which surfaces paid, and which audience segment bought.
Top: spend by placement. Bottom: purchases by age band, Meta breakdown view.
They didn't promise us a number. They promised us a process — and the number showed up anyway.
Amara C., founder — VelmoraNext step
Tell us what you are trying to scale.
A short note about your brand, your market and your current monthly ad spend is enough. We reply within one business day — by email only.