How to price website maintenance retainers, with a worked example
Most freelancers price a maintenance plan by looking at what others charge. That tells you what the market tolerates, not whether your business makes money at that price. Start from your own costs, turn them into an hourly rate, and only then check the market.
The short answer
- Hourly rate = (fixed monthly costs × (1 + target margin)) ÷ billable hours per month.
- Plan price = hours in the plan × hourly rate. Sell plans as a monthly bank of hours, plus hosting at cost + 20–30% if you host.
- Overage = 1.25x the hourly rate by default, or 1.5x if your capacity is tight.
- Rollover: unused hours last up to 3 months, oldest first, then expire.
Example: $14,000 costs, 30% margin and about 190 billable hours give $96/hour, a $120 overage rate, and plans at $384, $960 and $1,920 a month.
The numbers on this page are hypothetical, chosen to make the math easy to follow. Put your own into the free retainer pricing calculator as you read.
Step 1: build your hourly rate from the bottom up
Three inputs, and each one is easy to get wrong.
Fixed monthly costs are everything you pay whether or not you have work: rent or coworking, software, servers you carry, equipment, accounting, insurance, and team pay, including your own salary. Leave your own pay out and you're pricing a hobby.
Target margin sits on top of costs. It builds a cushion, pays for investment and gets you through a slow quarter. Twenty to thirty percent is a reasonable starting range for a small studio.
Billable hours is the honest number, not 160 hours per person. Subtract admin, sales, meetings, learning and context switching. For most small studios, 50–65% of working hours are realistically billable.
Worked example: a two-person studio
| Item | Per month |
|---|---|
| Salaries (owner + 1 developer), incl. taxes | $11,500 |
| Coworking space | $700 |
| Software and subscriptions | $450 |
| Servers and tools not billed to clients | $250 |
| Accounting, insurance, bank fees | $500 |
| Equipment, internet, misc. | $600 |
| Total | $14,000 |
- Costs plus a 30% margin: $14,000 × 1.30 = $18,200 a month.
- Billable hours: 2 people × 160 working hours × 59.4% billable = about 190 hours a month.
- Hourly rate: $18,200 ÷ 190 ≈ $95.75, rounded to $96/hour.
Now check the market. If similar studios near you charge $85–150 an hour, $96 is in range. If your cost-based rate comes out above what your market pays, don't just drop it and lose money on every hour. Cut costs, raise utilization, or move to clients who pay more. Selling to marketing teams, who compare your fee with agency retainers and ad spend instead of a $49 plugin-update service, is often that move.
Step 2: package the hours into plans
A retainer is a bank of hours the client buys every month. In practice, plans fall into two shapes: about 3–4 hours for a stable site with few changes, and up to about 20 hours for a marketing team that ships a landing page, an integration or a test most weeks. Above 20 hours, the work is usually better run as a project.
If you want named tiers for a sales page, three are enough:
| Tier | Hours/month | Typical client | Price/month | Share of capacity |
|---|---|---|---|---|
| Care | 4 | Stable site, few campaigns | $384 | 2.1% |
| Growth | 10 | A campaign or two a month | $960 | 5.3% |
| Partner | 20 | Marketing team shipping weekly | $1,920 | 10.5% |
“Share of capacity” is the tier's hours divided by your 190 billable hours. It tells you how many clients of each size you can carry: nine Partner clients would take 180 hours, nearly everything you have, which leaves no room for overage, new sales or a sick week.
Keep the rules identical across tiers: the same rollover, the same overage multiplier, the same report, the same line between developer work and content work the client's team does in the CMS. Vary only the hours, and maybe one feature. After-hours response for critical issues is a good candidate: sell it as an add-on or include it only in the top tier, so the clients who need it also buy the hours that justify it.
Hosting: cost-plus, on its own line
If you host the site, bill infrastructure at your actual cost plus 20–30%. The markup covers payment fees, taxes on that revenue and the responsibility of keeping it running. A server, CDN and backup storage that cost you $48 a month becomes $60 at a 25% markup. Keep it on a separate invoice line so the client can see they pay for a server, not for your time. The hours you spend managing that server still come out of the bank.
Step 3: set the overage rate
Hours used beyond the available balance (this month's bank plus any rollover) go on the next invoice at a higher rate. The common default is 1.25x the package rate: $96 × 1.25 = $120/hour. The alternative is 1.5x: $144/hour.
| 1.25x (default) | 1.5x | |
|---|---|---|
| Example rate | $120/h | $144/h |
| Use it when | Overage is occasional and you have room in your schedule | Capacity is tight, or overage regularly pushes other clients' work back |
| Effect | A nudge to size the plan correctly | A firmer push to move up a plan |
Why charge a premium at all? The package rate is a discount for commitment, and overage hours come without one. Overage work usually displaces something else on your schedule. And it makes moving up a plan the cheaper option for clients who keep going over. Don't go much past 1.5x: a punishing rate makes clients ration requests and then send them all at once, usually the week before a campaign.
Two habits make overage painless: send an estimate and get approval by email before any request that would push the client over, and show the overage in the monthly report with the approval date. In the report example, a client on a 10-hour plan used 14.5 hours in a busy month: 2.25 hours over the available balance, at $120, is $270. Three months of that pattern is the moment to suggest a 12-hour plan ($1,152 a month) instead.
Step 4: decide on rollover, and track it as money you owe
Rollover kills the “use it or lose it” complaint and makes quiet months feel fair. A good default: unused hours roll over for up to 3 months (the month they were added plus the two after), the oldest hours are used first, and anything older expires.
But be clear about what a rolled-over hour is: work the client has already paid for and you haven't delivered. An accountant would call it deferred revenue. The cash is in your account; the hours are still owed. Ten clients each rolling over 8 hours is 80 hours, $7,680 of work at $96 an hour, and if several of them launch campaigns in the same month you deliver those hours on top of the new month's bank with no new revenue for them.
Here is a 10-hour plan over four months:
| Month | Added | Used | Balance after | Note |
|---|---|---|---|---|
| Jan | 10 | 6 | 4 (all from Jan) | |
| Feb | 10 | 5 | 9 (all from Feb) | Jan's 4 used first, then 1 from Feb |
| Mar | 10 | 2 | 17 (7 Feb + 10 Mar) | |
| Apr | 10 | 3 | 20 (10 Mar + 10 Apr) | 3 used from Feb; Feb's other 4 expire |
At the end of March you owe this client 17 hours, $1,632 of work. The expiry is what keeps that number bounded: no client can hold more than about three months of hours, so you always know the most anyone can draw at once. Add up every client's balance once a month and compare it with next month's capacity. That total is the number to watch.
Write the rule into your maintenance contract in one sentence, and repeat it in every report next to the hours that expire soon.
Pricing mistakes to avoid
- Copying a competitor's tier prices. Their costs and utilization aren't yours.
- Assuming 160 billable hours per person. At 100% utilization, the example studio's rate would drop to about $57 and the business would lose money on every client.
- Mixing hosting into the hours. When the server cost rises, you either absorb it or reopen the whole price.
- Unlimited small edits. Nobody agrees on what small means. Sell hours.
- Rollover with no expiry. The debt only grows, and one day a client asks for 60 banked hours in a single month.
- No yearly adjustment. Tie the rate to CPI or a fixed 3–5% from day one.
Free tool
Run your own numbers
The retainer pricing calculator does this math in your browser: hourly rate, overage rate and tier prices from your costs, margin and capacity.
Open the calculatorThe Retainer Kit
The spreadsheet, plus everything that uses it
The pricing spreadsheet with infrastructure markup, an after-hours add-on and a 12-month rollover tracker that shows the dollar value of hours you owe. Plus the guide, proposal, agreement and monthly report on the same rules.
Get the kit — $29Launch price (regular $39). 14-day refund. Or start with the free report template.