Buying Technology

    What a maintenance retainer should and should not cover

    A retainer without limits becomes unlimited development, and a retainer that ignores a bad audit becomes a surprise invoice. What to put in, what to keep out, and what to price after the audit.

    GC
    GarunaCDX Editorial
    Editorial team
    Oct 26, 2026 7 min read
    Key takeaways
    • Routine upkeep is in. New features are out, handled as change requests.
    • Put limits in writing: what is covered, what is capped, what is excluded.
    • If an audit finds serious problems, remediation comes before routine upkeep.
    • Price the retainer after the audit, not before.

    Quick answer

    A maintenance retainer should cover routine upkeep inside written limits: monitoring, patches, small fixes, deploys and a monthly note. New features should be change requests. If an audit finds serious problems, fixing them is a separate phase, written into the scope before routine upkeep begins.

    The short answer

    A good maintenance retainer says what it covers, what it caps and what it refuses. The refusals matter most, because that is where disputes start. And it is written after the audit, not before.

    Our view, stated plainly: an unlimited retainer is a bad deal for both sides. The buyer thinks they bought a development team on call. The vendor thinks they sold a few hours of upkeep. Both are right about what they meant and wrong about what the other heard.

    Why buyers ask this

    You have software that works, and you want someone to keep it working. The risk is a retainer that sounds cheap and turns into unlimited development, or one that hides a large repair bill inside the word “maintenance”. Operations leads feel this first, because they are the ones filing the requests and waiting.

    What maintenance is, and what it isn’t

    MaintenanceDevelopment
    PurposeKeep what exists running safelyChange or add behaviour
    ExamplesPatches, dependency updates, monitoring, small bug fixes, routine deploysA new feature, a redesign, a new integration
    Pricing logicA recurring scope with a capAn estimate per piece of work
    Who decidesThe vendor, within the scopeThe buyer, by approving a change request

    If a request changes what the system does, it is development. If it keeps the system doing what it does, it is maintenance. When you can’t tell, treat it as a change request and write the estimate down.

    What belongs in

    • Monitoring and incident response. How you find out something is broken, who is told, and how fast a response is promised. Write the response time down as a target, not a guarantee, unless you are paying for a guarantee.
    • Security patches and dependency updates. Security patches first. Routine upgrades in small batches, with a way to verify each.
    • Small bug fixes up to an agreed size.
    • Routine deploys and a documented rollback, so a release is a repeatable step.
    • Access reviews. Who has production access, and do they still need it?
    • A monthly report. What was done, what was found, what is next.
    • A quarterly health check. Re-score the system against a fixed list so you can see whether it is getting better or worse.

    What stays out

    • New features. Each is a change request with an estimate and a date.
    • A redesign. Its own project, its own plan.
    • Unlimited fixes. Cap the work, and write what happens when the cap is reached.
    • Work on systems nobody has audited. See below.
    • Third-party costs. Hosting, messaging and payment fees belong to the business, not the retainer.

    Remediation comes before upkeep

    We scoped a maintenance retainer, with explicit limits, for a marketplace client after we audited their system. The audit’s conclusion was that maintenance there had to include a remediation phase before it could become routine upkeep, and the scope says so in writing.

    The risk of pricing before an audit is that one of two things happens. Either the vendor absorbs an unplanned repair, which ends in cut corners, or the client gets a surprise invoice, which ends in distrust. Neither is a good start.

    Price the retainer after the audit if you can. If you can’t audit first, write the remediation phase in as a separate, scoped line, and agree that routine upkeep begins when it ends.

    Match the process to the risk

    A retainer works best when it says how much care each kind of change gets. Ours sorts changes into four classes:

    ClassTypical changeCare it needs
    LowCopy, a small styling fixSelf-review
    MediumA change to an existing endpoint, an authentication screen, a new integrationPeer and security review
    HighPayments, authentication, authorisation, database changes, production configPeer, architecture and security review, rollback plan, explicit approval
    CriticalProduction credentials, payment settlement, data migrationWritten proposal, named approval, a tested rollback, off-peak window

    When in doubt, classify up. Writing the classes into the retainer means the client knows why a payment change takes longer than a copy fix, and doesn’t read the delay as the vendor dragging their feet.

    A rhythm you can hold the vendor to

    • Weekly: triage new technical debt, review incidents and confirm each action has an owner.
    • Monthly: review the debt register and who has production access, and send the report.
    • Quarterly: re-score the health check, review past decisions, run a dependency upgrade pass and repeat the security review.

    Boring is the point. A retainer that produces a regular, dated paper trail is worth more than one that promises heroics.

    Pricing models, and which we’d choose

    ModelWorks whenWatch out for
    A fixed monthly scopeThe system is stable and the work is predictableThe cap. Write it down
    An hours bankDemand varies month to monthUnused hours expiring, and what counts as an hour
    On-call onlyThe system rarely needs workSlow response if the vendor has moved on
    Remediation phase, then fixed scopeYou have just had an auditAgreeing what “done” means for the first phase

    We would pick the last one after any audit that found serious problems, and a fixed scope otherwise. We don’t publish fees from client work.

    Write the limits down

    ItemWrite down
    Covered workThe list, in plain words
    CapHours or kinds of work, and what happens beyond it
    ExcludedNew features, redesign, remediation outside the agreed phase
    Response targetsFor incidents, by severity
    Change requestsWho approves, how they are estimated
    AccessWho holds production access and how it’s reviewed
    ReportingWhat you get each month and each quarter
    HandoverWhat you get if the engagement ends
    OwnershipWho owns the code, the data and the accounts

    Red flags in a retainer proposal

    • No exclusions, or “and any other issues that arise”.
    • A price before anyone has looked at the system.
    • No mention of what happens past the cap.
    • No report, no cadence, no record of what was done.
    • The vendor holds the only copy of the credentials.
    • No exit clause or handover.
    What this doesn't prove, and when you don't need it

    We scoped this retainer; we don’t claim it has run for a long time or produced a measured result. We never publish fees or terms from client work. And if your software is a small, stable tool that changes once a year, an on-call arrangement may be all you need.

    Scoping a retainer?
    Send us what you have. We'll mark what should be in, out and capped.
    Book a free scoping call

    Next: taking over software another vendor built and the tech handover checklist.

    The marketplace facts come from our own audit, scope and operating-procedure documents, tracked in our claim ledger. The client is under an NDA, so no client, fee or term appears. The checklist, risk classes, cadence and pricing views are our own practice and proof grade 4, not an industry standard.

    Your verdict
    Was this article useful?
    GC
    Written by
    GarunaCDX Editorial
    Editorial team

    Engineers, product and growth folks at GarunaCDX writing about the systems we build for clients.

    View all articles
    Share
    Planning something similar?

    Let's talk about your build.

    Tell us what you are building. A founding engineer replies within one working day with how we would approach it.

    FAQ

    Frequently asked questions

    Maintenance keeps what exists running: monitoring, patches, small fixes. Development changes or adds behaviour. Treat the second as a change request with its own estimate.

    Yes, in writing: a cap on hours or on the kinds of work, and a rule for what happens when it is exceeded. Without a cap, maintenance quietly becomes development.

    That is why we price after the audit. If it happens anyway, treat the fixes as a separate, scoped phase and agree it before routine upkeep continues.

    A fixed scope suits stable, predictable systems. An hours bank suits uneven demand. Either way, write what counts as an hour, what expires, and what happens past the cap.

    The business. A vendor may hold access on your behalf, but the domain, hosting, payment and app-store accounts should be in your name, with an access list you review.

    The GarunaCDX build log

    Industry insights, once a month

    New case studies, healthcare, marketplace, B2B SaaS and industrial breakdowns, and the engineering notes behind what we ship. One short email a month, no fluff.

    We never share your data — see our Privacy Policy for details.