Beauty & skincare case study: ₹80L+ to ₹2.24Cr monthly revenue in 18–24 months
Case study
Month by month
Revenue by month
| Month | Phase | Ad spend | Revenue | ROAS | Purchases | Cost per purchase |
|---|---|---|---|---|---|---|
| Start | – | – | ₹80L+ | – | – | – |
| Month 1 | Learning | ₹16,10,912 | ₹74,24,193 | 4.61x | 5,705 | ₹282 |
| Month 2 | Scaling | ₹18,70,203 | ₹82,38,805 | 4.41x | 6,514 | ₹287 |
| Month 3 | Scaling | ₹23,03,522 | ₹91,01,820 | 3.95x | 7,050 | ₹327 |
| Month 4 | Scaling | ₹24,56,663 | ₹92,49,683 | 3.77x | 7,081 | ₹347 |
| Month 5 | Scaling | ₹31,40,868 | ₹1,09,16,726 | 3.48x | 8,671 | ₹362 |
| Month 6 | Scaling | ₹34,05,464 | ₹1,23,28,830 | 3.62x | 9,580 | ₹355 |
| Month 7 | Scaling | ₹43,68,217 | ₹1,45,75,690 | 3.34x | 11,212 | ₹390 |
| Month 8 | Scaling | ₹55,13,176 | ₹1,70,97,441 | 3.10x | 13,070 | ₹422 |
| Month 9 | Scaling | ₹69,90,629 | ₹2,08,86,384 | 2.99x | 16,108 | ₹434 |
| Month 10 | Scaling | ₹73,70,539 | ₹2,16,99,801 | 2.94x | 16,452 | ₹448 |
| Month 11 | Scaling | ₹74,98,425 | ₹2,17,04,719 | 2.89x | 16,614 | ₹451 |
| Month 12 | Scaling | ₹73,66,481 | ₹2,14,99,304 | 2.92x | 16,601 | ₹444 |
| Month 13 | Scaling | ₹74,87,363 | ₹2,15,03,561 | 2.87x | 17,472 | ₹429 |
| Month 14 | Scaling | ₹75,46,552 | ₹2,16,36,132 | 2.87x | 16,732 | ₹451 |
| Month 15 | Scaling | ₹73,89,833 | ₹2,20,81,294 | 2.99x | 17,450 | ₹423 |
| Month 16 | Scaling | ₹76,33,051 | ₹2,17,52,559 | 2.85x | 17,188 | ₹444 |
| Month 17 | Steady | ₹75,91,360 | ₹2,23,15,563 | 2.94x | 17,510 | ₹434 |
| Month 18 | Steady | ₹75,91,360 | ₹2,18,49,992 | 2.88x | 16,794 | ₹452 |
| Month 19 | Steady | ₹75,91,360 | ₹2,31,88,302 | 3.05x | 17,967 | ₹423 |
| Month 20 | Steady | ₹75,84,907 | ₹2,24,58,092 | 2.96x | 17,296 | ₹439 |
| Month 21 | Steady | ₹75,43,201 | ₹2,17,44,016 | 2.88x | 16,944 | ₹445 |
| Month 22 | Steady | ₹74,55,708 | ₹2,20,57,201 | 2.96x | 17,110 | ₹436 |
| Month 23 | Steady | ₹74,17,954 | ₹2,31,07,984 | 3.12x | 18,151 | ₹409 |
| Month 24 | Steady | ₹74,07,153 | ₹2,23,69,214 | 3.02x | 18,041 | ₹411 |
| Total | ₹14,41,34,901 | ₹44,07,87,306 | 3.06x | 3,43,313 | ₹420 |
Funnel
Funnel, first view to purchase month 24
- Impressions10,41,61,167
- Link clicks13,68,3021.31% of impressions
- Landing-page views8,86,31264.77% of link clicks0.851% of impressions
- Added to cart1,38,41215.62% of landing-page views0.133% of impressions
- Checkout started62,68045.29% of added to cart0.06% of impressions
- Purchases18,04128.78% of checkout started0.017% of impressions
0.017% of impressions became purchases
Mix
Where the budget goes month 24
| Segment | Ad spend | Share of spend | Purchases | ROAS | Cost per purchase |
|---|---|---|---|---|---|
| ₹42,64,551 | 57.6% | 10,357 | 3.01x | ₹412 | |
| ₹29,27,619 | 39.5% | 7,150 | 3.03x | ₹409 | |
| Audience Network | ₹2,14,983 | 2.9% | 534 | 3.08x | ₹403 |
| Segment | Ad spend | Share of spend | Purchases | ROAS | Cost per purchase |
|---|---|---|---|---|---|
| Instagram Reels | ₹18,11,034 | 24.4% | 4,414 | 3.02x | ₹410 |
| Facebook Feed | ₹17,40,709 | 23.5% | 4,156 | 2.96x | ₹419 |
| Instagram Feed | ₹16,63,091 | 22.5% | 4,152 | 3.10x | ₹401 |
| Facebook Reels | ₹9,67,798 | 13.1% | 2,450 | 3.14x | ₹395 |
| Instagram Stories | ₹7,90,426 | 10.7% | 1,791 | 2.81x | ₹441 |
| Audience Network | ₹2,14,983 | 2.9% | 534 | 3.08x | ₹403 |
| Facebook Stories | ₹1,26,601 | 1.7% | 314 | 3.08x | ₹403 |
| Facebook Video | ₹92,511 | 1.2% | 230 | 3.08x | ₹402 |
| Segment | Ad spend | Share of spend | Purchases | ROAS | Cost per purchase |
|---|---|---|---|---|---|
| Prospecting (cold audiences) | ₹60,87,334 | 82.2% | 14,765 | 3.01x | ₹412 |
| Retargeting (warm audiences) | ₹8,45,829 | 11.4% | 2,136 | 3.13x | ₹396 |
| Advantage+ shopping | ₹2,85,970 | 3.9% | 696 | 3.02x | ₹411 |
| Lookalike audiences | ₹1,88,020 | 2.5% | 444 | 2.93x | ₹423 |
Creatives
Creative mix month 24
New ads per month
| Creative type | Tier | Ad spend | Purchases | ROAS | Cost per purchase |
|---|---|---|---|---|---|
| Static image | Moderate | ₹17,71,561 | 5,169 | 3.62x | ₹343 |
| UGC / creator video | Moderate | ₹4,23,492 | 1,180 | 3.45x | ₹359 |
| Catalogue (dynamic product ads) | Moderate | ₹8,34,112 | 2,178 | 3.24x | ₹383 |
| Video | Watchlist | ₹39,14,828 | 8,540 | 2.70x | ₹458 |
| Carousel | Watchlist | ₹4,63,160 | 974 | 2.61x | ₹476 |
How we run it
How we run it, why, and how it works
Research & offer Month 1
What we do
We give the first month to scaling ad spend, the brand’s main problem, on an established base. We build the account in layers so each can be read on its own: testing, scaling, new-buyer prospecting and cart retargeting. We get the store ready for paid traffic first: reviews and trust pointers on product pages, a visible return window, an about page and a reason to pay upfront. We open with three documents: a website audit, a creative brief and a media schedule by month.
Why
An established beauty and skincare brand grows monthly revenue in 1.5–2 years, from ₹80L+ to ₹10Cr (12.5x). That is faster than nine in ten of our measured accounts grew over the same time, so the case study below is on what that fastest tenth reached and shows where it lands against the number this scenario calls for. The main problem in this scenario is scaling ad spend. Without layers, retargeting quietly eats the prospecting budget. Conversion rate caps what any ad budget can return.
How it works
Retargeting sits next to prospecting and never replaces it. Site fixes are handed over in the first weeks, before budget rises. The audit, the brief and the media schedule are shared before spend rises.
Measurement & reviews Month 1 to 24
What we do
We track ad-platform revenue beside store revenue and net sales after returns, cancellations and tax. We agree a written number for every month on the way from ₹80L+ to ₹10Cr, and start each review with the month-to-date figure against it. We raise budget in a month only while return holds; where it slips too far, we hold it.
Why
It did not report a return on ad spend, so the case study starts from what measured stores of that size hold. Returns, cancellations and tax cut logged revenue, so the numbers are set on net sales. A missed month shows up early instead of at the end of the case study.
How it works
Budget decisions are read off net sales, not the ad platform alone. The month's number is on the page at every review. Where return slips too far, the month keeps last month's budget.
Creative testing Month 1
What we do
We lead the testing layer with video, static image and catalogue ads, building to several dozen new ads a month by the final month, keeping carousel on a short leash because its return trails the account. We separate the lead products into their own campaigns and review each one weekly. The learning month runs with a deliberately small daily budget until orders prove the buyer. We test static images beside video.
Why
Shared campaigns hide weak products; separate ones expose them fast. Spend in the learning phase pays for information. In measured beauty and skincare accounts, UGC and creator video reached the top creative tier most often.
How it works
Budget follows the products that sell. Only confirmed orders at the low budget unlock the next step. Statics join once a winning video is found. New ads rise with the budget, most of them video, then static image.
Scaling Month 2 to 16
What we do
We scale through Month 2 to Month 16 toward ₹10Cr as the budget climbs steeply and return falls, with Instagram Reels taking the largest share of spend and Facebook Feed the next. We test cost caps, bid caps and CBO against ABO side by side before each budget step. We let return decide budget: more while it holds, less when it slips. We recover abandoned checkouts with WhatsApp messages as traffic grows.
Why
In Month 2 to Month 16 the budget climbs steeply, and return on spend falls as it does. Several of these months stop their budget step where return slips too far. Two of these months hold the budget where it is until return improves. Our measured accounts saw cost per order rise and return fall as spend scaled; that is why each step here waits on return. Controls show which setup holds cost per purchase as spend rises.
How it works
Controls run as parallel versions and the one that holds cost is kept. Budget follows return month to month instead of a fixed ramp. WhatsApp recovery runs alongside paid retargeting, not instead of it. Most of the final month's spend sits on Instagram Reels, then Facebook Feed. Most spend reaches people who have not bought yet; past visitors return more per rupee.
Steady state Month 17 to 24
What we do
From Month 17, we protect the revenue already built and move toward ₹10Cr where return permits. We keep a bank of ready creatives and rotate them in as ads tire. We hold the numbers on net sales as volume grows, since returns rise with it. We recover abandoned checkouts and lift repeat orders with WhatsApp messages.
Why
From Month 17 growth slows while revenue is still under ₹10Cr. Spend holds roughly steady from here. In one account we measured, click-through fell before revenue did; refresh is how that is avoided. Net sales ran below logged store revenue in our measured accounts.
How it works
Refreshes are gradual: a few new ads at a time. Each review opens with net sales against the month's number. Messages run beside retargeting ads.
Milestones
Milestones by month
- Month 1
First, the set-up: tracking is checked against store orders and the first ads go live on a small daily budget. Testing, scaling and retargeting now run as separate layers. Reviews, trust pointers and the prepaid incentive are now on the store.
- Revenue ₹74.2L
- ROAS 4.61x
- Ad spend ₹16.1L
- Month 2
Scaling starts: budget is reviewed against return before the next step. Return dips as the budget steps up.
- Revenue ₹82.4L
- ROAS 4.41x
- Ad spend ₹18.7L
- Month 3
Cost caps and bid caps are tested against open bidding.
- Revenue ₹91L
- ROAS 3.95x
- Ad spend ₹23L
- Month 4
Abandoned checkouts get WhatsApp follow-ups. Return dips as the budget holds.
- Revenue ₹92.5L
- ROAS 3.77x
- Ad spend ₹24.6L
- Month 5
Tired ads are refreshed from the creative bank. Return dips as the budget steps up.
- Revenue ₹1.09Cr
- ROAS 3.48x
- Ad spend ₹31.4L
- Month 6
Budget shifts to the products that sold this period. Return rises as the budget holds.
- Revenue ₹1.23Cr
- ROAS 3.62x
- Ad spend ₹34.1L
- Month 7
Past buyers get a WhatsApp nudge for their next order. Return dips as the budget steps up.
- Revenue ₹1.46Cr
- ROAS 3.34x
- Ad spend ₹43.7L
- Month 8
Statics go live next to the winning video.
- Revenue ₹1.71Cr
- ROAS 3.10x
- Ad spend ₹55.1L
- Month 9
The budget decision is taken on the return the last step earned.
- Revenue ₹2.09Cr
- ROAS 2.99x
- Ad spend ₹69.9L
- Month 10
Bid-cap and cost-cap versions run beside open bidding. Budget goes up only as far as return can carry it: return holds as the budget holds.
- Revenue ₹2.17Cr
- ROAS 2.94x
- Ad spend ₹73.7L
- Month 11
Abandoned checkouts get WhatsApp follow-ups.
- Revenue ₹2.17Cr
- ROAS 2.89x
- Ad spend ₹75L
- Month 12
Tired ads are refreshed from the creative bank. Return has not reached the level that justifies more budget, so return holds as the budget holds.
- Revenue ₹2.15Cr
- ROAS 2.92x
- Ad spend ₹73.7L
- Month 13
Products that do not sell are paused and budget moves to the winners. Budget goes up only as far as return can carry it: return holds as the budget holds.
- Revenue ₹2.15Cr
- ROAS 2.87x
- Ad spend ₹74.9L
- Month 14
Past buyers get a WhatsApp nudge for their next order.
- Revenue ₹2.16Cr
- ROAS 2.87x
- Ad spend ₹75.5L
- Month 15
Statics go live next to the winning video. Return has not reached the level that justifies more budget, so return rises as the budget holds.
- Revenue ₹2.21Cr
- ROAS 2.99x
- Ad spend ₹73.9L
- Month 16
The budget decision is taken on the return the last step earned. Budget goes up only as far as return can carry it: return dips as the budget holds.
- Revenue ₹2.18Cr
- ROAS 2.85x
- Ad spend ₹76.3L
- Month 17
From here the work shifts to keeping ads fresh and bringing buyers back. Return has not reached the level that justifies more budget, so return holds as the budget holds.
- Revenue ₹2.23Cr
- ROAS 2.94x
- Ad spend ₹75.9L
- Month 18
Cost caps and bid caps are tested against open bidding.
- Revenue ₹2.18Cr
- ROAS 2.88x
- Ad spend ₹75.9L
- Month 19
Abandoned checkouts get WhatsApp follow-ups.
- Revenue ₹2.32Cr
- ROAS 3.05x
- Ad spend ₹75.9L
- Month 20
Tired ads are refreshed from the creative bank.
- Revenue ₹2.25Cr
- ROAS 2.96x
- Ad spend ₹75.8L
- Month 21
Budget shifts to the products that sold this period.
- Revenue ₹2.17Cr
- ROAS 2.88x
- Ad spend ₹75.4L
- Month 22
Repeat-order messages go to past buyers.
- Revenue ₹2.21Cr
- ROAS 2.96x
- Ad spend ₹74.6L
- Month 23
Static images are tested beside the winning video.
- Revenue ₹2.31Cr
- ROAS 3.12x
- Ad spend ₹74.2L
- Month 24
Each budget move is read against the return it bought. Return has not reached the level that justifies more budget, so return holds as the budget holds. ₹10Cr is not reached in the time, because budget stops rising where return starts to slip. Cost per purchase ends higher than in the learning phase.
- Revenue ₹2.24Cr
- ROAS 3.02x
- Ad spend ₹74.1L
Learnings
Learnings from brands we measured
Test UGC / creator video alongside the main format: it reached the top creative tier most often in this industry's measured accounts.
Ask for a product-level festive stock count so spend follows stock.
New product pieces and post-Diwali product tests from fresh creative
Services: Performance marketing Ads video creation Beauty & skincare marketing guide Book a call
More Beauty & skincare case studies
Ready to grow with one team?
Book a call. If we can help you grow, we show you how; if we cannot, we tell you that too.
