Transcript
Welcome to Hard Questions, a SpendSignal podcast. I'm Sachin Uppal. Every episode, we take one question that no ad dashboard can answer, and work through it end to end. Today's question: If I move my next ₹10 lakh, which channel should it come out of — and is my lowest-ROAS channel the one I should actually grow? My guest is Meera Iyer, Head of Growth at a D2C sleep brand.
Meera, let's start with a scenario. Your founder walks in on Monday and says, "We just raised. I want to put another ten lakh a month into ads." What do you do?
Honestly? I open the truth sheet. It pulls spend and revenue by channel from Supermetrics, and next to it I paste the platform-reported ROAS. Meta says 3.4, Performance Max says 4.1, Search says 6-something, YouTube says 1.6. Then I look at Triple Whale's blended view, which is a bit more sober. Meta comes down to maybe 2.6.
And then?
And then I put most of the new money where ROAS is highest, keep YouTube small because it "doesn't perform," and tell the founder we'll scale gradually and watch. That's what everyone does.
What's wrong with that?
(laughs) You're going to make me say it. Every one of those numbers is an average. It's what the money I already spent earned on average. The founder isn't asking what the average rupee did. They're asking what the next rupee will do. And those can be completely different numbers.
Make that concrete.
Meta prospecting is a good example. Last year at four lakh a day it was magic. We pushed it to seven lakh a day. CPMs went up, frequency went up, we started reaching people who just weren't going to buy pillows. The average ROAS only dropped from 3.6 to 3.4, because all the cheap early conversions are still in that average. But the last two or three lakh a day? I have a gut feeling they're barely breaking even. I just can't prove it.
Why not? You have all the data.
Because no tool I use shows me the curve. Ads Manager will happily tell me Meta is a 3.4. It has no reason to tell me the marginal rupee is a 1.1 — and frankly it can't, because it only sees its own clicks and views. Triple Whale fixes some of the double counting, but it's still attribution: it's deciding who gets credit for an order, not whether the order would have happened anyway. And none of them know my margins.
Say more about margins.
ROAS is revenue over spend. But revenue isn't money. We discount, we pay GST, we pay for shipping and returns, pillows have a cost. On a ₹2,000 order I keep maybe ₹700 before marketing. So a 2x ROAS that looks "fine" can lose money on every order. I do that maths in my head, per channel, at 11pm before a budget review.
What about running a lift test? Haus, or Meta's own conversion lift?
We've done one with Meta. It was genuinely useful — it told us Meta was incremental, at that spend level, in that month. But it's one point on the curve. It doesn't tell me what happens at plus ten lakh. And running one test per channel per quarter, while holding out regions and giving up sales, is expensive. I can't test my way to a budget plan every Monday.
And open-source MMM? Robyn, Meridian?
I tried Robyn. Spent three weekends on it. Got a model out, but I couldn't tell if it was right, the output was a PDF of charts, and by the time I trusted it the quarter was over. I'm a marketer, not a data scientist.
So let me show you how SpendSignal does this. Step one is just connecting what you already have: Meta, Google Ads, GA4 and Shopify. It syncs daily spend by channel and daily revenue from Shopify, and backfills history. You need roughly six months of daily data, and spend has to have moved around a bit over that time — which yours did, because you scaled Meta.
That's it? No tagging?
No tagging for this question. Step two, you tell it your economics once: what percentage of gross revenue you keep after discounts and returns, your gross margin, your fulfilment cost. That turns every revenue number into contribution margin. From there it computes a breakeven — for you, roughly a 1.45x incremental ROAS. Below that, a rupee of spend loses money.
OK.
Step three is the model. It's a marketing mix model, but built to be read by a marketer. For each channel it learns two things from your history: carry-over — today's YouTube spend still selling pillows next week — and saturation — each extra rupee buying a bit less than the last. Then it estimates incremental ROAS per channel: revenue that wouldn't have happened without the spend. It bootstraps the model many times, so every number comes with a range, not just a point.
And the curve?
That's the part you were missing. Because it knows the saturation curve, it can tell you the marginal iROAS: what the next rupee is earning at today's spend. So your screen says something like: Meta prospecting — platform ROAS 3.4, incremental 1.9, marginal 1.1. Breakeven 1.45. Verdict: Trim.
(pause) That's my gut feeling with a number on it.
And then YouTube: platform ROAS 1.6, which is why you've been starving it. Incremental 2.0 — the platform under-credits it because nobody clicks a YouTube ad and buys immediately. And because you spend so little, it's nowhere near saturated, so the marginal iROAS is 2.3. Verdict: Scale.
So the channel I've been calling my worst performer is where the next rupee works hardest.
In this example, yes. Every channel gets one of four verdicts — Scale, Hold, Trim, Cut — based on marginal return versus your breakeven. Then step four is the allocator. You give it the budget, including the extra ten lakh, and optionally floors and caps — "never take Search below two lakh a day," that kind of thing — and it moves money along the curves until the next rupee earns about the same everywhere. It shows the contribution gain per month versus today's split.
And if the founder says "what if we put it all in Meta anyway"?
You run that scenario. Scenarios are just alternative splits; it tells you what each one does to revenue and contribution, with the range. You can do it in the app, or from Claude — SpendSignal has an MCP connector, so the founder can literally ask "what happens if we move ten lakh from Meta to YouTube?" and get the simulated answer with its uncertainty.
Now let me push back. How do I know the model isn't just confidently wrong?
Three things. First, every iROAS has a range. If a channel's range crosses breakeven, it's labelled uncertain — the model is telling you it can't make that call yet. Second, it shows how well the model fits your actual revenue — its fit and error — so you can see whether it's tracking reality. Third, when a channel is genuinely uncertain and a lot of money rides on it, the recommendation isn't "move budget," it's "run a geo holdout first." The model tells you where you need a test like Haus, rather than pretending it doesn't.
And to be clear about one thing: it recommends. It doesn't touch your budgets. You still press the buttons in Ads Manager.
Honestly, I prefer that. So what does Monday look like?
You walk in with: "Meta's next rupee earns 1.1 against a 1.45 breakeven, so we trim prospecting twenty percent. YouTube's next rupee earns 2.3, so the new ten lakh goes mostly there and into Search non-brand. Expected contribution gain: X lakh a month. Meta's range is wide, so we're running a four-week holdout before we cut further." That's a budget decision, not a ROAS leaderboard.
That's the meeting I've wanted to have for two years.
That's Hard Questions. Thanks, Meera. If you want to ask this of your own data, connect your accounts at spendsignal.co. See you next episode.