Skip to main content
Journal

Why we publish our prices when nobody else does

· 6 min read · By Max Muncy

Go look at the websites of the ten closest direct competitors I have — local web design + SEO studios in Eastern NC and adjacent markets. Look at how many of them publish a price.

I’ll save you the click. The answer is one. Mine.

Every other studio’s pricing page says some version of “every business is different — let’s chat to scope the right package for you.” Some put a “starting at $X” floor with no ceiling. Most don’t even put the floor.

I went the opposite direction. The homepage has the prices in the hero. $250 + $97/mo for the one-page landing. $500 + $400/mo for the full retainer. Month-to-month. No contracts. The numbers are right there before you scroll.

I get asked about this on probably half my discovery calls. Some version of: “Why do you publish the prices? Doesn’t that limit what you can charge?”

The honest answer is no, it doesn’t. And it does a lot of other things that matter more.

The case against publishing prices (which I took seriously)

I’ll give the opposing case the airtime it deserves, because I genuinely considered it before publishing.

Argument 1: opaque pricing lets you price to value. Two clients of nominally the same scope can be worth wildly different amounts to the agency. One client converts their existing in-flight enthusiasm into a $400/mo retainer. Another, with a higher-stakes business and more to lose, might pay $1,200/mo for the same scope because the relative cost is invisible to them. Opaque pricing captures that spread.

This is real. I forgo some real revenue by publishing. I’m fine with that — and I’ll explain why below.

Argument 2: published prices anchor the conversation downward. Once a prospect sees “$400/mo,” any conversation about scope creep, custom add-ons, or a higher-margin retainer starts from that anchor. They expect it to stay close to $400 even when the scope balloons. The published price becomes a ceiling, not a floor.

Also real. The work-around is being explicit about what’s in scope at the published price and what triggers a custom quote (multi-location, e-commerce, complex integrations, paid media management). I do that — but yes, it requires more discipline than just quoting fresh on every deal.

Argument 3: “if it’s cheap, it must be less.” This is the perception problem. There’s a credible school of pricing strategy that says publishing a low number signals you’re worth that number. The buyers willing to pay more are deterred. The buyers shopping at exactly that number are the ones who show up. You end up serving the price-shopper segment whether you want to or not.

Also real. I’ll show you the data on this below — it’s not as bad as the theory predicts, but it’s a real effect.

So yes, I knew what I was giving up. I published anyway.

Why I published anyway

Three reasons. They all reduce to the same underlying thing — I’d rather work with buyers who understand the structure than with ones who don’t.

1. Opaque pricing rewards the wrong buyer. When the price is hidden, the people who get the best deal are the people best at negotiating, name-dropping, or playing agencies off each other. The people who pay the most are the ones least equipped to push back — often the ones who can least afford it. I find that unpleasant. Publishing the price means everyone pays the same number for the same scope, and the people who’d otherwise overpay are the ones who benefit.

This isn’t moral high ground — it’s selfish too. The agencies in this market that grew on opaque pricing are now defending it under increasing pressure as buyers wise up. The trust premium on transparency compounds; the trust deficit on opacity is starting to compound the other way.

2. The conversation starts in the right place. When a prospect shows up to a discovery call having already seen the price, every minute we spend talking is about fit — is this the right scope, is this the right cadence, is this the right type of work for their business. We’re not litigating whether they can afford it; we already know they can. We’re not in a sales motion that’s secretly a budget interrogation.

That changes who shows up. The prospects who can’t afford it self-select out before the call. The prospects who can afford it but don’t think we’re worth it also self-select out. What’s left is overwhelmingly people who’ve already decided they want the work and now want to confirm we’re the right ones to do it. That’s a fundamentally different sales conversation than the one most agencies are running.

3. The pricing itself is part of the proof. This is the one I didn’t see clearly when I made the call. The act of publishing prices is itself evidence of how we think about the relationship. Studios that hide their prices are signaling — accurately — that the price they’d charge you is calibrated to you specifically. Studios that publish prices are signaling that the work has a number attached and they’re comfortable defending it.

