Beauty & skincare case study: ₹1L to ₹1.2L monthly revenue in 24 months
Case study
Month by month
Revenue by month
| Month | Phase | Ad spend | Revenue | ROAS | Purchases | Cost per purchase |
|---|---|---|---|---|---|---|
| Start | – | – | ₹1L | – | – | – |
| Month 1 | Learning | ₹53,924 | ₹1,04,621 | 1.94x | 114 | ₹473 |
| Month 2 | Scaling | ₹57,427 | ₹1,08,609 | 1.89x | 113 | ₹508 |
| Month 3 | Scaling | ₹60,058 | ₹1,13,459 | 1.89x | 115 | ₹522 |
| Month 4 | Scaling | ₹62,223 | ₹1,17,930 | 1.90x | 119 | ₹523 |
| Month 5 | Scaling | ₹62,871 | ₹1,20,021 | 1.91x | 126 | ₹499 |
| Month 6 | Scaling | ₹61,598 | ₹1,19,796 | 1.94x | 124 | ₹497 |
| Month 7 | Scaling | ₹63,447 | ₹1,19,652 | 1.89x | 124 | ₹512 |
| Month 8 | Scaling | ₹64,230 | ₹1,21,005 | 1.88x | 132 | ₹487 |
| Month 9 | Scaling | ₹64,037 | ₹1,22,191 | 1.91x | 129 | ₹496 |
| Month 10 | Scaling | ₹63,277 | ₹1,21,171 | 1.91x | 129 | ₹491 |
| Month 11 | Scaling | ₹62,723 | ₹1,21,475 | 1.94x | 127 | ₹494 |
| Month 12 | Scaling | ₹64,104 | ₹1,21,199 | 1.89x | 125 | ₹513 |
| Month 13 | Scaling | ₹62,445 | ₹1,19,683 | 1.92x | 128 | ₹488 |
| Month 14 | Scaling | ₹63,481 | ₹1,20,872 | 1.90x | 122 | ₹520 |
| Month 15 | Scaling | ₹62,285 | ₹1,18,945 | 1.91x | 130 | ₹479 |
| Month 16 | Scaling | ₹60,185 | ₹1,20,984 | 2.01x | 122 | ₹493 |
| Month 17 | Scaling | ₹63,585 | ₹1,20,025 | 1.89x | 129 | ₹493 |
| Month 18 | Scaling | ₹64,622 | ₹1,20,342 | 1.86x | 122 | ₹530 |
| Month 19 | Steady | ₹64,236 | ₹1,20,712 | 1.88x | 130 | ₹494 |
| Month 20 | Steady | ₹63,648 | ₹1,21,522 | 1.91x | 127 | ₹501 |
| Month 21 | Steady | ₹63,752 | ₹1,20,370 | 1.89x | 125 | ₹510 |
| Month 22 | Steady | ₹61,497 | ₹1,21,426 | 1.97x | 125 | ₹492 |
| Month 23 | Steady | ₹62,355 | ₹1,21,484 | 1.95x | 130 | ₹480 |
| Month 24 | Steady | ₹64,640 | ₹1,21,491 | 1.88x | 126 | ₹513 |
| Total | ₹14,96,650 | ₹28,58,985 | 1.91x | 2,993 | ₹500 |
Funnel
Funnel, first view to purchase month 24
- Impressions10,83,568
- Link clicks12,9121.19% of impressions
- Landing-page views8,41065.13% of link clicks0.776% of impressions
- Added to cart6938.24% of landing-page views0.064% of impressions
- Checkout started33848.77% of added to cart0.031% of impressions
- Purchases12637.28% of checkout started0.012% of impressions
0.012% of impressions became purchases
Mix
Where the budget goes month 24
| Segment | Ad spend | Share of spend | Purchases | ROAS | Cost per purchase |
|---|---|---|---|---|---|
| ₹42,313 | 65.5% | 82 | 1.87x | ₹516 | |
| ₹20,751 | 32.1% | 41 | 1.89x | ₹506 | |
| Audience Network | ₹1,576 | 2.4% | 3 | 1.91x | ₹525 |
| Segment | Ad spend | Share of spend | Purchases | ROAS | Cost per purchase |
|---|---|---|---|---|---|
| Instagram Reels | ₹22,390 | 34.6% | 44 | 1.88x | ₹509 |
| Instagram Feed | ₹13,732 | 21.2% | 27 | 1.92x | ₹509 |
| Facebook Feed | ₹10,894 | 16.9% | 21 | 1.84x | ₹519 |
| Facebook Reels | ₹7,971 | 12.3% | 16 | 1.95x | ₹498 |
| Instagram Stories | ₹6,191 | 9.6% | 11 | 1.75x | ₹563 |
| Audience Network | ₹1,576 | 2.4% | 3 | 1.91x | ₹525 |
| Facebook Stories | ₹989 | 1.5% | 2 | 1.91x | ₹494 |
| Facebook Video | ₹897 | 1.4% | 2 | 1.91x | ₹448 |
| Segment | Ad spend | Share of spend | Purchases | ROAS | Cost per purchase |
|---|---|---|---|---|---|
| Prospecting (cold audiences) | ₹53,809 | 83.2% | 104 | 1.87x | ₹517 |
| Retargeting (warm audiences) | ₹6,742 | 10.4% | 14 | 1.95x | ₹482 |
| Advantage+ shopping | ₹2,403 | 3.7% | 5 | 1.88x | ₹481 |
| Lookalike audiences | ₹1,686 | 2.6% | 3 | 1.82x | ₹562 |
Creatives
Creative mix month 24
New ads per month
| Creative type | Tier | Ad spend | Purchases | ROAS | Cost per purchase |
|---|---|---|---|---|---|
| Static image | Moderate | ₹14,001 | 33 | 2.26x | ₹424 |
| UGC / creator video | Moderate | ₹4,226 | 9 | 2.16x | ₹470 |
| Catalogue (dynamic product ads) | Moderate | ₹8,176 | 17 | 2.02x | ₹481 |
| Video | Watchlist | ₹33,616 | 59 | 1.69x | ₹570 |
| Carousel | Watchlist | ₹4,621 | 8 | 1.63x | ₹578 |
How we run it
How we run it, why, and how it works
Research & offer Month 1
What we do
We focus the first month on marketing and social presence, the brand’s main problem, on a smaller base. We open with three documents: a website audit, a creative brief and a media schedule by month. We add cart-value offers that step up at set basket sizes to lift order value. Before budget rises, we close the gaps that stop a visitor buying: missing reviews, an unclear return window, no about page and no prepaid incentive.
Why
A smaller beauty and skincare store grows monthly revenue in 2 years, from ₹1L to ₹50Cr (5000x). Fewer than one in ten of our measured accounts grew that fast in the same time, so the case study follows the pace of that top tenth rather than forcing the number. The main problem in this scenario is marketing and social presence. A written brief gives every later budget decision a reference point. Higher order value lowers the share of each order that goes to ads.
How it works
The audit, the brief and the media schedule are shared before spend rises. Tier levels are set just above the basket sizes buyers already reach. Fixes are listed and handed over early, so later budget lands on a store that converts.
Measurement & reviews Month 1 to 24
What we do
We keep a shared daily sheet with the ad platform's revenue next to real store orders. We write month-by-month revenue numbers with the brand's team that climb from ₹1L to ₹50Cr, and open every review with the month-to-date number against them. 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 beauty and skincare stores of that size hold. Ad platforms claim more orders than stores record, so the store number decides budget. Written monthly numbers expose a slow month while there is still time to act.
How it works
Budget decisions are read off store numbers, not the ad platform alone. Each budget step is argued against the written number. A month whose return slips past that point keeps its budget instead.
Creative testing Month 1
What we do
We lead the testing layer with video, static image and catalogue ads, building to about two dozen new ads a month by the final month, keeping carousel on a short leash because its return trails the account. We give each lead product its own campaign and read it weekly. The learning month runs with a deliberately small daily budget until orders prove the buyer. We brief creators for a steady run of UGC video, with regional-language cuts of the winners.
Why
Shared campaigns hide weak products; separate ones expose them fast. Early spend buys learning, not scale. A steady supply keeps the testing layer fed, and regional cuts reach more buyers with the same idea.
How it works
Budget follows the products that sell. Spend steps up only after orders confirm at the low budget. Winning UGC is cut into regional languages before new ideas are bought. The number of new ads grows with spend; video makes up the largest part and static image the next.
Scaling Month 2 to 18
What we do
We scale through Month 2 to Month 18 toward ₹50Cr as the budget rises gently and return dips, with Instagram Reels taking the largest share of spend and Instagram Feed the next. We let return decide budget: more while it holds, less when it slips. We make regional-language versions of the winning video for the states that buy most. We recover abandoned checkouts with WhatsApp messages as traffic grows.
Why
In Month 2 to Month 18 the budget rises gently, and return on spend dips. In several of these months budget goes up only as far as return allows, so revenue grows more slowly than the final number needs. In four of these months budget holds, because return is below the level where more budget pays. Spend scaled in our measured accounts pushed cost per order up and return down, so no step is taken on hope. The same winning idea reaches more buyers in their own language.
How it works
There is no fixed ramp; each month's budget follows the return of the last. The regional versions run next to the original. WhatsApp recovery runs alongside paid retargeting, not instead of it. In the final month, Instagram Reels takes the most spend and Instagram Feed the next most. Prospecting to new buyers takes the bulk of spend, while retargeting returns more for each rupee.
Steady state Month 19 to 24
What we do
From Month 19, we hold the gains and push toward ₹50Cr only as far as return allows. We hold a creative bank and swap tired ads out before click-through falls. We use WhatsApp for abandoned checkouts and for past buyers' next order. We hold budget where return peaks instead of pushing past it.
Why
Growth slows from Month 19, still short of ₹50Cr. Spend holds roughly steady from here. Falling click-through preceded a revenue drop in a measured account, so creative refresh is not optional. A message to someone who nearly bought costs less than an ad.
How it works
New creatives mix with proven ones rather than replacing them all at once. WhatsApp runs alongside paid retargeting, not instead of it. Budget is held while return is at its best and cut back when it slips.
Milestones
Milestones by month
- Month 1
Learning month: a small daily budget carries the first ads, and store orders are matched to tracking. The daily sheet now matches platform revenue to store orders. The media schedule and creative brief are signed off.
- Revenue ₹1L
- ROAS 1.94x
- Ad spend ₹53,924
- Month 2
The scaling phase opens: abandoned checkouts get WhatsApp follow-ups. Budget goes up only as far as return can carry it: budget holds and return on spend holds.
- Revenue ₹1.1L
- ROAS 1.89x
- Ad spend ₹57,427
- Month 3
Regional-language versions of the winner go live.
- Revenue ₹1.1L
- ROAS 1.89x
- Ad spend ₹60,058
- Month 4
Budget is held at the level where return peaked.
- Revenue ₹1.2L
- ROAS 1.90x
- Ad spend ₹62,223
- Month 5
Ads with falling click-through are swapped from the bank.
- Revenue ₹1.2L
- ROAS 1.91x
- Ad spend ₹62,871
- Month 6
Regional-language cuts of the winning UGC go live. Because a larger budget does not earn its keep at this return, budget holds and return on spend holds.
- Revenue ₹1.2L
- ROAS 1.94x
- Ad spend ₹61,598
- Month 7
Each budget move is read against the return it bought. Budget goes up only as far as return can carry it: budget holds and return on spend holds.
- Revenue ₹1.2L
- ROAS 1.89x
- Ad spend ₹63,447
- Month 8
The weekly product read pauses the products that are not selling.
- Revenue ₹1.2L
- ROAS 1.88x
- Ad spend ₹64,230
- Month 9
Repeat-order messages go to past buyers. Because a larger budget does not earn its keep at this return, budget holds and return on spend holds.
- Revenue ₹1.2L
- ROAS 1.91x
- Ad spend ₹64,037
- Month 10
Abandoned checkouts get WhatsApp follow-ups. Budget goes up only as far as return can carry it: budget holds and return on spend holds.
- Revenue ₹1.2L
- ROAS 1.91x
- Ad spend ₹63,277
- Month 11
The winner now also runs in regional languages. Because a larger budget does not earn its keep at this return, budget holds and return on spend holds.
- Revenue ₹1.2L
- ROAS 1.94x
- Ad spend ₹62,723
- Month 12
Budget is held at the level where return peaked. Budget goes up only as far as return can carry it: budget holds and return on spend holds.
- Revenue ₹1.2L
- ROAS 1.89x
- Ad spend ₹64,104
- Month 13
The creative bank supplies this period's refresh. Because a larger budget does not earn its keep at this return, budget holds and return on spend holds.
- Revenue ₹1.2L
- ROAS 1.92x
- Ad spend ₹62,445
- Month 14
Regional-language cuts of the winning UGC go live. Budget goes up only as far as return can carry it: budget holds and return on spend holds.
- Revenue ₹1.2L
- ROAS 1.90x
- Ad spend ₹63,481
- Month 15
The budget decision is taken on the return the last step earned.
- Revenue ₹1.2L
- ROAS 1.91x
- Ad spend ₹62,285
- Month 16
The weekly product read pauses the products that are not selling.
- Revenue ₹1.2L
- ROAS 2.01x
- Ad spend ₹60,185
- Month 17
Past buyers get a WhatsApp nudge for their next order.
- Revenue ₹1.2L
- ROAS 1.89x
- Ad spend ₹63,585
- Month 18
Abandoned checkouts get WhatsApp follow-ups.
- Revenue ₹1.2L
- ROAS 1.86x
- Ad spend ₹64,622
- Month 19
From here the work shifts to keeping ads fresh and bringing buyers back.
- Revenue ₹1.2L
- ROAS 1.88x
- Ad spend ₹64,236
- Month 20
Regional-language versions of the winner go live.
- Revenue ₹1.2L
- ROAS 1.91x
- Ad spend ₹63,648
- Month 21
Budget is held at the level where return peaked.
- Revenue ₹1.2L
- ROAS 1.89x
- Ad spend ₹63,752
- Month 22
Ads with falling click-through are swapped from the bank.
- Revenue ₹1.2L
- ROAS 1.97x
- Ad spend ₹61,497
- Month 23
Regional-language cuts of the winning UGC go live.
- Revenue ₹1.2L
- ROAS 1.95x
- Ad spend ₹62,355
- Month 24
Each budget move is read against the return it bought. Budget goes up only as far as return can carry it: budget holds and return on spend holds. The case study finishes short of ₹50Cr: budget stops rising where return starts to slip. Cost per purchase ends close to the learning phase.
- Revenue ₹1.2L
- ROAS 1.88x
- Ad spend ₹64,640
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.
Test Static image alongside the main format: it reached the top creative tier most often in measured accounts across all industries.
Falling click-through preceded a revenue drop; creative refresh is not optional.
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.
