TL;DR: Most web design retainers are priced by feel and lose money silently. The formula is: true hourly cost × monthly hours, divided by (1 minus your target margin). Target a 55 to 65% gross margin. Anchor the price to outcomes and capacity, not hours. Below: the math, the three worst pricing mistakes, and three worked examples at $2,500, $5,000, and $10,000 per month.
I priced my first retainer at $1,200 a month for "ongoing website support." No defined hours. No deliverable rhythm. No margin math. The client used me for 14 hours in month one, 22 hours in month two, and 31 hours in month three. By month three I was working below minimum wage on their account and resentment was building. I cancelled the retainer in month four. The client wasn't the problem. My pricing was.
I'm Sammie Oku, founder of Eximius Studio, a web design and dev agency in Tyler, TX. The math below is what I use now. The retainer that replaced that 2023 disaster runs at a 47% margin and has renewed twice. This post is how to price a web design retainer so the math actually works.
If you haven't read the pillar yet, how to run a web design agency covers the seven systems this fits inside. Retainer pricing is System 5. This is the full playbook for the pricing piece.
Why retainers fail: pricing below your cost floor
A retainer fails for one of two reasons. Either the client churns because they don't see value, or you cancel because you're losing money. The first is a reporting problem (monthly retainer report template handles that). The second is a pricing problem, and it's the one most agency owners never fix because they never run the math.
Industry benchmarks worth memorizing. The average agency retainer is under $5,000 per month, and roughly 50% of all retainers are under $10,000 (Promethean Research). The median agency has held a 15% net margin since 2015. Specialized agencies hit 25 to 40%. Generalists struggle to break 20%. The single biggest reason for the gap is retainer underpricing.
Three pricing mistakes that cause it:
Mistake 1: Pricing hours at your "freelance rate." Your freelance rate was your gross hourly income as a solo. Your agency rate has to cover overhead, software, taxes, downtime, non-billable hours, and a reasonable profit margin on top. A $75 freelance rate becomes a $180+ agency rate when you do the full math.
Mistake 2: Selling hours instead of outcomes and capacity. When you sell hours, clients optimize for getting every minute of work out of you. When you sell outcomes (or a fixed deliverable rhythm), they optimize for results. Hours-based retainers also expose you to "I have 18 hours left this month, can we add..." which is a scope-creep magnet.
Mistake 3: No use-it-or-lose-it clause. If unused hours roll over indefinitely, you're carrying a liability. By month six the client has 40 banked hours and your margin on that month is negative.
The fix is a formula and a floor.
Step 1: Calculate your true hourly cost
Before you can price anything, you need to know what an hour of your team's time actually costs. Most agency owners use salary as a proxy. Salary is a fraction of true cost.
The full math:
| Cost component | Multiplier on salary |
|---|---|
| Base salary | 1.00× |
| Payroll taxes + benefits | 1.25 to 1.30× |
| Software + tools (per seat) | 1.32 to 1.38× |
| Overhead (office, admin, finance) | 1.45 to 1.55× |
| Non-billable hours (training, internal work, downtime) | 1.65 to 1.90× |
A $75,000 salary is roughly $95,000 fully loaded on direct costs alone. Once you spread overhead and non-billable hours across the billable hours that remain, the true hourly cost lands around $90 to $110 for a $75K designer or developer.
For solo operators, the math is similar but lighter. If you pay yourself a $90,000 owner's draw, your fully-loaded cost is roughly $120,000. Divide by ~1,400 realistic billable hours per year (assuming 70% utilization), and your true hourly cost is around $85 per hour. That's the number you cannot price below. Anything under that and you're working for free.
Run this math once. Write the number down. Update it every six months.
Step 2: Set your gross-margin target
Gross margin is what's left of revenue after direct delivery costs. For agency retainers, target 55 to 65% gross margin. That band gives you enough left after delivery to cover overhead and still take home a respectable net margin. For the broader set of metrics this sits inside, where agency margin actually leaks covers the six numbers worth tracking weekly.
The math:
Retainer price = (true hourly cost × monthly hours) ÷ (1 − margin target)
Example. If your true hourly cost is $95 and you're delivering 20 hours of work per month at a 60% gross margin target:
($95 × 20) ÷ (1 − 0.60) = $1,900 ÷ 0.40 = $4,750/month
That's your retainer price floor. Not your sticker price. Your floor. Sticker price is whatever the market will bear above that floor. The sticker rises with specialization, urgency, and outcome ownership. A generalist hours-based retainer prices near the floor. A specialized outcome-owning retainer ("we own your conversion rate") prices 1.5 to 3× the floor.
Two things to notice. First, dropping margin from 60% to 50% costs you a lot: the same 20 hours at 50% margin = $3,800/month, which is $11,400 less per year. Margin targets matter. Second, increasing capacity from 20 to 25 hours at the same margin = $5,937/month. Small capacity changes move the price more than people expect.
Step 3: Pick the right retainer model
There are four common models. Three of them work for web design agencies. The fourth (hours-based with rollover) is a trap.
Model A: Hours-based, use-it-or-lose-it. Client pre-purchases a set number of hours per month. Unused hours don't roll over. Simple, predictable, works for clients who want flexibility. Use a written cap on overage (e.g., "additional hours billed at $150/hour after the included 20"). Best for ongoing maintenance and small-feature work.
Model B: Deliverables-based. Fixed monthly fee for a defined rhythm of deliverables. Example: "One landing page, four blog post designs, monthly performance review, $4,200/month." Predictable for both sides. Margin discipline is on you because the client doesn't see hours. Best for content-heavy or campaign-heavy retainers.
Model C: Outcome-based / hybrid. Base monthly fee for strategy and account management, plus performance-tied bonuses or scope-based add-ons. Example: "$3,500 base + $500 per qualified lead over 25/month." Highest margin potential, hardest to scope. Best for mature agencies with proven outcome data.
Model D (the trap): Hours-based with unlimited rollover. Hours bank forever. Client uses 8 hours in month one, 8 in month two, 8 in month three, then dumps 80 hours of requests in month four. You eat the overage. Don't run this model.
For most web design agencies starting out, Model A or B is the right answer. Hours for flexibility, deliverables for predictability. Pick one per client based on what they actually need. Most of the signal for which model fits should come out of the discovery questionnaire you ran before the proposal; clients who said they want flexibility lean toward Model A, clients who said they want predictability lean toward Model B. The retainer agreement clauses most agencies skip define which one you're running so the client can't drift to the other mid-contract.
Example A: Solo studio, $2,500/month retainer
The client. Local services business in Tyler, owner-run, has a WordPress site they want maintained and slowly improved. Wants someone to "handle the website" so they don't have to think about it.
The numbers.
- Hours delivered per month: 12
- True hourly cost (solo, owner-operator): $85
- Target gross margin: 65%
- Floor calculation: ($85 × 12) ÷ (1 − 0.65) = $1,020 ÷ 0.35 = $2,914
Sticker price: $2,500/month with a tighter scope.
Why the sticker landed below the floor: the scope shrank. Instead of 12 flexible hours, the retainer is structured as a deliverable bundle: monthly plugin and security updates, two content updates per month, one design improvement per quarter, monthly uptime and performance report. Realistic delivery time: 9 hours. At 9 hours and 65% margin, floor is $2,186. Sticker at $2,500 = 69% gross margin. Healthy.
What's in the contract.
- Defined monthly deliverables, listed by name
- 9 hours of work capacity, additional hours at $125/hour
- Use-it-or-lose-it on the hours
- Monthly report by the 5th of the following month
- 30-day cancellation notice
- Annual rate review
Margin reality after 6 months: 64% gross, 31% net. Client renewed. Total time per month from me: 8 to 10 hours.
Example B: Small agency, $5,000/month retainer
The client. A B2B SaaS company. Mid-sized. Wants ongoing design and dev support on their marketing site plus monthly landing pages for ad campaigns. Has internal copywriters.
The numbers.
- Hours delivered per month: 25
- Team: solo founder + one part-time contractor designer
- Blended true hourly cost: $100
- Target gross margin: 60%
- Floor: ($100 × 25) ÷ (1 − 0.60) = $2,500 ÷ 0.40 = $6,250
Sticker price: $5,000. Below floor.
This is where a lot of agency owners get stuck. The client wants $5,000. The math says $6,250. You either walk or compromise the scope.
What I do. Compromise the scope, not the price. Drop deliverable count: 20 hours instead of 25. New floor: ($100 × 20) ÷ (1 − 0.60) = $5,000. Lands exactly at sticker. Margin holds at 60%.
What's in the contract.
- 20 hours of design and dev capacity per month
- Two landing page builds per month (avg 6 hours each = 12 hours of the 20)
- Up to 8 hours of marketing-site maintenance and improvement
- Use-it-or-lose-it
- Monthly performance report
- 60-day cancellation notice (longer notice = more security for both sides on a bigger retainer)
Margin reality after 6 months: 58% gross. Client renewed for year two and added a quarterly strategy call for $750/quarter.
Example C: Specialized agency, $10,000/month retainer
The client. A funded e-commerce brand. Wants comprehensive CRO (conversion rate optimization), ongoing landing page work, monthly design system maintenance, and weekly performance reviews. Outcomes matter to them more than hours.
The numbers.
- Hours delivered per month: 35 (blended team: PM, designer, developer)
- Blended true hourly cost: $115
- Target gross margin: 65% (higher because specialization commands premium)
- Floor: ($115 × 35) ÷ (1 − 0.65) = $4,025 ÷ 0.35 = $11,500
Sticker price: $10,000 base + $500/quarter performance bonus tied to conversion lift.
Below floor at base, but the structure changes the math. The base covers 30 hours instead of 35. New floor: ($115 × 30) ÷ (1 − 0.65) = $9,857. Sticker $10,000 base lands at 66% gross margin on the base.
The performance bonus is upside. Last quarter: client's checkout conversion went from 2.1% to 2.8%. Bonus paid: $2,000. That's almost pure margin because the work to earn it was already inside the base retainer hours.
What's in the contract.
- 30 hours of capacity per month, blended team
- Defined deliverable rhythm: 2 landing pages, 1 CRO experiment design, 1 design system update, weekly performance review
- Performance bonus structure with capped upside ($3K/quarter max)
- Use-it-or-lose-it on hours
- 60-day cancellation
- Annual rate review with built-in 5% increase unless renegotiated
Margin reality after a year: 64% gross, 38% net. Client renewed and expanded scope.
How to handle "loyalty discount" requests
A client at month 8 emails: "We've been with you for a while now, can we get a loyalty discount on the retainer?" This is one of the most consistent margin killers in agency history. The fix is to redirect, not refuse.
The script:
"I appreciate you bringing this up. Rather than a discount on the current scope, here are two ways we can give you more value: I can shift some of your monthly hours toward a quarterly strategy session, which gives you forward planning value at no additional cost. Or, if budget is the priority, we can reduce the monthly hours from [X] to [Y] and adjust the retainer to $[lower number] starting next month. Both keep the margin healthy for me and the value high for you. Which works better?"
You're offering two paths: more value at the same price, or less work for less money. Both protect your hourly rate. Neither sets the precedent that "loyalty" means discount. Loyalty means renewal at full rate, plus the annual increase you built into the contract.
Building this from scratch is slow. The retainer agreement template, the loyalty-discount script, the use-it-or-lose-it clauses, and the monthly report that backs them up are inside Agency Operations OS. Deploys in an afternoon, $79. Link at the end.
Out-of-scope policy: the language that protects margin
Retainers don't fail from the priced work. They fail from the unpriced work. Every retainer needs explicit out-of-scope language in the contract. Mine reads:
"This retainer covers [defined deliverables / X hours of capacity] per calendar month. Work requested outside this scope (including but not limited to: new feature builds over 4 hours, third-party integrations not currently in place, copywriting, photography, video production, and any work for entities other than [Client Name]) is handled as a Change Order at the rates in Schedule A.
Unused hours/capacity do not roll over to subsequent months unless explicitly agreed in writing.
Either party may terminate this retainer with 30 days' written notice."
Three things that clause does. First, it defines what's in. Second, it gives examples of what's out so the client can't claim surprise. Third, it kills the rollover question before it starts.
For the full scope-change protocol that goes with this clause, see how to stop scope creep in a web design agency.
Frequently asked questions
How much should a web design retainer cost?
Most web design retainers sit between $1,500 and $10,000 per month, with the average around $3,000 to $5,000. The actual number depends on hours delivered and your gross-margin target. Use the formula: (true hourly cost × monthly hours) ÷ (1 − margin target). For a solo operator at $85/hour cost delivering 15 hours/month at 60% margin, the floor is around $3,200. Below that, you're losing money.
What's a good profit margin on a retainer?
Target 55 to 65% gross margin on retainer revenue. Below 50% means you're underpriced or overdelivering. Above 70% usually means you're not delivering enough hours and the client will churn. Net margin (after overhead) typically lands at 25 to 35% for healthy retainers. Specialized agencies with outcome-based components can push gross margin to 65 to 75% because pricing is anchored to results, not labor.
Should retainer hours roll over to the next month?
No, with one narrow exception. Use use-it-or-lose-it as the default. Rollover hours create an unbounded liability: the client banks hours, then dumps them in month six and tanks your margin. The exception: allow up to 25% of monthly hours to roll over for one month only, with written approval, when the client had a legitimate reason for low usage (e.g., they were waiting on copy from a third party). Anything beyond that becomes a planning conversation, not a banking arrangement.
How do you price a retainer for a small client?
Start with the math, then shrink the scope until it fits the budget. If a client has $2,500/month and your math says the work needs to be priced at $4,000, don't drop the price. Drop the deliverables. Smaller scope, same margin, same hourly economics. The mistake is keeping the scope and dropping the price, which is how solo operators end up working below their cost floor for months without realizing it.
What's the difference between a retainer and a contract?
A contract is the legal agreement. A retainer is a pricing model inside that contract. A retainer contract is the legal document that defines a recurring monthly engagement with defined scope, payment terms, and termination conditions. Project contracts cover one-time engagements with fixed deliverables. Retainer contracts cover ongoing capacity or recurring deliverables. Most agencies use both: a project contract for the initial build, a retainer contract for ongoing support after launch.
The shortcut: Agency Operations OS
Building the retainer pricing math, the agreement, the monthly report, and the use-it-or-lose-it clauses from scratch is doable in a weekend. The math is straightforward. The contract language and the consistency are where most agencies stumble.
Agency Operations OS is the Notion template I use to run Eximius Studio. It includes:
- 7 core databases: Leads, Deals, Projects, Retainers, Change Orders, Financials, and AR Aging.
- 5 dashboards including a Retainer Health view that shows hours used, margin per retainer, and renewal date.
- 15 SOPs including the retainer pricing formula, monthly reporting cadence, and renewal review process from this post.
- 5 bonus docs: Master Services Agreement, Retainer Agreement (with use-it-or-lose-it and out-of-scope language built in), Project Proposal template, Discovery Call script, and the 47-item Pre-Launch QA Checklist.
One template, deploys in an afternoon, $79.
The formula above is how to price a web design retainer so it doesn't quietly lose money for six months before you notice. Run the math, set the floor, pick the model, write the clause. Your next retainer should price itself.
For the bigger picture, the pillar guide on running a web design agency shows where retainer pricing fits into the full operating model, the monthly retainer report template covers what to send the client every month so they actually feel the value they're paying for, and the best Notion templates for web design agencies compares Agency Operations OS against the other options on the market.
