ROAS

Why ROAS Lies (And What to Look At Instead for Real Profitability)

Malik
Malik
·7 min read
Cover for Why ROAS Lies (And What to Look At Instead for Real Profitability)

You ran Meta Ads last week. Your Ads Manager shows a 3.2x ROAS. You should be thrilled—that's $3.20 back for every dollar spent. But when you check your bank account, the numbers don't add up. The money isn't there. That's not a bug. ROAS is designed to measure ad efficiency, not profitability, and the gap between those two things is where most ad-dependent businesses get blindsided.

I've seen this pattern play out repeatedly: operators scaling spend based on strong ROAS numbers, only to realize weeks later that cash flow was negative the entire time. ROAS isn't lying on purpose—it's just answering a different question than "did we make money?"

What ROAS actually measures

ROAS = Attributed Revenue ÷ Ad Spend.

That formula has three built-in blind spots:

1. "Attributed" is a model, not a fact. Meta uses attribution windows (default: 7-day click, 1-day view) to assign credit. The same sale can show up as attributed revenue in Meta, Google, and TikTok simultaneously. After iOS 14.5 privacy changes, attribution became even noisier—Meta is estimating conversions based on statistical modeling, not pixel-perfect tracking.

2. "Revenue" is not cash. When Meta reports $10,000 in attributed revenue, that's the transaction value at the moment the sale happened. But that money doesn't hit your bank for 2–7 days (depending on your Stripe payout schedule). So "today's revenue" in ROAS terms is not today's cash. You can't pay your ad bill with revenue that's still in Stripe's pipeline.

3. Costs are invisible. ROAS only includes ad spend in the denominator. It ignores:

Hidden costTypical impactIncluded in ROAS?
Stripe processing fees2.9% + 30¢ per chargeNo
Refunds5–15% of revenue for info productsNo
Chargebacks$15+ per dispute + lost revenueNo
Payout timing gaps2–7 day delaysNo
Overhead (tools, team, platforms)$100–500+/dayNo

So ROAS can read 3x while your actual daily cash position is negative.

NetDay

ROAS looks great — but did you actually make money?

Try NetDay free

Free 7-day trial · No credit card required

A concrete example: 3x ROAS, negative cash day

Here's a realistic Monday for a course creator running Meta Ads:

What Meta Ads Manager shows:

  • Ad spend: $2,500
  • Attributed revenue: $8,200
  • ROAS: 3.28x

