Skip to content
Up To Code

Manual 5 · Vendor Defense · 5.7

What web work actually costs a trade shop (the price map)

Passed final You — from the truck Takes: Two sittings: the read, then your bill

The same web service gets quoted at $1,200 a month and at $4,500 a month. Both are real quotes, collected by one shop. That spread is the actual problem: every number you hear floats free, with nothing behind it to check. This page puts the real numbers on one board — what owners pay, what vendors publish, what we charge — with what each number buys printed next to it.

The rule the whole page runs on: a price with named work behind it is a bid. A price with nothing named behind it is the fog. That rule is how you price your own jobs, and it works exactly the same pointed back at us.

Reading, plus one pass with your own bill at the end. No login work, no laptop skills past finding your last invoice. An evening at the kitchen table covers it.

Why you never had the number

An HVAC owner posting in a trade forum got quoted about $8,000. He had budgeted less than half that. So he asked other owners the only question he could: "is this price normal?" He had no way to know. Another shop, doing about $800,000 a year in plumbing and HVAC, collected quotes from $1,200 to $4,500 a month for the same service, and said he had no idea how to evaluate them.

You read the fog as the con. Owners in those threads say the same: what sounded scammy was the evasive pricing call itself.

Here is the frame you already use. You price a job from parts you can point at: materials, labor, overhead, margin. On your jobs the customer can see the water heater. On a web quote you get a total with no parts list. This page works like the price board at the supply house counter: the going rates, posted where you can see them. Web work has no standard part numbers, though, so two "$1,000 months" can hold very different amounts of labor. That is why these are bands, not prices to the dollar.

Build prices, and what the money buys at each rung

Where these come from, before you read one. Two rungs are the vendor's own published price, linked under the table. The rest are owners posting their own numbers in public trade threads: real money that really changed hands, but one shop's story, not a survey. None of them is "the right price." The question at every rung is the same: what did the money buy, and can anyone name it?

The numberWhat the money buys
About $30, total, everOne owner ran 32 years on word of mouth and spent about $30 on business cards. The zero end of this map is a real place, and for a booked-solid referral shop it can be the right one.
$500 or lessA relative or hobbyist builds it. You get pages that exist. One plumber paid $500 for a family build and called the result horrible.
$500–$2,000What owners in trade forums tell each other a basic site should cost. At this rung you are buying a brochure: it proves you are real when someone checks you out. Nobody at this rung is promising the phone rings.
$2,500The same plumber's professional build. It brought him 1 to 2 jobs a month.
$6,000His third, all-out site. He hoped for 30 calls a week. Jobs stayed at 1 to 2 a month.
$249 a monthThe rent-style alternative to building (Footbridge Media): flat, month-to-month, no contract, and the vendor says it will help you take the site with you if you cancel. That is the vendor's own ad copy, quoted as advertised.
$12,000 / $24,000Hook Agency's published prices: $12,000 standard, $24,000 custom, each split over 12 months. They state in writing that you own the site 100 percent.

Look at what that one plumber's ladder teaches. Between his $2,500 site and his $6,000 site, the price went up 2.4 times and the jobs stayed at 1 to 2 a month. Not because more money can't buy more — because nobody could say what the extra $3,500 was buying.

There is no going rate between those rungs, because what changes from rung to rung is what the money buys: the research behind the pages, the writing, a page for every service you run, the tracking that counts your calls, and whose name is on everything when it's done. So don't ask "is $3,800 normal?" That question has no answer. Ask "what exactly does the $3,800 buy, named on paper?" A vendor who can answer is bidding. A vendor who can't is measuring you.

Monthly fees, banded, and how solid these bands are

First, where these numbers come from. These bands are owners posting their own numbers in public trade threads. They are anecdotes, not a survey, and the edges are fuzzy. Treat them as fence posts you can sight along, not measurements to the inch.

One term before the table. A retainer is a flat monthly fee for ongoing work. Usually the work is called SEO, which means work meant to make your shop show up when someone searches for your trade in your town.

Monthly bandWhat the money buys
$99–$350Upkeep. Somebody keeps the site alive, patched, and answering. The owners in this band are content because they are buying maintenance and getting maintenance — nobody here was promised growth.
$600–$1,000Real monthly work — when it is real. This band holds honest growth work and report theater at the same prices, and the difference is never the number. It is whether the month's work is listed where you can check it. Ask for the list before you ask about the price.
$2,400–$3,000A serious campaign. Owners defend this band at scale, where the crew can actually absorb what it brings in.
$3,500–$4,500The rejected band. Owners in these threads turn it down for a small shop. One plumber quoted $3,500 a month put it plainly: he does not have 12 months and $40,000 to find out whether it works.

