A roofing company spending $1,000 a month on Meta ads and a roofing company spending $9,000 a month are not running the same business. The first one is buying enough leads to keep one salesperson half-busy. The second one is feeding three reps, two crews, and a production schedule that books six weeks out.
The gap between them is not talent. It is a budget number that was picked on purpose instead of picked out of fear.
Most contractors set ad spend by asking what feels safe. That is how you end up at $800 a month, generating twelve leads, closing two, and concluding that Facebook does not work for your trade. Here is how to set the number with math, what each spend tier actually buys, and what a realistic monthly budget looks like across the trades.
How much should a contractor spend per month on Meta ads?
The short answer for most home improvement contractors is $2,500 to $6,000 per month in Meta ad spend for a single trade in a single metro, with $1,500 as the practical floor and $15,000-plus once you are scaling multiple trades or multiple markets.
That range is a starting point, not a prescription. What makes it real is the two constraints underneath it.
Constraint one: the algorithm needs volume
Meta optimizes by learning from conversions. Too few conversions per week and the campaign never exits the learning phase, which means your cost per lead stays high and unstable. For a contractor, that usually means you want at least 20 to 30 leads a month flowing through a single campaign. At a typical $40 to $80 cost per lead, that is $800 to $2,400 in spend before you have given the system enough signal to work with.
Run $600 a month and you are not testing Meta. You are collecting noise.
Constraint two: the sales floor needs feeding
One salesperson running in-home estimates can handle roughly 10 to 15 appointments a week. If you close 25 percent of leads into appointments and 30 percent of appointments into jobs, keeping one rep busy takes 40 to 60 leads a month. Two reps takes 80 to 120.
Budget below that and your rep spends the afternoon on Facebook Marketplace instead of in a driveway. Budget above your crew capacity and you sell work you cannot install for eleven weeks, which is how deposits get refunded.
If you want the number built against your actual close rate and crew capacity rather than a range, get started here and we will run it with you.
How do you calculate your own Meta budget instead of copying a benchmark?
Work backward from revenue. Four steps, all inputs you already have in your CRM.
- Revenue goal ÷ average job value = jobs needed. A $1.2M annual goal at a $10,000 average job = 120 jobs.
- Jobs needed ÷ close rate = leads needed. At a 20 percent close rate on exclusive leads, 120 jobs = 600 leads.
- Leads needed ÷ 12 = monthly leads. 600 ÷ 12 = 50 leads a month.
- Monthly leads × cost per lead = monthly ad spend. 50 × $60 = $3,000 per month.
That is the whole calculation. No agency needs to gatekeep it.
Then sanity-check it against your ceiling with the max cost per lead formula:
Max CPL = (average job value × gross margin × close rate) ÷ 3
Roofing example: $10,000 × 0.40 margin × 0.20 close = $800, divided by 3 = a $267 maximum cost per lead. If you are paying $60, you have enormous room. If you are paying $280, you are underwater before the crew shows up.
What does monthly Meta spend look like by trade?
Ticket size and cost per lead move together, so the right budget is trade-specific. These are typical 2026 ranges for a single metro, one trade, one offer.
| Trade | Typical job value | Typical Meta CPL | Suggested starting spend/mo |
|---|---|---|---|
| TradeRoofing (retail replacement) | Typical job value$9,000-$25,000 | Typical Meta CPL$30-$80 | Suggested starting spend/mo$3,000-$4,500 |
| TradeWindows (whole-home) | Typical job value$8,000-$20,000 | Typical Meta CPL$40-$100 | Suggested starting spend/mo$3,000-$6,000 |
| TradeSiding | Typical job value$12,000-$30,000 | Typical Meta CPL$50-$120 | Suggested starting spend/mo$3,000-$6,000 |
| TradeBathroom remodeling | Typical job value$12,000-$25,000 | Typical Meta CPL$30-$90 | Suggested starting spend/mo$2,500-$5,000 |
| TradeKitchen remodeling | Typical job value$20,000-$45,000 | Typical Meta CPL$60-$150 | Suggested starting spend/mo$4,000-$8,000 |
| TradeHVAC replacement | Typical job value$6,000-$14,000 | Typical Meta CPL$40-$90 | Suggested starting spend/mo$2,500-$5,000 |
| TradeDecking | Typical job value$18,000-$45,000 | Typical Meta CPL$50-$120 | Suggested starting spend/mo$2,500-$5,000 |
| TradeFencing | Typical job value$3,000-$12,000 | Typical Meta CPL$30-$70 | Suggested starting spend/mo$1,500-$3,000 |
| TradeGutters and guards | Typical job value$1,200-$4,000 | Typical Meta CPL$25-$60 | Suggested starting spend/mo$1,500-$3,000 |
| TradePainting (exterior) | Typical job value$4,000-$12,000 | Typical Meta CPL$30-$75 | Suggested starting spend/mo$1,500-$3,000 |
| TradeConcrete and patio | Typical job value$8,000-$20,000 | Typical Meta CPL$40-$90 | Suggested starting spend/mo$2,000-$4,000 |
| TradeWaterproofing / foundation | Typical job value$8,000-$25,000 | Typical Meta CPL$50-$130 | Suggested starting spend/mo$3,000-$6,000 |
| TradeFlooring | Typical job value$5,000-$15,000 | Typical Meta CPL$35-$85 | Suggested starting spend/mo$2,000-$4,000 |
| TradeGarage doors | Typical job value$1,500-$5,000 | Typical Meta CPL$25-$60 | Suggested starting spend/mo$1,500-$3,000 |
Two things jump out of that table.
First, low-ticket trades do not get to spend less in proportion to their ticket. Gutters at a $2,000 average job still need a floor of about $1,500 a month, because the algorithm's volume requirement does not scale down with your invoice. That is why gutter and garage door companies typically need far more leads per revenue dollar than roofers do.
Second, high-ticket trades can absorb a much higher cost per lead and still print money. A kitchen remodeler paying $140 a lead and closing 20 percent is at a $700 cost per acquired job on a $35,000 project. That is 2 percent of revenue. A roofer paying $45 a lead and closing 12 percent is at $375 on a $10,000 job, or 3.75 percent. Both are healthy. Neither is obvious from the cost per lead alone, which is why cost per lead is the wrong number to optimize.
What does each budget tier actually buy?
| Tier | Monthly ad spend | Daily spend | Realistic leads/mo | What it supports |
|---|---|---|---|---|
| TierTest | Monthly ad spend$1,500-$2,500 | Daily spend$50-$83 | Realistic leads/mo20-50 | What it supportsOwner-sold, one crew, one zip cluster |
| TierStable | Monthly ad spend$2,500-$6,000 | Daily spend$83-$200 | Realistic leads/mo40-120 | What it supportsOne to two reps, one trade, full metro |
| TierGrowth | Monthly ad spend$6,000-$15,000 | Daily spend$200-$500 | Realistic leads/mo90-300 | What it supportsTwo to four reps, second trade or second market |
| TierScale | Monthly ad spend$15,000-$50,000+ | Daily spend$500-$1,650+ | Realistic leads/mo250-1,000+ | What it supportsSales manager, multiple markets, multiple offers |
The tiers are not just bigger versions of each other. They behave differently.
Test tier ($1,500-$2,500)
One campaign, one offer, one tight geographic radius. Your job here is to learn your true cost per lead and your true close rate on Meta-sourced homeowners, which is almost always lower than your referral close rate and almost always higher than your shared-lead close rate. Give it 60 to 90 days before you judge it. Thirty days is a weather report, not data.
Stable tier ($2,500-$6,000)
This is where most established contractors live. Enough volume to keep reps booked, enough conversion data for Meta to optimize, enough budget to run a second creative set against the first. At this tier you should be able to state your cost per acquired job to the dollar. If you cannot, the problem is tracking, not spend. Fix that with the ROI calculator before you add another dollar.
Growth tier ($6,000-$15,000)
Adding a second trade or a second market. Expect cost per lead to rise 10 to 25 percent when you widen geography, because you are reaching further past your densest, warmest audience. That is normal and it is still usually cheaper than the alternative channels. Budget for it instead of panicking about it.
Scale tier ($15,000+)
At this level ad spend is an operations problem, not a marketing problem. Lead response has to be staffed, not hoped for. Crew capacity has to be booked forward. A single unstaffed weekend at $600 a day burns $1,200 of leads that nobody calls back.
If you are trying to figure out which tier your company should actually be at this quarter, book a walkthrough and we will size it against your close rate, your crew capacity, and your market.
Why does spending too little cost more per lead?
This is the part that catches people. Underfunding a campaign does not produce fewer leads at the same price. It produces fewer leads at a higher price.
Three reasons:
- The learning phase never closes. Meta needs a steady stream of conversions to find your buyer. Starved budgets deliver conversions in clumps, so the system keeps re-learning and keeps overpaying.
- Creative testing becomes impossible. You cannot compare two offers on $30 a day. You can barely run one. So you never find the 40 percent cheaper angle that was sitting one test away.
- Auction timing gets worse. Small daily budgets get delivered in the cheapest, lowest-intent slots. You get impressions, not homeowners.
The practical rule: if you cannot fund $50 a day for 90 straight days, do not start. Fix cash flow first, or start with a trade where the floor is lower.
What is the total cost, since ad spend is not the whole number?
Ad spend is one line. Your all-in cost per lead is what matters.
| Cost component | Who it goes to | Typical figure |
|---|---|---|
| Cost componentMeta ad spend | Who it goes toPaid by you, directly to Meta | Typical figure$1,500-$15,000+/mo |
| Cost componentPerformance partner fee | Who it goes toPer qualified lead delivered | Typical figure$50-$200 per lead |
| Cost componentBooked appointment fee (if used) | Who it goes toPer appointment set | Typical figure$200-$400 each |
| Cost componentOne-time setup | Who it goes toBuild, tracking, creative, landing page | Typical figureFrom $2,000 |
| Cost componentYour follow-up labor | Who it goes toInternal | Typical figureRep time, CRM, phone |
With Minyona, campaigns run inside the contractor's own Meta ad account. You pay Meta directly, you see every dollar in your own reporting, and the pixel data, audiences, and retargeting lists stay with your company. There is no retainer and no ad-spend markup hiding in the middle. You pay for the work when the system delivers a qualified lead or a booked appointment.
That structure matters more than the budget number, because it is what keeps the budget honest. When spend and results sit in your own account, there is nowhere for a bad month to hide.
When should you raise the budget, and by how much?
Raise when all three of these are true:
- Cost per acquired job is under 10 percent of average job value.
- Every lead is getting a call inside five minutes during business hours.
- You have crew capacity to install the extra volume inside your promised lead time.
Then raise by 20 to 30 percent, not double. Large jumps reset the learning phase and spike your cost per lead for a week or two. Step it up, let it stabilize for 10 to 14 days, check the cost per acquired job, step again.
Cut or pause when cost per acquired job crosses 15 percent of job value for two consecutive months and the problem is not follow-up. Nine times out of ten it is follow-up.
What about Google, and should the budget be split?
For most home improvement trades, Meta carries the planning-phase buyer and Google captures the homeowner already searching. Search clicks in competitive trades can run $30 to $80 each, which means a $2,000 Google budget may buy 30 clicks a day and a handful of leads. The same $2,000 on Meta reaches thousands of homeowners in your radius who have not started shopping yet.
If you only have budget for one, most contractors should start with Meta and add search later. The full comparison is in Facebook Ads vs Google Ads for contractors.
The short version
Pick the number with math, not nerves. Revenue goal, divided by job value, divided by close rate, times cost per lead. Check it against the max CPL formula. Fund at least $50 a day or do not start. Hold it for 90 days. Then raise it in steps as long as cost per acquired job stays under 10 percent of ticket and your crews can keep up.
If you would rather have the tier sized for your trade, your market, and your actual close rate before you spend a dollar, get started here. Campaigns run in your ad account, you pay Meta directly, and you pay us when the system delivers.
Frequently asked questions
What is the minimum monthly Meta ad budget for a contractor?
About $1,500 per month, or $50 per day, is the practical floor for a single trade in a single metro. Below that you generate too few conversions per week for Meta's algorithm to optimize, your cost per lead rises, and one bad week wipes out the month's data.
How do I calculate my own Meta ad budget instead of copying a benchmark?
Work backward from revenue. Divide your revenue goal by your average job value to get jobs needed, divide that by your close rate to get leads needed, then multiply leads needed by your cost per lead. That product is your monthly ad spend, and every input is a number you already have.
Is $50 per day enough to generate contractor leads on Facebook?
It is enough to start and test in one service area with one offer. At a typical $40 to $80 cost per lead it produces roughly 19 to 37 leads a month, which is workable for a small crew but too thin to feed multiple sales reps or multiple trades at once.
Does ad spend include what I pay a lead generation partner?
No. Ad spend is paid directly by you to Meta out of your own ad account. A performance partner's fee is separate, typically $50 to $200 per qualified lead or $200 to $400 per booked appointment, plus a one-time setup. Your all-in cost per lead is both numbers added together.
When should a contractor increase Meta ad budget?
Increase when your cost per acquired job is comfortably under 10 percent of average job value, your sales team is calling every lead within five minutes, and you have crew capacity to install the extra work. Raise spend by 20 to 30 percent at a time, not double, so the campaign can re-stabilize.
Frequently asked questions
What is the minimum monthly Meta ad budget for a contractor?
About $1,500 per month, or $50 per day, is the practical floor for a single trade in a single metro. Below that you generate too few conversions per week for Meta's algorithm to optimize, your cost per lead rises, and one bad week wipes out the month's data.
How do I calculate my own Meta ad budget instead of copying a benchmark?
Work backward from revenue. Divide your revenue goal by your average job value to get jobs needed, divide that by your close rate to get leads needed, then multiply leads needed by your cost per lead. That product is your monthly ad spend, and every input is a number you already have.
Is $50 per day enough to generate contractor leads on Facebook?
It is enough to start and test in one service area with one offer. At a typical $40 to $80 cost per lead it produces roughly 19 to 37 leads a month, which is workable for a small crew but too thin to feed multiple sales reps or multiple trades at once.
Does ad spend include what I pay a lead generation partner?
No. Ad spend is paid directly by you to Meta out of your own ad account. A performance partner's fee is separate, typically $50 to $200 per qualified lead or $200 to $400 per booked appointment, plus a one-time setup. Your all-in cost per lead is both numbers added together.
When should a contractor increase Meta ad budget?
Increase when your cost per acquired job is comfortably under 10 percent of average job value, your sales team is calling every lead within five minutes, and you have crew capacity to install the extra work. Raise spend by 20 to 30 percent at a time, not double, so the campaign can re-stabilize.
