Skip to main content
Agencies

Fixed Price, Hourly, or Retainer: How Agencies Structure Web Design Fees

Quick answer

Use fixed price when the scope is written down and signed off, hourly when the work is unpredictable or you don’t yet trust the estimate, and a retainer when the relationship is ongoing care and small improvements rather than a single build. Each model puts the risk of scope creep on a different side of the table, so the real decision is who should be holding that risk on this particular project.

Every agency argues with itself over the same question on a new project: quote it flat, bill it by the hour, or land it as a retainer? I’ve quoted more builds than I can count, and none of the three models is “better.” Each assigns risk between you and the client differently, and picking the wrong one is how a profitable project turns resentful.

This isn’t a rate card. If you’re still working out what to charge, that’s covered in our guide to web design pricing. This is about structure: when each model works, what it needs to hold up, and how to move between them without giving away margin.

When does fixed price work for a web design project?

Fixed price works when the scope is written down, both sides signed off, and you’ve priced enough similar builds to estimate the hours accurately. Getting a real scope in front of the client matters more than the pricing model itself; see our guide to scoping a website project if that step is shaky. Quote a number, deliver what was agreed, and everything outside that document is a change order, not a favor.

It rewards efficiency in a way hourly never does. Scope a build at 60 hours and finish in 45 because you’ve built the same thing five times before, and you keep the difference. The catch: it only holds up with a real change process behind it, or “just one more thing” requests pile up for free and a profitable job quietly turns into a loss. We cover that process in an example change-request process for website projects. Skip it and you’ll eat every request the client calls “small.”

When does hourly billing make more sense?

Hourly fits genuinely unpredictable work: a rescue on a codebase you didn’t build, ongoing tweaks with no defined end point, or anything nobody can honestly estimate yet. You bill for the time work actually takes, not a number you’re hoping holds.

The tradeoff is that hourly shifts risk onto the client, and clients notice. An invoice with more hours than expected reads as “did they know what they were doing,” even when every hour was legitimate. That’s why hourly lives or dies on trust and reporting: detailed time logs, a running total the client can see before the invoice lands, and a heads-up the moment an estimate is about to blow, not after. Clients rarely dispute a bill they saw coming. It also needs a client willing to pay for discovery, not just execution; if a prospect balks at that, scope a smaller fixed-price diagnostic instead.

How should a web design retainer be structured?

A retainer is for ongoing care and incremental improvement, not a build. A new design and launch is a project with a start and an end, priced under one of the other two models. A retainer is what happens after launch: updates, small design changes, content additions, the steady stream of “can you also” requests once a site is live.

A retainer that works has four things nailed down first:

  • Defined scope. What’s included (minor edits, content swaps, small feature additions) and what isn’t (a new section, a rebuild, anything that’s really a project wearing a retainer’s clothes).
  • A stated hour allotment. A number of hours per month the retainer buys, not “unlimited support” with no ceiling, which is how a retainer becomes free labor.
  • A rollover rule. Decide up front whether unused hours carry into next month, expire, or bank to a cap. Say it in the agreement, not after a client asks why January’s hours vanished.
  • A renewal and review point. Revisit the hour allotment every quarter or two against actual usage, and adjust before either side feels shortchanged.

What a retainer is not: a discount on hourly work, a way to lock a client into a lower rate for the same hours, or a substitute for scoping a real project properly. Selling ongoing WordPress care specifically? See our breakdown of white-label WordPress care plans for agencies for the reselling mechanics.

How does each model handle risk and scope creep?

Every one of these models is a decision about who eats the cost when a project runs long. Fixed price puts that risk on you, unless a change process protects you. Hourly puts it on the client, who pays for however long the work takes, but only if they trust the reporting. A retainer spreads the risk over time, capped by the hour allotment, so no single month’s surprises hit either side as long as the scope stays honest.

Scope creep hits each model differently. On fixed price, it’s a margin killer with no change order. On hourly, it’s just more hours, fine for both sides if it’s communicated as it happens. On a retainer, it’s the quiet threat: requests that individually look small enough to fit “in the retainer” but collectively blow past the hour allotment every month. That’s why a retainer’s scope line needs to be as specific as a project contract’s. Our web design contract guide covers the clauses that hold up when a client pushes back.

Fixed price vs hourly vs retainer: how each model behaves
Model Best for Risk sits with What it needs to work Failure mode
Fixed price Clear, well-understood builds you’ve scoped before The agency A signed scope and a working change-request process Scope creep eats the margin with no way to bill for it
Retainer Ongoing care and small improvements after launch Shared, capped by hours A defined scope, hour cap, rollover rule, and renewal review Requests quietly exceed the hour allotment every month