One number you will hear that is not on this map: "spend 5 to 10 percent of revenue on marketing." Budget surveys do exist. We are not going to hand you one, because we have no link to put under it — and quoting an unnamed survey is the rep's own move. Notice what the rule does either way: it sizes the fee to your revenue instead of to the work. That is not a budgeting principle. That is a billing strategy. So when he opens with the percentage, ask him for the survey by name and year. If he cannot name it, the percentage was never the point.

Hosting and care plans, anchored

Keeping a finished site alive is a separate, smaller cost. FatLab, a web support company, publishes its whole ladder: $99, $199, $349, and $599 a month, carrying 0, 1, 3, and 8 developer hours respectively. That published ladder is a clean anchor for what routine upkeep trades at. If a care or hosting bill lands far above it, the difference should be visible work you can name.

The two rules owners use to spot a scam price

Neither rule says cheap is safe or expensive is quality. Both measure the fee against your own shop, which is why they work. The first one only applies when the fee manages ad money; the second applies to any quote at all.

  1. The ratio rule. An owner-authored formula that peers repeat: paying $2,500 a month to manage $1,000 of ad spend reads as a scam. Divide the fee by the money it manages. When the fee outweighs the work it steers, the number has stopped being a price.
  2. The absorption rule. A retainer bigger than the new work your crew could actually absorb, owners write off as a scam on sight. A one-truck shop cannot take on enough extra installs to justify the rejected band, no matter what the pitch promises.

Run both rules on any monthly quote before you weigh anything else in the proposal.

The backdrop: Angi's own filings show it shrinking

One backdrop fact helps you read the high bands. Angi — the company behind HomeAdvisor — in its own figures, filed with the SEC (the federal agency public companies must report their numbers to): service requests fell 31 percent in one year, from about 6.0 million to about 4.1 million, and paying pros fell 7 percent to 192,000 as of the first quarter of 2024. And the slide has kept going since: Angi's own annual filing for 2025 shows revenue of about $1.03 billion, down from about $1.19 billion the year before, which was itself down from about $1.36 billion the year before that. Angi's pitch on your phone is selling you a shrinking pond, and its own filings say so.

Our prices, on the same map — with the parts lists

Plain disclosure before this section: it's our own bid, run through the page's own rule. Skip it freely — the map above stands on its own without it.

We build websites for trade shops, so our numbers belong on this map like every other row. And the page's rule applies to us first: a price with named work behind it is a bid. So here is each of our numbers with its parts list, condensed. The full version, with the terms underneath, is on our pricing page.

