How much to spend on Facebook ads, from your cash — not a guess
Meta will take a dollar a day. Every guide will tell you to start at five, or twenty, or a hundred. None of those numbers know what's in your bank account. This page has the calculator that does — it takes your cash, your costs and what a customer is worth, and gives back a daily budget, a ceiling, and sometimes a refusal. Then: four ads on four angles, and how to tell whether they worked from a Stripe charge rather than from what Meta reports about itself.
"How much should I spend on Facebook ads?" has a technical answer and a real one. The technical answer: Meta's floor is about $1 a day per ad set for an impression-optimised campaign, and for anything optimised toward a conversion, Ads Manager will warn you unless the daily budget is at least five times what you want a result to cost. So a business hoping for a $40 booking is being nudged, by the platform, toward $200 a day. That reflects something real about how the delivery system learns, and it is also completely disconnected from whether you can afford it.
The real answer starts at the other end. Ads are the one cost in a small business that can be set to any number, which makes them the one cost that can quietly end it. So the budget should be derived from what's in the bank, what's going out, and what a customer is worth to you — in that order — and it should be allowed to come out at zero.
The rule the calculator below uses is deliberately conservative, and worth stating in full because you can apply it on paper: take your cash, subtract three months of burn, spread what's left across the next six months — or across however many months of runway you have, if it's fewer — and let ads have a fifth of that month's slice. Divide by thirty for a daily figure. Three months of burn set aside, because that is roughly how long it takes to fix a revenue problem by other means; a fifth, because ads should never be the largest discretionary line in a business that isn't yet profitable; six months, because planning a budget further out than that is planning fiction.
What your cash can actually stand
Four numbers in. The runway is computed by the same function the product's Money page runs every night, and the budget by the same function its Ads page runs — this is not a formula copied onto a landing page, it is the product's own maths with a different set of inputs. The three buttons load three real positions, including one where the answer is no.
- Suggested daily budget
- $13/day $182 over two weeks — 1 paid order at $186 to get it back.
- What the cash can stand
- $13/day A fifth of one month's slice of the spare cash, once three months of burn are set aside.
- Least that teaches you anything
- $558 Three times your average order, floor of $150. Below about thirty clicks a campaign hasn't told you whether it works — it has just spent slowly.
The chain, in full: burn is $2,143 a month, runway is 8.4 months, and the ceiling is a fifth of what's spare each month once three months of burn are set aside and the rest is spread over six months. That's the same budgetAdvice function the product's Ads page runs, given the same numbers. Nothing typed here leaves your browser.
The interesting case is the refusal
Every ad platform's budget tool suggests a bigger number when you hesitate. A budget recommendation that can't come out at zero isn't advice, it's a sales funnel. Here are four businesses through the same function, computed when this page was rendered.
| The business | Suggested | Ceiling | Test budget | What it says |
|---|---|---|---|---|
| Northline Bike Repair, week six $18,000 in the bank, losing about $2,143 a month, 8.4 months of runway, average order $186 | $13/day | $13/day | $558 | $13/day is what your cash can stand — a real test wants closer to $40/day, so expect this to take longer to tell you anything. Give it three weeks before judging it. |
| A café four months in $4,000 in the bank, losing $3,000 a month, 1.3 months of runway, average order $60 | Nothing | $0/day | $180 | There isn't ad money here yet. At this burn, anything spent on ads comes straight out of runway — and a budget too small to buy thirty clicks buys no information either. Fix the runway first; ads are for scaling something that already works. |
| A studio that covers its costs $60,000 in the bank, $800 a month more coming in than going out, average order $186 | $40/day | $100/day | $558 | $40/day for two weeks (about $560) is enough to learn whether this works, and comfortably inside what your cash can stand. |
| Someone who hasn't added their numbers No bank balance, no costs, no orders yet | $11/day | — | $150 | Start at about $11/day for two weeks — roughly $150, which is the least you can spend and still learn anything. Add your costs and bank balance on the Money page and this becomes a real number instead of a rule of thumb. |
Read the second row twice. A café with $4,000 in the bank losing $3,000 a month has about six weeks, and the honest advice for six weeks is not "start at $10 a day and see". Every dollar spent there comes directly out of the time available to fix the actual problem, and $10 a day for a fortnight buys roughly a hundred clicks — not enough to tell a good campaign from a bad one, so it doesn't even buy information. Ads are a way to get more of something that already works. They are not a way to find out whether anything works.
The first row is the more common shape and the more uncomfortable one. Northline's cash allows about $13 a day; a test that would teach it something properly wants nearer $40. The function doesn't split the difference or quietly recommend the bigger number — it gives the affordable one and says out loud that the campaign will take longer to tell you anything, so that three slow weeks read as expected rather than as failure. Northline ran $300 over twenty-one days, which is $14.29 a day: a dollar over the recommendation, and near enough that the section below is a fair test of what the ceiling buys.
Four ads on four angles, published paused
The most common way a small ad budget gets wasted is testing four wordings of the same idea. Four headlines that all say "affordable mobile bike repair in Denver" will produce four similar numbers and teach you nothing about what your customers respond to. Four angles — different reasons to care — will produce different numbers, and the difference is the finding.
These are the four Velofound wrote for Northline. Copy is held to Meta (Facebook + Instagram)'s limits — 40 characters of headline, 125 of primary text, 30 of description — because over the limit Meta doesn't reject the ad, it truncates it mid-sentence, which is worse. The counts under each line below are the real lengths of the strings in the table, so you can check that rather than take it on trust. The button comes from Meta (Facebook + Instagram)'s own list: Learn more, Book now, Shop now, Sign up, and so on.
| Angle | Headline (max 40) | Primary text (max 125) | Button | utm_content |
|---|---|---|---|---|
| A · Convenience The van comes to you | Your bike gets fixed in your driveway 37 chars | No loading it into a car, no three-week wait at a shop. We park outside, fix it on the pavement, you keep working. 114 chars | Book now | a-driveway |
| B · Time Forty minutes, not three weeks | A full tune-up in about 40 minutes 34 chars | Gears indexed, brakes reset, chain cleaned, tyres up. Most bikes done in under an hour, on your street, mid-workday. 116 chars | Book now | b-40min |
| C · The known problem The bike in the garage | The bike in your garage still works 35 chars | Flat tyres, a rusty chain and squealing brakes are an hour of work, not a new bike. We'll tell you what it needs first. 119 chars | Get offer | c-garage |
| D · Proof What other people did | 43 Denver bikes fixed this summer 33 chars | Wash Park, Baker, Sloan's Lake and one tandem that hadn't moved since 2019. Same-day slots most weeks, Saturdays go first. 122 chars | Book now | d-proof |
Every one of those was created in Meta as a paused object. That is worth being precise about, because "AI runs your ads" usually means something looser. Velofound talks to the Meta Marketing API and creates the campaign, the ad set and each ad with the status set to paused — with no setting anywhere to make it do otherwise. You then open Ads Manager, look at four ads on a screen with your business's name on them, and turn them on yourself. The moment money starts being committed belongs to a person, not to software, and not to a bug in software.
The audience is deliberately dull: a radius around the area actually served, a wide age band, no stacked interests, one ad set. A small budget split across three audiences gives all three too little to learn from, and Meta's delivery system is considerably better at finding the right people inside a broad audience than a founder is at guessing which interests to tick.
A Stripe charge, not a scroll-past
Meta grades its own homework, and in 2026 it changed the marking scheme. Its default attribution setting is now 7-day click-through, 1-day engage-through, 1-day view-through. The click-through part changed in March 2026: it used to count any click on the ad, and now counts only link clicks. Everything else — likes, comments, shares, saves, profile taps, and video views of five seconds or more — moved into a new bucket called engage-through with a one-day window. Advertisers watched their reported conversions fall that month without anything about their advertising changing.
The part that survives all of that: a view-through conversion means somebody scrolled past your ad, didn't click it, and bought something within a day. Meta counts that as its own. Sometimes it genuinely is. Often the person was going to buy anyway. You cannot tell from inside Ads Manager, and the number you're shown includes both.
There is a version of this that doesn't require trusting anybody. If the website is yours and the payment is yours, the chain can be followed end to end: the ad's link carries a campaign tag and a per-ad tag, the tag is stored with the page view, it rides along to the checkout, and it lands on the order. Then a paid Stripe charge — net of refunds, because a refunded sale isn't a sale — can be attributed to the exact ad that paid for it. That is a smaller number than Meta's, always. It is also a number that matches the bank.
- The link
- utm_source=meta, utm_medium=paid, utm_campaign=<campaign>, and utm_content=<variant> so the four angles stay distinguishable after the click.
- The visit
- The tags are read on arrival and stored with the page view, then kept for the session so a visit that wanders around the site before booking still carries them.
- The order
- The same tags are written onto the order at checkout. From then on the booking knows which ad produced it, whatever the customer's browser does afterwards.
- The money
- Only orders that reached paid or partially-refunded status count, minus anything refunded. A campaign that wins customers who ask for their money back is not a good campaign.
- The threshold
- No verdict at all under $75 of spend or 40 visits. Below that a conversion rate is luck dressed up as a measurement.
- The gap
- Meta will report more conversions than this does. The difference is view-through, engage-through and cross-device guessing. Neither number is a lie; only one of them is in your bank.
Here is Northline's campaign after twenty-one days, read that way. The verdict text below is generated by the product's own function from these figures, not written for the page.
| What | Number | Where it comes from |
|---|---|---|
| Spend | $300 | Meta, read from the ad account |
| Impressions | 18,400 | Meta |
| Link clicks | 231 | Meta |
| Visits that actually arrived | 214 | Our own page views, matched on the campaign tag |
| Paid bookings | 4 | Stripe charges on the site, net of refunds |
| Revenue from those bookings | $1,486 | The same charges |
| Cost per paid customer | $75 | Spend ÷ paid bookings |
| Return on ad spend | 5.0× | Revenue ÷ spend |
| Visit → booking | 1.9% | Paid bookings ÷ visits |
$1,486 back on $300. 5.0× on what you put in, $75 to win a customer. This is the rare case where spending more is the right answer — raise the daily budget by about half and watch whether the number holds.
Two details in that table are worth arguing with. There were 231 link clicks and 214 visits — seventeen people clicked and never arrived, which is normal (a back-swipe, a slow page, a browser that blocks the redirect) and is why a click count is not a visitor count. And the four bookings averaged $371 against Northline's $186 across all orders, because two of them were full overhauls rather than tune-ups. That is the example business's own quirk, not a finding about advertising: for three weeks the ad happened to reach people with neglected bikes. Three more weeks would tell you whether that holds. This is exactly why the honest read at 5.0× is "raise the budget by half and watch whether it holds" rather than "we have found a machine".
The order to do it in
Do the budget first, before the account exists
Cash, minus three months of burn, spread over the next six months, a fifth of that slice, divided by thirty. If that comes out under about $5 a day, stop here — you have a revenue problem and ads are not the tool for it. Doing this first also means you never have to answer the budget question inside Ads Manager, where every default is set by a company that earns money when you say a bigger number.
Set up what Meta needs before it takes money
Three things, in this order: A Facebook Page · A Meta business portfolio · An ad account with a payment method. Instagram ads run from that same ad account on that same budget — Meta (Facebook + Instagram) is one platform with two surfaces, and what you're buying is placement in feed, reels, stories, marketplace. Leave placements on automatic; splitting them by hand on a small budget just makes each one slower to learn.
Write four angles, not four headlines
Convenience, time, the problem they already know they have, proof. Keep each inside 40/125/30 characters. Write the primary text so the first sentence works alone — on a phone the rest is behind "more".
One audience, drawn around where you actually work
A radius that matches where you'll really travel, a wide age band, no interest stacking, one ad set holding all four ads. Exclude your own postcode if you don't want to advertise to yourself. Resist making a second audience until the first has spent enough to say something.
Publish paused, then look at it before you turn it on
Create everything in the paused state and open Ads Manager on a real screen. Read all four ads out loud once. This is the step that catches the wrong phone number, the price that changed last month, and the postcode that isn't yours — none of which is an AI problem, all of which is expensive after the fact.
Tag the links, then check one by clicking it
Campaign tag on the landing URL, a different content tag per ad. Then actually click one of the four ads' links yourself and check the tag survives to the page. If money goes out and no visits get credited, it is almost always this — a link pasted without its query string, or pointing at the homepage instead of the booking page.
Leave it alone for the first $75
Under $75 of spend or 40 visits, nothing that happens is a signal. This is the hardest step, because the first two days feel like watching money leave. Set a date to look, and look then.
Then move the budget to the angle that produced paid customers
Not the angle with the best click-through rate — cheap clicks that don't buy anything are the most expensive thing on a small ad account. Pause the angle with visits and no orders, and put its budget on the winner. If every angle produced visits and no orders, the ads are working and the page isn't: change the page before you change anything else.
What this doesn't do
It doesn't set your ads live. Every campaign, ad set and ad is created paused, and there is no setting to change that. If nobody presses go in Ads Manager, nothing spends — which also means nothing happens, and a founder who never opens the tab has bought a very tidy set of drafts.
It can't see what Meta won't show it. Spend, impressions and clicks come from the ad account; everything after the click comes from our own site and our own payment records. That is the point, but it does mean the two numbers won't agree, and Meta's optimisation is still working from Meta's version of events.
TikTok ads and Google Business Profile management aren't built. The ad-copy generator knows TikTok's formats and limits, and the marketing plan will tell you when TikTok is worth your money — but nothing publishes to TikTok Ads Manager, and nothing manages your Google Business Profile, which for a local business is often the highest-return hour of work available and is currently a manual job. Both are named on the product page as not built for the same reason they're named here.
And it can't make a bad offer work. No budget rule, angle test or attribution chain fixes a price people won't pay or a page that doesn't say what happens next. Advertising is a multiplier on whatever is already there, including when that number is below one.
Common questions
What's the actual minimum to run Facebook ads?
Technically about $1 a day per ad set for an impression-optimised campaign. Practically, Ads Manager warns you on conversion campaigns unless the daily budget is at least five times your target cost per result, which for most small businesses is $50 or more a day. The useful minimum is different again: enough to buy about thirty clicks before you judge anything, which for a $186 average order works out around $558 over two weeks.
Is $10 a day enough?
It's enough to spend money slowly. At a typical $1.30 a click it buys around seven clicks a day, so a fortnight is roughly a hundred visitors — too few to tell a good campaign from a bad one, and the decision you make at the end will be based on noise. If $10 a day is genuinely your ceiling, run it for three weeks instead of two and accept that the answer arrives later.
Should I run ads on Facebook or Instagram?
Both, from the same campaign. They're one ad account with two sets of surfaces — feed, Reels, Stories, Marketplace — and Meta's delivery system decides where each impression goes. Turning placements off by hand on a small budget usually makes results worse, not better, because each remaining placement has less to learn from.
Why does Meta report more conversions than my bank shows?
Because Meta's default attribution counts a 7-day click-through window, a 1-day engage-through window (likes, comments, shares, saves and video views of five seconds or more, since March 2026) and a 1-day view-through window — someone who scrolled past and never clicked. Counting from your own payment records removes all three. Meta's number isn't fabricated; it just includes people who would have bought anyway.
How long before I know whether the ads work?
Two weeks at a real budget, three at a small one, and no earlier than $75 of spend or 40 visits. Meta's delivery system also needs a few days to settle, so results from the first 48 hours are actively misleading — campaigns often look terrible on day one and fine by day five. Set a date, then look on it.
What if I get clicks but no bookings?
Then the ads are doing their job and the landing page isn't. That is good news, because a page is cheaper to change than an audience. Look at what the page asks people to do, whether the price is on it, and whether booking takes more than about three taps on a phone. Change the page first, and only then go back to the ads.
Does Velofound run the ads for me?
It writes them, publishes them to Facebook and Instagram in a paused state, tags every link so bookings can be traced back, recommends a budget capped by your runway, and reads the results against real paid orders every night. It never sets an ad live and never raises a budget — both of those are one click in Ads Manager, and both belong to you.
Can it run TikTok or Google ads too?
Not yet. It knows TikTok's formats, character limits and objectives, and the marketing plan will tell you honestly whether TikTok is worth your money — but publishing to TikTok Ads Manager isn't built, and neither is Google Business Profile management. Only Facebook and Instagram are published from inside the product today.
A budget your bank account agrees with.
Velofound writes four ads on four angles, publishes them to Facebook and Instagram paused, caps the budget at what your runway can stand, and counts what came back from real Stripe charges. Free to start.
Start free →