For the buyer trying to decide whether we’re trustworthy, those signals matter. A prospect once told me — first sentence of a discovery call — “I trusted you enough to actually book this call because you put the prices on the homepage.” That’s not a sales tactic. That’s the structure earning its keep.

What it cost me in inbound volume

Three months in, the honest numbers:

Inbound volume is roughly what I’d expected from the broader Eastern NC market — call it ~40 qualified leads per month between the contact form, the free Loom audit, and direct outreach (mine, going the other direction).

What changed isn’t volume; it’s composition. The discovery calls now skew heavily toward people who’ve already read the pricing page, the local-seo-pricing piece, and at least one of the audit posts before they show up. They walk in knowing what we charge and at least roughly what they should be getting for it.

The discovery-to-retainer conversion rate is higher than I expected — closer to 60% than the 20–30% an opaque-pricing agency would expect at this stage. The flip side: probably 30–40% of inbound that would have made it to discovery under opaque pricing never books a call, because they see the number and self-select out. They’re not always wrong to self-select; sometimes they’re the prospects who’d have wasted my time and theirs.

The lost-revenue calculation, honestly: I’m probably leaving 10–20% on the table compared to an opaque-pricing peer with the same delivery scope. I’m also closing 2–3× faster on the deals that do happen, and I’m sleeping better.

The three pieces I shipped today are the policy demonstrating itself

I shipped three Compare pieces this morning (affordable SEO services, local SEO pricing in 2026, and a full breakdown of small-business website costs). They total roughly 9,000 words on what work actually costs in our category in 2026.

I named our prices in all three. I named other agencies’ prices where I could verify them. I told prospects when DIY is genuinely fine and they shouldn’t hire anyone — including me. I told prospects when the agency tier is right and they should spend more than we charge.

A prospect from one of those pieces will land on the contact form already knowing whether they want to talk to us, and whether what they want is what we sell. If they show up, the conversation starts from fit. If they don’t, they shouldn’t have been on the call anyway.

That’s the whole policy. The 9,000 words are the proof.

What I’d tell anyone considering publishing their prices

A short list, from someone three months in:

1. The published price has to be defensible. If you write a number on your homepage and can’t articulate why it’s that number and what’s in scope, prospects will eat you on the discovery call. Publish the number after you’ve built the spreadsheet that shows why it’s the right number, not before.

2. Be specific about what triggers a custom quote. “$400/mo is the studio retainer for businesses with one or two service-area locations” is defensible. “$400/mo” with no scope notes is bait.

3. The trust premium takes 30–60 days to show up in inbound. Publishing prices won’t generate leads on day one. It will shift the composition of leads you already get. Stick with it before you decide it’s not working.

4. Don’t lower the published price under pressure. If a prospect asks “is that negotiable,” the honest answer is no — because if it is, then publishing the price was a stunt. The whole structure depends on the number meaning what it says.

5. Pair the published prices with content that explains them. A number on a homepage is a starting point; the explanation of what makes that number reasonable is the conversion mechanism. The Compare pieces I shipped today do that work. Without them, the homepage prices would generate confusion as often as inbound.

Why this is in the Journal and not the Compare hub

A note on hub placement. This piece could’ve gone in Compare — it’s about pricing, after all. I put it in Journal because the argument isn’t “Mainsail vs other agencies on price.” It’s here’s how I think about pricing, and here’s the call I made and why. That’s a Journal piece — operator POV, not buyer-comparison.

The Compare pieces convert; the Journal pieces build the trust that makes the conversion mechanism work. This is the second one. There’ll be more.

What’s next

I’m running an experiment for Q3 on whether to publish the per-piece content costs too — the Anthropic API spend on each blog post, the DataForSEO research spend, the studio time per artifact. It’s the same logic taken one step further: if the operating costs are transparent, the price of the retainer becomes provably defensible.

Most agencies will think publishing operating costs is crazy. Maybe it is. I’ll know in 90 days. I’ll write the update either way.

— Max

Book Email Call