Rough-In build: $6,500, one time. What the money buys:

  • The research comes first, and it is not a questionnaire. We build a working research file on your trade and your town: what people type when they need you, who wins those searches today and where they're weak, what customers ask before they hire. You get the whole write-up, including the page map that shows why every page exists.
  • Every page written in your voice, through a thirteen-step writing and checking process. Your main creative homework: answer about fifteen questions by talking into your phone. You also reply on one email thread, confirm a short fact sheet, drop job photos through a phone link, grant a few one-time logins with us walking you through each, and inspect the finished site for factual corrections. One item on that list is bigger than it looks: the logins. This is where owners find out an old web guy or an ex-employee's Gmail still holds the account, and that is the thing most likely to add weeks to a build, so we start it first, not last. If a door turns out to be locked, getting back into your own accounts is the walk.
  • A page for each service you actually do, your Google Business Profile wired to the site, your name, address, and phone matched everywhere Google reads them, and the labels Google reads (schema) on every page.
  • The contact form that texts your cell — name, the problem, a callback number, even a photo of the mess — plus tap-to-call on every page and your Google reviews shown on the site.
  • The listings cleanup, the review kit (your direct review link, print-ready QR cards, an ask-script that isn't begging), the job-photo shot list, and email on your own domain.
  • Your brand matched exactly, truck to site — or your blurry 2009 logo redrawn clean, files handed over — plus the one-page brand sheet any print or wrap shop can work from.
  • Year one: checkups at three, six, nine, and twelve months where we read the actual search data and adjust what isn't pulling, three edits, tracking set up under YOUR ownership with us as the manager, and the first year of hosting, free. When that year ends, nothing starts billing by itself — we ask first, then.

Full Install: $15,000, one time. Everything above at full depth, and what's added:

  • A page for every city and area you serve, written one at a time with your town's actual details — not the city name swapped into the same template thirty times. Google's posted spam rules name that pattern — pages aimed at specific cities that only funnel people to one page — and say sites that break the rules may rank lower or not appear at all. May, not will. Check ours instead: pull up any two of our town pages side by side. If they read like one page with the name swapped, we did not do the work.
  • The content engine, built hub-and-spoke: your main pages answer the customer's question straight, and every deeper question gets its own page, linked back to the main one. Nobody can promise you rankings, us included. It is the same structure running on our own sites: pull one up and follow the links. The checkups above put the actual search data in front of you, and if it is not moving we say so in plain text.
  • Reviews that sync to your site automatically, and your first ninety days of Google Business Profile posts written and scheduled before the site even goes live.
  • The competitor gap-map: the deep version of the research file — where each shop outranking you is weak, and the order we'd attack it in.
  • The missed-call text-back option in an account that is yours (the line service is billed by them, not us), and Local Services Ads readiness — meaning we build your side so the application goes in clean. Google decides the rest, and it is not a switch you flip. Google's Local Services help page, as of July 2026, says background checks are required for select users in the US and Canada, in applicable categories, and tells you to check your Local Services dashboard for what applies to you. Where they apply, they cover the owner and the workers who do the job in the customer's home. That is a screening you can fail, and we get no say in it. Check your dashboard, and ask every man on the truck whether he would clear one. A no costs you this piece, not the build. The channel is at Local Services Ads.
  • Twelve edits in year one instead of three, used whenever you want, spread out or all at once.

The payment plan exists for the Full Install only: 12 payments of $1,350, which comes to $16,200. The extra $1,200 is the whole cost of spreading it out, printed right here. Ownership transfers at payment twelve, and if payments stop, the site comes down — that is the entire enforcement. No exit fee, no percentage of a remaining contract.

Brand package: $1,500, flat, added to either build: a logo designed fresh, the full color and type system, and every file yours when it's done — including the design source files. If you cannot leave a designer with the source files, you rented a logo.

CARE: $150 a month, starting year two — and only with your go-ahead given then. We ask before we ever bill. The utilities plus the upkeep, every month: hosting, the security certificate, daily backups, monitoring, your domain renewal — and two site edits included each month, so changed hours, a new crew photo, or an added service never waits or costs extra. Month-to-month. Don't want it? You get the files and host anywhere, no penalty.

GROWTH: $750 a month, month-to-month. Each month, listed where you can check it: two new articles in your voice, four Google Business Profile posts, the social kit, your ads run in an ads account you own with no markup and no cut of the spend, review replies drafted in your voice for your approval before anything posts, site edits handled as they come up without counting, and a plain-text note with the real numbers — rankings, calls, jobs — plus same-day word if something breaks. Cancel anytime; everything published stays yours.

Where those numbers sit on the board above:

  • The $6,500 build sits above what a basic brochure site trades at, and below Hook Agency's $12,000 standard — because it is a different job than a brochure, and the parts list above says exactly how.
  • The $15,000 Full Install sits between Hook's $12,000 standard and $24,000 custom.
  • CARE at $150 sits inside the $99–$350 floor where owners report being content, between FatLab's $99 and $199 tiers.
  • GROWTH at $750 sits inside the $600–$1,000 middle band — the band where satisfaction splits on exactly one thing: whether the owner can see the work. Ours arrives listed, every month.

If any vendor's difference has no parts list — ours included — walk.

One more sourced fact belongs here: 65 percent of homeowners say they are more likely to call a roofing contractor whose pricing is visible on the site. What your customers want from you is what you should get from a web vendor.

The one sentence that prices any quote

You do not need to know web work to price web work. You need the vendor to break the number into parts, the same way your customers can ask you to. Say this, on the phone or in an email, and then judge what comes back:

The parts-list sentence

"Before we talk about whether that price is fair — send me the parts list. What work, in which months, and whose name is on what when we're done."

A real vendor sends a list. A con sends a paragraph about value, a discount that expires, or a call invite with no parts ever named. One honest caveat: a call to scope a genuinely custom job is normal — a call instead of ever naming parts is the tell.

Put your own bill on the map

Do this tonight with whatever you are paying or being quoted right now. It ends with a result you can check. No paper invoice? The line on your card statement is the invoice — write that number in. Paying nothing and quoted nothing yet? Pocket the board anyway: run this exercise on the first quote that finds you, before any money moves — that's the cheapest version of this page there is.

  1. Pull your last web invoice, or the last quote you were handed. Checkable result: the paper is in front of you.
  2. Write down the two numbers, split apart: "Build: $______ one time. Monthly: $______ a month, for: ______."
  3. Find each number's band in the tables above. Landing between two bands is normal — read the band on each side of your number. Checkable result: you can name the nearest band and say over or under, out loud.
  4. If the monthly fee manages ad spend, run the ratio rule. Checkable result: pass or fail, written next to the number.
  5. Run the absorption rule: could your crew absorb the new work this fee would have to bring in? Checkable result: yes or no, written down.

Print this: the price map on one page

The price mapone page

If a vendor is asking you to sign something built on numbers from this page, read the paper with reading a proposal before you sign, and put the vendor through the five questions first. The whole con, mapped end to end, lives at the vendor-defense hub.