Pricing is the question I get asked most by other freelancers starting out. Here’s the framework I actually use.
Price the outcome, not the hours. A five-page business site and a five-page landing funnel with copywriting and conversion tracking take similar hours but deliver very different value. Quote based on what the client gets, not just time spent.
Build in a discovery phase. A short, separately-priced discovery phase lets you scope accurately before quoting the full project, and it filters out clients who aren’t serious.
Always quote in ranges, then narrow down. An early ballpark range sets expectations without locking you into a number before you understand the real scope.
Never quote from a rushed call. Take at least a day to build the estimate. Rushed quotes are where scope gets missed and margins disappear.
Pricing well is really a scoping skill wearing a pricing costume. Get the scope right and the number follows naturally.
Table of Contents
How I actually calculate a number
Start from a line-item scope, not a gut feeling. I break the project into concrete deliverables: pages, integrations, content migration, revisions included. Each line gets a rough hour estimate before I ever think about a total price. Guessing a final number first and reverse-engineering the scope to fit it is how underpricing happens.
Add a complexity multiplier for unknowns. A project with a well-defined brief and a decisive client gets priced at my baseline. A project with vague requirements, multiple stakeholders, or unfamiliar integrations gets a real multiplier, not just a vague “buffer”, because those factors reliably add hours regardless of the visible scope.
Revisions need a hard limit in writing. “Unlimited revisions” sounds generous and quietly destroys margins. I quote two structured revision rounds, with anything beyond that billed at my hourly rate. Clients rarely push back on this when it’s stated upfront instead of discovered mid-project.
Compare against value, not just competitor rates. A landing page expected to convert paid ad traffic into real sales is worth pricing differently than a static informational page, even with similar build hours, because the client’s actual return on that page is different. Resources like the AIGA publish useful benchmarking data if you want an external reference point beyond your own gut.
Pricing confidently is mostly about scoping confidently. If your estimates keep being wrong in the same direction, the fix is almost always in how the discovery call is run, which I detail in How I Structure Client Discovery Calls.
A pricing mistake that taught me the most
Early on, I quoted a “simple five-page site” at a flat rate without a written scope document, based on a single phone call. By the end, the client had requested a blog, a booking integration, and three rounds of full visual redesigns, all of which felt reasonable to them individually since nothing had been explicitly excluded. I delivered the project at roughly a third of my effective hourly rate.
That project is the entire reason my current process starts with a written scope before a number gets attached to anything. It’s not about distrust, it’s about making sure both sides are picturing the same project before either side commits to a price.
A related habit: price the first project with a new client slightly conservatively. The first engagement is as much about learning how a client communicates, how quickly they respond, how clear their feedback is, as it is about the deliverable itself. That information is worth knowing before pricing a second, larger project with more confidence.
Good pricing isn’t a formula you apply once and forget, it’s a feedback loop between what you quoted and what a project actually took, revisited honestly after every engagement.
Handling the client who wants a lower number
Almost every quote gets some pushback, and how you respond matters more than the number itself. The move that’s worked best for me isn’t defending the price, it’s offering to adjust scope instead: “I can hit that number if we cut the blog setup and the second revision round” reframes the conversation from a negotiation over my worth to a collaborative conversation about priorities, which clients respond to far better. It also protects margin far more reliably than simply discounting the same scope to make a client feel like they won something.
Watch for the client who negotiates hardest on price but softest on everything else, that’s usually a good sign, not a red flag. A client fighting over every line item and every deadline simultaneously is telling you something about how the whole project will go. A client who negotiates price once, respectfully, and then trusts the process afterward is usually the client worth prioritizing, even at a slightly lower number than you’d hoped for going in.
A number backed by a written scope is a number you can defend without feeling defensive about it. That confidence alone changes how a client responds to a quote, regardless of the figure attached to it.
The projects I regret most in hindsight were never the ones priced too low after a hard negotiation. They were the ones priced casually, without a real scope behind the number, where the mismatch only became visible once the work was already underway.
If you take one habit from this post, make it writing the scope down before naming a number. Everything else about pricing gets easier once that single habit is in place.
Pricing is ultimately a communication skill dressed up as a math problem. Once the scope is written clearly enough that a client can see exactly what they are paying for, the number itself rarely needs much defending at all.
Every one of these habits took a bad project to learn the hard way. Adopting them before that happens to you is the entire point of writing this down.
Get the scope and the number right together, and the rest of the project tends to take care of itself.
That single change, writing the scope before quoting a number, has done more for my margins than any negotiation tactic I have ever tried.