Why does payment risk matter more than the model you pick?

Whichever model you use, the model itself doesn’t protect you from nonpayment. A contract and a payment schedule do, and the problem they guard against is bigger than most agencies assume.

Late and nonpayment among independent workers, United States (Freelancers Union, 2015)
Measure Figure
Had trouble collecting payment at some point in their career 71%
Had trouble getting paid in the surveyed year alone 50%
Of those with payment trouble, paid late (vs. not at all) 81%
Average longest wait to get paid 98 days

Source: Freelancers Union, The Costs of Nonpayment (national survey of 5,358 independent workers, fielded 2015).

That’s the case for milestone payments on fixed price (a deposit up front, a payment at each milestone, the balance at launch) and for billing retainers in advance. It’s not about distrusting a specific client. It’s about not letting a payment structure turn a good project into unpaid work.

Key takeaways

  • Fixed price works when the scope is locked and you have a change process; it rewards efficiency but puts the risk of creep on you.
  • Hourly fits unknowns and rescues, but only holds up with real trust and reporting behind every invoice.
  • A retainer needs a defined scope, a stated hour cap, a rollover rule, and a renewal review, or it quietly becomes free work.
  • No model protects you from nonpayment by itself; milestones and upfront billing do that.

A worked example: the same project under all three models

Say a build scopes at 80 hours. Here’s how the numbers move under each model, in hours and margin, not a rate.

  • Fixed price. You quote for 80 hours; the team finishes in 68 because the pattern is familiar, so your effective margin rises roughly 15% over plan. Two client-requested additions at 6 hours combined go through the change-request process, billed on top, fully protected.
  • Hourly. The same build runs long on an unexpected plugin conflict, landing at 94 hours, about 17% over estimate. The client pays for all 94 because they were told about the overage at hour 82, before it kept climbing.
  • Retainer. The client treats the same scope as monthly requests against a 20-hour retainer. The build stretches across four months, and 8 hours from month one roll into month two under the agreed rollover rule instead of being billed as overage or lost.

Same 80 hours of real work, three risk profiles, three different conversations about what happens when the estimate moves.

None of it works if the build itself isn’t priced with a margin under it to begin with. That’s the piece a white-label partner solves: when the underlying build is quoted to you as a fixed price, you can offer your client any of the three models and still know your own margin is protected. Got a project to structure right now? Send us the scope and we’ll come back with a fixed quote, usually within two business hours.

With a fixed partner quote in hand, you can check your markup and margin in our free markup and margin calculator.

On a fixed fee the change conversation is where the margin goes, so read how to handle client change requests before the next one lands.

Frequently asked questions

Can I switch a client from hourly to fixed price mid-project?

Yes, once the remaining scope is well understood. Switch too early, while unknowns remain, and you’re back to guessing on a number. The usual pattern is discovery or a rescue billed hourly, then the rest of the build quoted fixed once you know exactly what’s left.

Is a retainer the same as a maintenance plan?

They overlap but aren’t identical. A maintenance plan is narrower: scheduled updates, backups, monitoring. A retainer is broader, a pool of hours a client can spend on design and content requests as they come up, not just preventive upkeep.

What’s the biggest mistake agencies make with fixed price?

Quoting a flat number with no written change process behind it. Every “quick addition” gets absorbed for free, and a job that was profitable on the estimate ends up breaking even or losing money by delivery.

How many hours should a web design retainer include?

There’s no universal number; it depends on how much ongoing work the client generates, which you won’t know precisely until a few months in. Start with an honest estimate, track real usage, and adjust at the first renewal instead of guessing forever.

Should I ever mix models on the same client?

It’s common and often the right call. A client can have a fixed-price build behind them and move to a retainer for ongoing care, or run hourly for a rescue and switch to fixed once the scope is clear. The models aren’t exclusive; they fit different phases of the same relationship.

JS
Written by John Schatz

John Schatz is the founder of WP SuperHelp, a white-label WordPress development and support partner for agencies. For over 15 years he and his team have built, fixed, and maintained WordPress sites under agency brands across 1,500+ client projects.

Let's talk about your next WordPress project

Get a free consultation and a fixed quote, usually within one business day, delivered under your agency's brand.

Get free consultation

Leave the daily management of your website in the hands of the WordPress specialists at WP SuperHelp.

Navigation