ROAS

Your ROAS Looks Great But You're Still Losing Money — Here's Why

Malik
Malik
·6 min read

You're running Meta Ads. ROAS says 3x. Your ad manager says the campaigns are crushing it. But your bank account tells a different story—it's flat, or worse, it's going down. You're not imagining things. A "good" ROAS and actual money loss can absolutely coexist, and it's more common than most operators think. The gap between attributed ROAS and real profitability has specific, diagnosable causes. Here's where to look.

For the foundational explanation of why ROAS doesn't equal profitability, see why ROAS lies and what to use instead. This post focuses on diagnosing the specific leaks that make a "good" ROAS unprofitable.

The five places your margin disappears

1. Processing fees

Stripe charges 2.9% + 30¢ per transaction. On a $97 course sale, that's $3.11. Doesn't sound like much—until you do the math across volume:

Daily salesRevenueStripe fees% of revenue
10 sales × $97$970$31.133.2%
30 sales × $97$2,910$93.393.2%
50 sales × $47$2,350$83.503.6%

At lower price points, fees take a bigger percentage. If your ROAS calculation uses gross revenue (what Meta attributes), it doesn't subtract these fees. Your real revenue is 3-4% lower than ROAS thinks.

2. Refunds

If you sell courses or coaching with a 14-30 day refund policy, some of those "conversions" in Meta come back as refunds. A 5% refund rate on $3,000/day in revenue is $150/day in lost cash. But ROAS still counted those sales when they happened.

Worse: refunds don't hit on the same day as the original sale. They reduce future Stripe payouts, so the cash flow impact is delayed and hard to spot. For more on this, see how refunds are secretly killing your daily profit.

3. Payout timing

ROAS treats revenue as instant. Your bank account doesn't. A sale on Monday might not land in your bank until Wednesday or Thursday (Stripe's standard payout schedule). Meanwhile, Meta charged your ad spend in real time. So you're spending cash today against revenue you won't see for days.

This creates a gap where ROAS looks great but your bank balance is declining because cash out (ad spend) is immediate and cash in (payouts) is delayed. See Stripe payout timing and why daily numbers look wrong for a deeper explanation.

4. Overhead costs

ROAS = Revenue / Ad Spend. That's it. It doesn't include:

  • Your $149/month platform fee ($5/day)
  • Your $500/month VA ($17/day)
  • Your $99/month email tool ($3/day)
  • Software, hosting, insurance, and everything else

A 3x ROAS means you make $3 in attributed revenue for every $1 in ad spend. But if $0.80 of that $3 goes to fees, refunds, and overhead, your actual return is $2.20—not $3. At lower ROAS, overhead alone can push you negative. See turning monthly expenses into a daily number for how to quantify this.

5. Attribution inflation

Meta's attribution model credits conversions to your ads based on click and view windows (default: 7-day click, 1-day view). Some of those attributed conversions would have happened anyway—organic traffic, returning customers, brand searches. So "3x ROAS" might really be 2x or 2.5x in actual incremental revenue. Combine attribution inflation with the other four leaks, and a 3x ROAS can easily mean break-even or worse.

NetDay

ROAS looks great — but did you actually make money?

Try NetDay free

Free 7-day trial · No credit card required

How to diagnose your situation

Instead of guessing which leak is biggest, use cash in minus cash out by calendar day:

  1. Cash in: What actually landed in your bank that day (Stripe payouts by settlement date, PayPal transfers)
  2. Cash out: Ad spend charged that day + refunds + chargebacks + fees + daily overhead
  3. Daily net: Cash in minus cash out

If your ROAS is 3x but your daily net is consistently red or break-even, the leaks above are the reason. The daily net tells you the truth—no attribution, no modeling, just money in vs money out.

Quick diagnostic: If your ROAS is 3x and you're not profitable, work backwards. $1 in ad spend → $3 attributed revenue → minus ~$0.10 fees → minus ~$0.15 refunds → minus ~$0.25 overhead per dollar → $2.50 real revenue per $1 spent. At 2.5x, some days will be negative depending on volume and timing.

What a healthy margin actually looks like

For ad-dependent businesses, here's a rough guide:

  • ROAS 2x or below: Almost certainly losing money after fees, refunds, and overhead
  • ROAS 2.5–3x: Break-even territory once all costs are included—some days green, some red
  • ROAS 3.5x+: Likely profitable, but confirm with daily cash-day net

These ranges shift based on your overhead, refund rate, and price point. The only way to know for sure is to measure actual cash flow, not attributed revenue.

How NetDay shows you the real number

NetDay connects to Stripe, Meta Ads, and PayPal (read-only) and shows you:

  • Daily cash in: Stripe payouts + PayPal transfers by settlement date
  • Daily cash out: Meta ad spend + refunds + fees + your overhead costs
  • Daily verdict: Green (profitable), red (loss), or break-even—after all costs

So instead of looking at ROAS in Meta and wondering why your bank account doesn't agree, you see the actual daily net. The number that tells you if yesterday's ads made real money—or just looked like they did.

Common questions

Why am I losing money with a good ROAS?

ROAS only measures attributed revenue per dollar of ad spend. It ignores refunds, chargebacks, processing fees, payout timing, and overhead costs. A 3x ROAS means Meta attributes $3 in revenue for every $1 spent—but after fees, refunds, and overhead, the actual cash left can be negative.

What costs does ROAS miss?

ROAS misses processing fees (2.9% + 30¢ per transaction on Stripe), refunds and chargebacks, payout timing delays, overhead costs (software, contractors, tools), and the difference between attributed revenue and actual cash received.

How do I find out if I'm actually profitable?

Use cash in minus cash out by calendar day instead of ROAS. Cash in = Stripe payouts that landed that day. Cash out = ad spend + refunds + fees + overhead. If the result is positive, you made money. NetDay calculates this automatically.


A "good" ROAS doesn't mean you're making money. Fees, refunds, timing, and overhead can erase your margin. Try NetDay free for 7 days to see your real daily profit—not just what Meta's attribution model tells you.

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