How much should a small SaaS spend on Facebook ads?

Your first ad budget buys information, not customers. Here's the math that sets your real floor, why $5/day tests teach you nothing, and when to scale.

The Flowjat team

· 6 min read

“How much should I spend on Facebook ads?” is the question every maker asks, and it’s the wrong one. It assumes there’s a number that’s simply correct — $10/day if you’re small, $100/day if you’re serious — and that spending it produces customers proportionally.

The better question is: what’s the smallest amount that buys me a real answer? Because your first budget isn’t buying customers. It’s buying information: whether this channel can acquire people at a price you can live with. Customers are what you buy later, once you know that.

That reframe changes everything about how you pick the number. Tuition is worth paying if you graduate. It’s wasted if you drop out halfway — and a budget too small to produce an answer is exactly that: money spent on a course you never finish.

The only budget formula that matters

Meta’s delivery system optimizes by learning from conversion events. Until it has seen enough of them, it’s guessing. In Meta’s documentation on limited learning, an ad set is flagged learning limited when it isn’t expected to reach roughly 50 optimization events in a week. Meta is careful to say this isn’t a punishment — it just means the system can’t optimize well on the data it’s being given.

That threshold hands you your formula. If you need 50 events a week, and each event costs roughly what your cost per conversion is, then:

Weekly floor = your cost per conversion × 50 Daily floor = that ÷ 7

Run it for a few realistic SaaS numbers:

Cost per trial signupWeekly floorDaily floor
$5$250~$36
$10$500~$71
$20$1,000~$143
$40$2,000~$286

Two things usually happen when people first see this table. The first is sticker shock — these numbers are well above what most indie makers imagined. The second is the useful realization: the number that decides your budget isn’t your ambition, it’s your cost per conversion. Optimize toward a cheaper, more frequent event and the floor drops. That’s why your first campaign should optimize for trial starts rather than purchases — not because trials matter more, but because paid conversions at your scale are too rare to feed the algorithm.

And note the chicken-and-egg: you don’t know your cost per conversion until you’ve spent. Estimate with something plausible for your category, budget for it, then correct once real numbers arrive. The estimate only needs to be close enough to pick a starting budget, not right.

Why $5/day tests mislead you

The platform will happily accept a few dollars a day. Your ads will run. The dashboard will populate. It feels like a test.

It isn’t. Watch what $5/day actually produces when trials cost $10:

  • Weekly spend: $35
  • Trials per week: about 3–4
  • After a full month: roughly 14 trials

Now ask what you can conclude from 14 trials. If two of them convert to paid, is your trial-to-paid rate 14%? Or did you get lucky, and it’s really 7%? Or unlucky, and it’s 21%? You cannot tell. At those counts, one extra customer swings the answer by half. You’ve spent $140 and a month to obtain a number with error bars wider than the decision it’s supposed to inform.

Meanwhile the ad set never approached 50 events, so it sat learning limited the entire time — meaning Meta was showing your ads semi-blind throughout. So the result isn’t just noisy, it’s pessimistic: you measured the channel at its worst and called it a verdict.

This is how good products get wrongly abandoned. The maker concludes “Facebook doesn’t work for us,” when the honest conclusion is “I ran an experiment that couldn’t produce a signal.” The $140 didn’t buy a failed channel. It bought nothing at all — which is strictly worse, because at least a real failure is informative.

The uncomfortable implication: if you can’t fund the floor, spending a little anyway is often worse than spending zero. Saving for six weeks and running one properly funded month beats dribbling the same money out over six months.

When the floor is out of reach

Most small SaaS teams read that table and find their honest budget lands under it. That’s normal, and it’s not a dead end. It just means picking a deliberate compromise instead of pretending the constraint isn’t there.

Optimize for a cheaper event. The floor scales with cost per conversion, so a signal that costs $4 instead of $20 cuts your floor by five. If enough people hit a meaningful earlier step — a signup, an activation — you may be able to feed the algorithm on that instead. The caution: the event must correlate with revenue. Optimizing for a cheap event that never becomes money teaches Meta to find you people who never pay.

Concentrate ruthlessly. One ad set. Not three, not “just a small test alongside.” Splitting $50/day across three ad sets gives each about $17/day, and all three starve equally. Pooled conversions are the only way a small budget gets anywhere near the threshold. This is the single most common self-inflicted wound at this level.

Narrow the geography, not the audience. Spend concentrated in one country buys more events than the same spend thinned across a continent — CPMs vary enormously by market. Note this is the exception to the usual “go broad” advice, and it works precisely because it concentrates rather than fragments.

Accept slower, noisier learning — knowingly. Run under the floor if you must, but budget more weeks before judging, and hold your conclusions loosely. There’s a real difference between running a limited test you understand and running one you think is definitive.

What doesn’t work is a small budget plus impatience. If you’re under-funded, restraint is the only thing keeping the test alive: every significant edit resets the learning phase and discards the data you already paid for. Your first week of ads covers what that discipline looks like day to day.

When to scale

You’ve funded a test and it produced numbers. Now what?

The trigger for spending more is not “the numbers look good.” It’s the numbers clear your break-even and they’ve stopped moving. Two conditions, both required:

  1. You’re profitably above break-even. Not above zero — above the ROAS line where you make money after margin and refunds. If you haven’t derived that floor, what counts as a good ROAS for SaaS walks through it. Scaling something that’s marginally unprofitable just loses money faster.
  2. The result is stable. A good week is weather. Two or three consecutive weeks holding near the same cost per conversion is a climate. Scaling on one good week is how people discover their winner was a fluke, at triple the spend.

When both hold, raise the budget gradually — increments around 20%, spaced several days apart. This isn’t superstition: a large budget jump is a significant edit, and significant edits push the ad set back into learning. The whole point of scaling is to buy more of a thing that’s working, which means not breaking the thing that’s working on your way up.

And expect the economics to soften as you climb. Your first $50/day reaches the people cheapest to convince; your fifth doesn’t. Cost per conversion drifting up as you scale isn’t failure — it’s the auction being the auction. What matters is whether it stays under break-even. When it crosses over, you’ve found this channel’s ceiling at your current margin, and that’s real information too.

Where Flowjat fits

Every decision above turns on two numbers: your true cost per conversion and your true break-even. Both live in different places — spend in Ads Manager, revenue in Stripe or RevenueCat — and Meta’s reported conversions won’t match your bank, thanks to attribution windows and modeling. So the scaling decision usually gets made in a spreadsheet at 11pm, on numbers you don’t quite trust.

Flowjat connects your ad accounts and your revenue tools so spend, trials, and real paid revenue line up in one view, and flags when a campaign drifts below break-even rather than leaving you to notice in next month’s reconciliation. The budget math is yours to own. Keeping the inputs honest is what we’re for.

The Flowjat team

Building the ad copilot for builders

Build with us, not just read about it.

Connect your accounts and tell us what's missing. It shapes what we ship next.

Start free