January 1 – June 18, 2026 · all four channels · all three warehouses · source: Unicommerce (live), Google Ads, Meta Ads
All revenue is invoiced sales — open/unshipped orders are excluded. Older months are fully invoiced; May and June still have orders in the pipeline (shown as a separate line below).
| Channel (₹L) | Jan | Feb | Mar | Apr | May | Jun 1–18* |
|---|---|---|---|---|---|---|
| B2B (wholesale) | 36.0 | 47.1 | 54.7 | 55.5 | 27.4 | 20.4 |
| Online (website) | 12.2 | 14.8 | 13.9 | 15.8 | 17.5 | 10.0 |
| Retail Store (KG) | 8.9 | 4.0 | 13.0 | 8.9 | 11.8 | 3.2 |
| Marketplaces | 0.9 | 0.2 | 0.2 | 0.4 | 0.3 | 0.2 |
| Total invoiced | 58.0 | 66.1 | 81.9 | 80.6 | 57.0 | 33.8 |
| open orders (not yet invoiced) | 0.2 | 0.3 | 1.4 | 0.9 | 7.6 | 10.5 |
| June projected (full month) | ~71 |
*June shows two things: ₹33.8L invoiced in the first 18 days, and a ~₹70L full-month projection (the chart's dashed line) once open orders ship and the rest of the month lands. Jan–May are invoiced actuals (revenue = dispatched/delivered line items, tax-incl, post-discount, ex-shipping); they're fully invoiced (<2% open). May still has ₹7.6L of orders to invoice as well.
Why ~₹70L is a reasonable June estimate, not a guess: it's mostly orders already in hand — ₹44.3L placed in the first 18 days (₹33.8L invoiced + ₹10.5L shipping). Across Jan–May the first 18 days captured ~62% of the full month on average, so ₹44.3L ÷ 0.62 ≈ ₹71L (≈₹70L after the ~2% of orders that never invoice). June's first-half pace also sits between May's (which finished ₹65L) and April's (₹83L), pointing to the same range. The swing factor is B2B order timing — a realistic range is ₹62–75L.
The ₹28.0L B2B drop (Apr ₹55.5L → May ₹27.4L invoiced, −51%) comes from a handful of large accounts that didn't reorder — not broad weakness. The customer base actually grew, and part of May's gap is orders still in the pipeline.
| Account | Apr | May | Change |
|---|---|---|---|
| HS Enterprises | ₹7.13L | ₹0 | −₹7.13L |
| Hindustan Trading Company | ₹7.58L | ₹1.86L | −₹5.72L |
| Computer Gallery | ₹5.28L | ₹0 | −₹5.28L |
| Harsh Enterprises | ₹6.29L | ₹3.38L | −₹2.91L |
| Artzo India | ₹2.06L | ₹0.01L | −₹2.05L |
| Account | Apr | May | Change |
|---|---|---|---|
| A N Commtrade LLP | ₹1.29L | ₹2.36L | +₹1.07L |
| Jain Sons Stationery (new) | ₹0 | ₹0.96L | +₹0.96L |
| Mango Stationery Pvt. Ltd. | ₹0.33L | ₹1.17L | +₹0.84L |
| Artistmindz Pvt. Ltd. (new) | ₹0 | ₹0.75L | +₹0.75L |
Invoiced basis matters here: an earlier all-orders view showed 8B-ArtHub as a new ₹1.47L gain and A N Commtrade up ₹5.42L — but 8B-ArtHub is an open, unshipped order (₹0 invoiced) and ₹4.3L of A N Commtrade's May is still in the pipeline. Counting only invoiced sales removes that noise.
Ads drive Online, not wholesale B2B — so judge spend against Online revenue, not the total. On that basis efficiency held all year: a steady 20–27% of Online. May's ~₹1L of extra spend was a deliberate budget turn-up — and the two platforms split: Meta paid off, Google didn't.
| ₹L | Jan | Feb | Mar | Apr | May | Jun 1–18 |
|---|---|---|---|---|---|---|
| Google Ads | 1.66 | 1.62 | 1.75 | 1.83 | 2.51 | 1.44 |
| Meta Ads | 1.33 | 1.36 | 1.56 | 1.79 | 2.16 | 1.35 |
| Total ad spend | 2.99 | 2.97 | 3.31 | 3.62 | 4.67 | 2.79 |
| Online revenue (invoiced) | 12.2 | 14.8 | 13.9 | 15.8 | 17.5 | 10.0 |
| Spend % of Online — invoiced | 24.5% | 20.1% | 23.8% | 22.9% | 26.7% | 27.9% |
| — same, vs Online orders placed (like-for-like) | 24.1% | 19.2% | 22.7% | 21.5% | 25.1% | 22.9% |
The ₹1.05L increase was budget turned up, not rising ad prices. (ROAS = return on ad spend: ₹ of sales per ₹ spent.)
| Jan | Feb | Mar | Apr | May | Jun¹ | |
|---|---|---|---|---|---|---|
| Spend ₹L | 1.66 | 1.62 | 1.75 | 1.83 | 2.51 | 1.44 |
| Clicks | 31.8k | 37.2k | 33.7k | 41.9k | 57.5k | 27.6k |
| Avg CPC ₹ | 5.22 | 4.34 | 5.21 | 4.37 | 4.37 | 5.22 |
| Conv. rate | 3.5% | 2.3% | 2.9% | 4.1% | 3.4% | 2.3% |
| ROAS² | 4.7× | 6.7× | 5.2× | 6.5× | 5.1× | 4.0× |
Google: spend +37% and clicks +37% at an identical ₹4.37 CPC = budget turned up, not auction inflation. But conversions rose only +12%, so conversion rate fell 4.1%→3.4%, cost-per-order rose ₹106→₹130, and ROAS slid 6.5×→5.1×. The extra third of clicks was colder traffic.
| Meta | Jan | Feb | Mar | Apr | May | Jun¹ |
|---|---|---|---|---|---|---|
| Spend ₹L | 1.33 | 1.36 | 1.56 | 1.79 | 2.16 | 1.35 |
| Impressions | 1.42M | 1.52M | 1.57M | 1.79M | 2.16M | 1.08M |
| CPC ₹ | 3.19 | 2.70 | 3.04 | 3.15 | 3.43 | 4.88 |
| ROAS³ | 2.93 | 3.37 | 2.26 | 2.60 | 3.40 | 3.37 |
Meta: spend +21% with CPC up only modestly (₹3.15→3.43), and purchase ROAS actually improved 2.6→3.4 — its best since February. Meta's scale-up paid for itself; Google's didn't.
¹ June 1–18. ² Google on-platform reported conversion value ÷ cost (overstates true store ROAS; useful for trend). ³ Meta reported purchase ROAS.
One number tells the whole story. Our single biggest product sold 16 units a month while out of stock, then 5,996 in the first month we restocked it — same product, same price, same demand. The only thing that changed was whether it was on the shelf. And we're out of our best products about half the time, leaving a standing ceiling on revenue every single month.
| Koh-i-noor eraser, SKU 6312 | Scenario A — out of stock | Scenario B — in stock |
|---|---|---|
| Period | Jan–Mar | Apr onward |
| Units sold per month | ~16 | 5,996 → 2,101 → 1,240 |
| Daily run-rate when selling | near zero | ~84–100 / day |
| Revenue that month (~₹130 each) | ~₹0.2L | ~₹7.8L |
| What was different? | Nothing but the stock. Same product, same price, same demand. | |
Sales don't lead availability — availability leads sales. The gap between the two columns is demand we already had and simply couldn't fulfil.
The cliff is the whole point: three flat bars near zero (out of stock), then a near-vertical jump the moment it's restocked in April. Same product throughout — the flat bars on the left are revenue we left on the table.
| Product | While OUT of stock | The month it was IN stock |
|---|---|---|
| Koh-i-noor eraser (top SKU, ~₹130) | Jan–Mar: ~16 / month | Apr: 5,996 units (~₹7.8L) |
| Edding marker | March: 0 units | Apr: 2,400 units |
| Royal Talens (whole brand) | 5 of 6 months: 0 | 1 month: 2,793 — its entire half-year |
Royal Talens sold its entire half-year of volume in the single month it had stock. Across our top brands, monthly sales track monthly availability almost one-for-one (correlation 0.7–1.0).
Our top-tier (A-class) SKUs are in stock only about half the days. The highest-demand lines are far worse: Winsor & Newton, Royal Talens and Claessens canvas heroes sit in stock under 10% of the time — W&N's top brush line, on its own worth ₹6.2L of sales, was available just 21 of 168 days.
Share of each brand's selling SKUs out of stock right now. W&N's 18% overall is misleading — its bestsellers specifically are 80–95% out. The products that actually sell are out far more often than the brand average suggests.
While the winners sit empty, ₹3.96 Cr is frozen in dead stock — 4,250 SKUs, a third of all in-stock value, unsold for 90+ days (Favini ₹64L, the slow W&N tail ₹55L, Lana, Schut, Pebeo). So this isn't a cash or warehouse problem; it's a mix problem: we're out of the winners and overstocked on the losers — often inside the same brand. Winsor & Newton is at once our most stocked-out bestseller brand and our #2 dead-stock brand. The money to keep fast-movers in stock is already paid for — it's just sitting in the wrong products.
Two different things move this business — don't confuse them. Wholesale reorder timing sets the month-to-month swings (it's why May dipped, and it self-corrects). Stock availability sets the ceiling on what any month can reach (chronic, and fixable).