Beauty & skincare case study: ₹1L to ₹1.2L monthly revenue in 18 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,515 | ₹1,02,059 | 1.91x | 117 | ₹457 |
| Month 2 | Scaling | ₹58,744 | ₹1,11,557 | 1.90x | 128 | ₹459 |
| Month 3 | Scaling | ₹60,704 | ₹1,16,994 | 1.93x | 138 | ₹440 |
| Month 4 | Scaling | ₹63,070 | ₹1,19,345 | 1.89x | 137 | ₹460 |
| Month 5 | Scaling | ₹64,900 | ₹1,24,228 | 1.91x | 141 | ₹460 |
| Month 6 | Scaling | ₹65,095 | ₹1,25,391 | 1.93x | 142 | ₹458 |
| Month 7 | Scaling | ₹66,486 | ₹1,25,952 | 1.89x | 147 | ₹452 |
| Month 8 | Scaling | ₹66,232 | ₹1,26,211 | 1.91x | 151 | ₹439 |
| Month 9 | Scaling | ₹65,640 | ₹1,26,111 | 1.92x | 142 | ₹462 |
| Month 10 | Scaling | ₹66,021 | ₹1,25,926 | 1.91x | 144 | ₹458 |
| Month 11 | Scaling | ₹66,786 | ₹1,26,405 | 1.89x | 149 | ₹448 |
| Month 12 | Scaling | ₹65,337 | ₹1,26,453 | 1.94x | 140 | ₹467 |
| Month 13 | Scaling | ₹65,130 | ₹1,24,508 | 1.91x | 142 | ₹459 |
| Month 14 | Scaling | ₹65,486 | ₹1,24,416 | 1.90x | 142 | ₹461 |
| Month 15 | Steady | ₹65,416 | ₹1,27,855 | 1.95x | 141 | ₹464 |
| Month 16 | Steady | ₹66,321 | ₹1,24,600 | 1.88x | 145 | ₹457 |
| Month 17 | Steady | ₹66,930 | ₹1,24,992 | 1.87x | 148 | ₹452 |
| Month 18 | Steady | ₹65,293 | ₹1,23,058 | 1.88x | 139 | ₹470 |
| Total | ₹11,57,106 | ₹22,06,061 | 1.91x | 2,533 | ₹457 |
Funnel
Funnel, first view to purchase month 18
- Impressions8,26,852
- Link clicks11,6041.4% of impressions
- Landing-page views6,30754.35% of link clicks0.763% of impressions
- Added to cart71911.4% of landing-page views0.087% of impressions
- Checkout started40456.19% of added to cart0.049% of impressions
- Purchases13934.41% of checkout started0.017% of impressions
0.017% of impressions became purchases
Mix
Where the budget goes month 18
| Segment | Ad spend | Share of spend | Purchases | ROAS | Cost per purchase |
|---|---|---|---|---|---|
| ₹40,549 | 62.1% | 86 | 1.88x | ₹472 | |
| ₹22,744 | 34.8% | 49 | 1.90x | ₹464 | |
| Audience Network | ₹2,000 | 3.1% | 4 | 1.92x | ₹500 |
| Segment | Ad spend | Share of spend | Purchases | ROAS | Cost per purchase |
|---|---|---|---|---|---|
| Instagram Reels | ₹17,836 | 27.3% | 38 | 1.88x | ₹469 |
| Instagram Feed | ₹15,471 | 23.7% | 34 | 1.93x | ₹455 |
| Facebook Feed | ₹11,185 | 17.1% | 23 | 1.84x | ₹486 |
| Facebook Reels | ₹9,556 | 14.6% | 21 | 1.96x | ₹455 |
| Instagram Stories | ₹7,242 | 11.1% | 14 | 1.75x | ₹517 |
| Audience Network | ₹2,000 | 3.1% | 4 | 1.92x | ₹500 |
| Facebook Stories | ₹1,141 | 1.7% | 3 | 1.92x | ₹380 |
| Facebook Video | ₹862 | 1.3% | 2 | 1.92x | ₹431 |
| Segment | Ad spend | Share of spend | Purchases | ROAS | Cost per purchase |
|---|---|---|---|---|---|
| Prospecting (cold audiences) | ₹53,585 | 82.1% | 114 | 1.88x | ₹470 |
| Retargeting (warm audiences) | ₹7,586 | 11.6% | 17 | 1.95x | ₹446 |
| Advantage+ shopping | ₹2,508 | 3.8% | 5 | 1.88x | ₹502 |
| Lookalike audiences | ₹1,614 | 2.5% | 3 | 1.83x | ₹538 |
Creatives
Creative mix month 18
New ads per month
| Creative type | Tier | Ad spend | Purchases | ROAS | Cost per purchase |
|---|---|---|---|---|---|
| Static image | Moderate | ₹13,609 | 35 | 2.27x | ₹389 |
| UGC / creator video | Moderate | ₹3,790 | 9 | 2.17x | ₹421 |
| Catalogue (dynamic product ads) | Moderate | ₹8,855 | 20 | 2.03x | ₹443 |
| Video | Moderate | ₹35,054 | 67 | 1.70x | ₹523 |
| Carousel | Watchlist | ₹3,985 | 8 | 1.64x | ₹498 |
How we run it
How we run it, why, and how it works
Research & offer Month 1
What we do
We open with set-up work on the smaller beauty and skincare store, since the brand in this scenario named no single problem. We put the website audit, the creative brief and the monthly media schedule in place before spend moves. We set basket-size offers that reward a second and third item in the cart. We split the account into layers: one campaign to test creative, one to scale winners, prospecting that leaves out past buyers, and retargeting for carts.
Why
In this case study, a smaller beauty and skincare brand grows monthly revenue in 18 months, from ₹1L to ₹1Cr (100x). 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 brand in this scenario named no single problem, so the case study starts from the numbers. 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. The tiers follow real order values, not round numbers. Warm layers run beside prospecting, not instead of it.
Measurement & reviews Month 1 to 18
What we do
We log store orders every day beside what the ad platform claims. We write month-by-month revenue numbers with the brand's team that climb from ₹1L to ₹1Cr, 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
No starting return on ad spend was given; the starting return is what measured beauty and skincare stores of that size hold. Platform attribution over-counts, so budget decisions sit on the store-side number. A shortfall is caught in the month it happens, not at the end.
How it works
The sheet is read before each budget change. 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 test with video, static image and catalogue ads first, rising to about a dozen new ads a month by the final month, with carousel watched closely since it returns less than the rest. The learning month runs on a small daily budget, stepping up only once orders confirm. We work in creative batches with a fixed read window each. We separate the lead products into their own campaigns and review each one weekly.
Why
Early spend buys learning, not scale. A fixed window stops spend chasing a creative before it has been read. Shared campaigns hide weak products; separate ones expose them fast.
How it works
The low budget stays until orders confirm the buyer. Only ads that convert inside the window keep running. A product that does not sell is paused inside the week. The number of new ads grows with spend; video makes up the largest part and static image the next.
Scaling Month 2 to 14
What we do
We scale through Month 2 to Month 14 toward ₹1Cr as the budget rises gently while return holds, 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 refresh tired ads by mixing old and new creatives as spend rises. We recover abandoned checkouts with WhatsApp messages as traffic grows.
Why
In Month 2 to Month 14 the budget rises gently, while return on spend holds. Budget is part-stepped in several of these months, taking only what return will carry. Budget does not rise in one of these months: at that return, more spend does not pay. Each budget step here is sized so that return stays close to where it was. Frequency climbs with spend, and tired ads lose click-through first.
How it works
There is no fixed ramp; each month's budget follows the return of the last. New creatives join proven ones rather than replacing them all at once. WhatsApp recovery runs alongside paid retargeting, not instead of it. Instagram Reels carries the largest share of spend in the final month, with Instagram Feed next. Prospecting to new buyers takes the bulk of spend, while retargeting returns more for each rupee.
Steady state Month 15 to 18
What we do
From Month 15, we protect the revenue already built and move toward ₹1Cr where return permits. We keep a bank of ready creatives and rotate them in as ads tire. We show new arrivals to past buyers first, and build lookalikes from the ones who came back.
Why
Growth slows from Month 15, still short of ₹1Cr. Budget stays about level over these months. A measured account showed click-through falling ahead of revenue, so tired ads are replaced early. Repeat buyers are the cheapest orders an account gets.
How it works
New creatives mix with proven ones rather than replacing them all at once. New arrivals go to past buyers first, before broad prospecting.
Milestones
Milestones by month
- Month 1
The learning phase opens: 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 website audit, creative brief and media schedule are shared.
- Revenue ₹1L
- ROAS 1.91x
- Ad spend ₹53,515
- Month 2
Scaling begins: tired ads are refreshed from the creative bank. Return holds as the budget holds.
- Revenue ₹1.1L
- ROAS 1.90x
- Ad spend ₹58,744
- Month 3
Abandoned checkouts get WhatsApp follow-ups. Budget is raised only as far as return allows: return holds as the budget holds.
- Revenue ₹1.2L
- ROAS 1.93x
- Ad spend ₹60,704
- Month 4
Fresh ads are mixed in beside the proven set.
- Revenue ₹1.2L
- ROAS 1.89x
- Ad spend ₹63,070
- Month 5
The weekly product read pauses the products that are not selling.
- Revenue ₹1.2L
- ROAS 1.91x
- Ad spend ₹64,900
- Month 6
Budget is reviewed against return before the next step.
- Revenue ₹1.3L
- ROAS 1.93x
- Ad spend ₹65,095
- Month 7
This batch's read is done: winners stay, the rest are cut.
- Revenue ₹1.3L
- ROAS 1.89x
- Ad spend ₹66,486
- Month 8
Past buyers get the new arrivals ahead of prospecting.
- Revenue ₹1.3L
- ROAS 1.91x
- Ad spend ₹66,232
- Month 9
Ads with falling click-through are swapped from the bank. The budget waits on return rather than on the calendar, so return holds as the budget holds.
- Revenue ₹1.3L
- ROAS 1.92x
- Ad spend ₹65,640
- Month 10
Abandoned checkouts get WhatsApp follow-ups. Budget is raised only as far as return allows: return holds as the budget holds.
- Revenue ₹1.3L
- ROAS 1.91x
- Ad spend ₹66,021
- Month 11
New creatives join the proven ones.
- Revenue ₹1.3L
- ROAS 1.89x
- Ad spend ₹66,786
- Month 12
Budget shifts to the products that sold this period.
- Revenue ₹1.3L
- ROAS 1.94x
- Ad spend ₹65,337
- Month 13
Budget is reviewed against return before the next step.
- Revenue ₹1.2L
- ROAS 1.91x
- Ad spend ₹65,130
- Month 14
The creative batch is read and the winners keep the budget.
- Revenue ₹1.2L
- ROAS 1.90x
- Ad spend ₹65,486
- Month 15
From here the work shifts to keeping ads fresh and bringing buyers back. The budget waits on return rather than on the calendar, so return holds as the budget holds.
- Revenue ₹1.3L
- ROAS 1.95x
- Ad spend ₹65,416
- Month 16
New arrivals go to past buyers first. Budget is raised only as far as return allows: return holds as the budget holds.
- Revenue ₹1.2L
- ROAS 1.88x
- Ad spend ₹66,321
- Month 17
Tired ads are refreshed from the creative bank.
- Revenue ₹1.2L
- ROAS 1.87x
- Ad spend ₹66,930
- Month 18
Abandoned checkouts get WhatsApp follow-ups. Budget is raised only as far as return allows: return holds as the budget holds. Revenue ends below ₹1Cr, the number this scenario calls for, because budget stops rising where return starts to slip. Each order costs about what it did while learning.
- Revenue ₹1.2L
- ROAS 1.88x
- Ad spend ₹65,293
Learnings
Learnings from brands we measured
Buy creative in batches, give each batch a fixed read window, and refresh tired ads by mixing old and new.
Falling click-through preceded a revenue drop; creative refresh is not optional.
Put most of the budget behind one broad video campaign of the core products, and scale a video that takes off.
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.
