How to Price a Maintenance Retainer for an AI Build

Duncan RogoffDuncan Rogoff September 9, 2026 9 min read
A calm bright office desk in morning light with a signed paper contract, a fountain pen resting on it, a small monthly desk calendar, a closed silver laptop and a cup of tea on a saucer, soft minimal editorial mood
Original image, Claude Code Club

How to Price a Maintenance Retainer

Price a maintenance retainer as a fixed monthly fee attached to a defined envelope of work, and anchor the number to the outcome the client is buying rather than to your hours. The outcome is simple to name: a system that keeps working, changes when the business needs it to, and never becomes the client's problem to figure out. When you price against that, the retainer is cheap. When you price against hours, it looks like a cost to trim the moment things are quiet.

The envelope is what makes the number defensible. A retainer is not open-ended support - that is a trap that turns every message from the client into unpaid work. It is a monthly fee that buys a specific, bounded set of things: a block of change requests, a response-time promise, oversight of hosting and dependencies, and a standing relationship so the client is never starting from a cold stranger when something breaks. Define that block, and the price stops being a guess.

Start From the Outcome, Not Your Hours

The fastest way to underprice a retainer is to estimate how many hours of maintenance the system will need and multiply by your rate. It feels rigorous. It is exactly backwards, because with AI-assisted work your hours keep shrinking as you get better, which means hourly maintenance pricing sends your invoice in the wrong direction over time. The better the system runs, the less you earn - that is not a business, that is a slow fade.

Price the outcome instead. Ask what a day of this system being down would cost the client - in lost sales, in staff time, in a stalled process - and set the monthly fee as a small fraction of that. A retainer that costs a fraction of one bad day is an easy yes and stays an easy yes, because the client is not comparing it to your effort. They are comparing it to the risk of the thing they depend on quietly failing with no one on call.

What Goes Inside the Retainer, and What Does Not

A retainer that will not bleed margin has a clear inside and a clear outside. The inside is the bounded envelope of ongoing care. The outside is everything that is really a new project wearing a small-ask costume. Write both down. The line between them is where your margin lives or dies.

A clean envelope: inside the retainer vs a separate quote

Inside the monthly feeOutside it - a separate quote
A defined block of small change requests per monthA new feature or a whole new section of the system
Bug fixes and keeping the system runningA redesign or a rebuild of an existing part
Dependency and hosting oversight, security updatesIntegrating a new third-party tool from scratch
A response-time promise when something breaksWork that clearly exceeds the monthly change block

The exclusions list is the load-bearing part, and most people write it too gently or skip it. Be specific. Most scope creep on a retainer happens because the client genuinely believed a new feature was covered and you genuinely did not, so nobody is being unreasonable - the document just failed to draw the line. Put a number on work beyond the envelope, so a bigger ask flips from an awkward favor into a defined add-on the client already expects to pay for.

A Simple Way to Size the Number

You do not need a formula, you need a floor and a ceiling that both come from real things. The floor is your genuine cost to be available and honour the envelope - the standing responsibility, not a guess at hours. The ceiling is a fraction of what the system being broken would cost the client. Your number sits between them, closer to the ceiling the more the business depends on the system.

  1. Name the outcome in one sentence: what the client actually gets is a working system that keeps working and changes when they need it to.
  2. Estimate the cost of a bad day: what does it cost this client, in money and time, when the system is down or wrong for a day. That sets your ceiling.
  3. Define the envelope: how many small changes a month, what response time, what hosting and security oversight. That is what the fee buys.
  4. Set the monthly fee as a small fraction of the bad-day cost, above your floor to be available. Then write the exclusions list so everything outside the envelope is a separate, numbered add-on.

Sanity check it against a simple test: if the client cancelled the retainer, would the risk they are now carrying feel bigger than the fee they just saved? If yes, the number is right and the retainer sells itself. If the fee feels large next to the risk, either the system does not need a retainer yet or you have priced the envelope too wide for what this client actually uses.

How to Present It So the Client Says Yes

Lead with the outcome, keep the mechanism in the background. The client is not buying change requests and dependency updates - those are how you deliver it. They are buying the fact that the thing their business now runs on will not silently break with no one responsible for it. Every line of the retainer offer should point back to that, or it belongs in an appendix.

Offer it at the moment of maximum trust, which is the handoff. A client who has just been given a working, documented system is the easiest person in the world to offer a retainer to, because they can already see exactly where they will want help next. Present one clear monthly number, the envelope it covers, the exclusions, and the response-time promise, on a single page. One page that a client can read the value of in ten seconds closes better than a long document that makes them feel they are signing something heavy.

Free Claude Code drops, straight to your inbox

Short, practical drops on skills, MCP, agents, prompts, and more. No spam, unsubscribe anytime.

Frequently asked questions

How do I price a maintenance retainer?

Set a fixed monthly fee tied to a defined envelope of work - a block of change requests, a response-time promise, and hosting oversight - and anchor the number to the outcome the client is buying rather than your hours. Size it as a small fraction of what a day of the system being broken would cost the client, above your floor to be available.

How much should a maintenance retainer cost?

There is no flat rule, because it depends on the size of the system and how much the business depends on it. Price it as a small fraction of what a bad day - the system down or wrong - would cost the client, above your genuine cost to be available. If the risk of cancelling feels bigger than the fee saved, the number is right.

Should a maintenance retainer be priced by the hour?

No. Hourly maintenance pricing sends your invoice down as you get faster, which is the wrong direction for a business. Price the outcome - a working system that keeps working - as a fixed monthly fee, so your improving speed stays in your column instead of shrinking what you earn.

What should a maintenance retainer include and exclude?

Include a defined block of small changes, bug fixes, keeping the system running, and hosting and security oversight, plus a response-time promise. Exclude new features, redesigns, rebuilds, and new integrations - those get a separate quote. The specific exclusions list is what stops quick fixes from becoming unpaid work.

When is the best time to offer a maintenance retainer?

At the handoff, right after you deliver a working, documented system. That is the moment of maximum trust, when the client can already see where they will want ongoing help, so a bounded monthly retainer reads as sensible protection rather than an upsell.

Last reviewed by Duncan Rogoff on September 9, 2026

Duncan Rogoff

Written by

Duncan Rogoff

Apple · PlayStation · Charles Schwab

Keep reading

AgencyFreelancing

How to Send a Monthly Client Report That Keeps the Retainer

An AI agency monthly report is the one document that decides whether a client renews or quietly drops off. Its job is not to prove you were busy - it is to show the client the outcome they are paying for, in language they care about. Here is the exact structure I use, what to include, what to cut, and how to send it so the retainer renews itself.

Duncan Rogoff 9 min
Read article
AgencyMonetization

What to Charge for an AI Audit: A Simple Pricing Framework

An AI audit is one of the easiest first offers to sell, but most people underprice it into the ground. Here is a straight framework for what to charge, why a flat fee beats an hourly rate, and how to turn the audit into the retainer that actually pays.

Duncan Rogoff 8 min
Read article

Ready to build it yourself?

Join Claude Code Club, the #1 community for learning claude code, for $9/month.

← Back to the blog