What actually happened with cash that day:

  • Stripe payout received (from last Thursday's charges): $4,100
  • Meta charged to your card: −$2,500
  • Refunds processed: −$380
  • Stripe fees deducted from payout: −$145
  • Overhead (Kajabi, team, tools): −$180
  • Actual daily net: $895

That's profitable—but it's not $5,700 profitable (which is what $8,200 − $2,500 implies). The gap between the ROAS story ($5,700 profit) and reality ($895 net) is massive. And on days when payouts are lighter or refunds are heavier, that same 3x ROAS day can go negative.

For more on why Stripe's default revenue view doesn't show this, see what Stripe's dashboard won't tell you about profitability.

The five things ROAS ignores

1. Payout timing

Stripe batches payouts. A strong sales day on Monday might not pay out until Wednesday or Thursday. If you're evaluating Monday's profitability using Monday's attributed revenue, you're counting money that doesn't exist in your bank yet.

This is why Stripe revenue doesn't show yesterday's profit—and why ROAS inherits the same problem.

2. Refunds and chargebacks

A customer buys your $497 course on Monday. ROAS counts it immediately. They request a refund on Thursday. ROAS doesn't adjust retroactively. So your ROAS is permanently inflated by sales that reversed.

For info products and high-ticket offers, refund rates of 5–15% are normal. That's a significant chunk of "attributed revenue" that never becomes permanent cash. See how refunds secretly kill your daily profit for the full breakdown.

3. Processing fees

Stripe charges 2.9% + 30¢ per successful charge. On $10,000 in revenue, that's roughly $320 in fees. ROAS doesn't subtract this. Over a month at $300K revenue, fees alone can be $8,700+.

4. Overhead costs

Platform fees (Kajabi, GoHighLevel, Teachable), team costs, software subscriptions, insurance—these run every day whether you make sales or not. A 2x ROAS might look "profitable" until you layer in $300/day in overhead. Then it's breakeven or worse.

You can calculate your daily overhead cost to see what your ads need to clear before you're actually in the green.

5. Attribution double-counting

If you run ads on Meta and Google simultaneously, both platforms may claim credit for the same sale. Your "total ROAS" across platforms can overstate attributed revenue by 20–40% depending on your funnel. This is a well-documented problem that attribution software tries to solve—but it means platform-reported ROAS is structurally inflated.

What to use instead: daily cash-day net

The metric that tells you if you're actually profitable is simple:

Daily net = Cash in − Cash out (for the same calendar day)

ComponentWhat it includesWhere it comes from
Cash inStripe payouts (settlement date), PayPal transfersBank / Stripe payouts tab
Cash outAd spend, refunds, chargebacks, fees, overheadMeta Ads, Stripe, your records

One number per day. Green means you made money. Red means you lost money. No modeling, no attribution windows, no estimates—just what actually moved through your bank.

This is what we built NetDay to calculate. Connect Stripe and Meta (both read-only—here's why we only use read-only connections), and you see your daily net automatically. No exports, no formulas.

For a step-by-step walkthrough of the calculation, see how to calculate your daily profit when running paid traffic.

When ROAS is still useful

ROAS isn't worthless—it's just the wrong tool for profitability. Keep using it for:

  • Campaign comparison: Which ad set produces more attributed revenue per dollar? ROAS is fine for this.
  • Creative testing: Does creative A or B generate a better return signal? ROAS works.
  • Budget allocation: Which campaigns to scale and which to cut? ROAS is a reasonable directional signal.

The rule: Use ROAS to optimize. Use daily cash net to see if you're actually making money. They answer different questions, and you probably need both.

If your ROAS looks great but something feels off, see Meta Ads ROAS positive but still losing money? for the common causes.

Common questions

Why is ROAS misleading for profitability?

ROAS measures attributed revenue per dollar of ad spend using platform models that assign credit across attribution windows. It doesn't account for payout timing (cash lands 2–7 days after the sale), refunds and chargebacks (which can hit weeks later), processing fees (2.9% + 30¢ on every charge), or overhead costs. So a 3x ROAS can coexist with negative daily cash flow.

What should I use instead of ROAS for real profitability?

Use daily cash-day net: cash that actually hit your bank that day (Stripe payouts by settlement date) minus cash that left (ad spend, refunds, chargebacks, fees, overhead). This is a real number from your bank, not a modeled estimate. ROAS is still useful for optimizing campaigns—just don't use it to answer "am I profitable?"

Can I have good ROAS and still lose money?

Yes, and it's more common than people think. A 4x ROAS with $10,000 in attributed revenue and $2,500 in spend looks great—until you factor in $290 in Stripe fees, $800 in refunds, a $500 chargeback, and $200/day in overhead. The "profitable" campaign can produce a negative cash day.

Is ROAS completely useless?

No. ROAS is a useful optimization metric—it helps you compare campaigns, test creatives, and allocate budget toward what generates attributed sales. The mistake is using ROAS as a profitability metric. Use it for optimization, use daily cash net for profitability.


ROAS tells you which ads are efficient. It doesn't tell you if you made money yesterday. For that, you need daily cash in minus cash out. Try NetDay free for 7 days—no credit card required—to see the number ROAS hides.

Share
Malik

Written by

Malik

Founder

Founder of NetDay. Builds tools for operators who run paid traffic and need to know if they made money yesterday.

Related Articles

Generate clarity from your cash — automatically.

Stop guessing if ads made money. NetDay shows your real cash in and out by day.

  • 30-day money-back guarantee
  • Real cash movements by day
  • Cancel anytime