All work
Growth · Analytics·2026Live demo below

ROAS Analyzer

Enter spend and revenue by channel — get ROAS, CAC and contribution per channel, with a clear scale-vs-cut call on each.

Next.jsTypeScriptUnit economicsAI-assisted

01 · The opportunity

What it set out to solve

Founders look at ROAS per channel and still can't tell what to do. A 3× channel can be losing money and a 2× channel can be your best one — it depends on margin and CAC, which the ad dashboards never factor in.

02 · The approach

How I thought about it

I started from the real question — where should the next rupee of budget go? — and built the unit economics behind it: break-even ROAS from your margin, contribution per channel, and a scale/hold/cut call that accounts for both. Then a plain-English read that names the winner and the leak.

03 · What I built

  • Editable channel table (add/remove rows) prefilled with Google, Meta, Email
  • ROAS, CAC, AOV and contribution computed per channel
  • Break-even ROAS derived from your gross-margin assumption
  • Scale / Hold / Cut flags that account for margin, not just ROAS
  • A plain-English verdict naming what to scale and what to fix

04 · The result

What changed

A working analyzer that turns a spend/revenue table into a budget decision in seconds — the kind of growth-finance screen I build live on a client's real channel data.

Live · interactive

Find the budget leak.

Edit the spend and revenue by channel (or use the sample) and watch ROAS, CAC and contribution recompute — with a clear scale-vs-cut call and a plain-English read. Real math, in your browser.

Blended ROAS

2.86×

Total spend

₹4.70 L

Total revenue

₹13.45 L

Contribution

₹3.37 L

Channels

Break-even ROAS at 60.0% margin is 1.67× — below it a channel loses money.

ChannelSpend ₹Revenue ₹OrdersROASCACContributionVerdict
4.00×₹375₹2.52 LScale
1.48×₹867₹-29.0kCut
8.00×₹150₹1.14 LScale

The read

Blended ROAS is 2.86× and the mix throws off ₹3.37 L of contribution a month at 60.0% margin. Google Ads is your winner (4.00× ROAS, ₹2.52 L contribution) — push more budget here. Meta Ads is underwater at 1.48× — fix the funnel or cut it before scaling anything else.

Real math for the demo — ROAS, CAC and contribution from your inputs at the margin you set. A client build runs this live on your ad-platform and order data, with the narrative written by an LLM in your words.

05 · Decisions & trade-offs

The questions I'd get asked about this, and my answers

Why is break-even ROAS the anchor?

Because ROAS alone is meaningless without margin. At 60% gross margin you need ~1.67× just to break even on ad spend — so a channel doing 2× is barely contributing, while the same 2× at 80% margin is healthy. Anchoring on break-even is what turns a number into a decision.

Is the 'read' just a template?

The maths is real — ROAS, CAC and contribution are computed from your inputs at the margin you set. The read is rule-based on those results, so it's honest and explainable. In a client build the same logic runs on live ad-platform and order data with the narrative written by an LLM.