Skip to content

Contracts · 6 min read

What an AMC should cover, and the clauses to refuse

AAKZEN TECHNOLOGIES ·

Software is bought once and maintained for years, so over a five-year life the maintenance contract is often the larger number. It usually gets a fraction of the scrutiny the delivery quote gets, partly because it is signed when everyone is tired and the system is finally working.

Here is what it should say.

The distinction everything else depends on

**A bug is the software not doing what was agreed. A change request is the agreement changing.**

Bugs are fixed at no cost, within the support window. Changes are quoted. That is standard and reasonable.

The disputes happen in the gap between them, so the contract should define the gap rather than leaving it to good will. Two cases worth naming explicitly:

  • **A rule changed outside your control.** A tax rate moves, a board changes its result format, a payment gateway alters its API. This is neither party's fault. Decide in advance whether it is covered, capped, or billed — the worst outcome is discovering there was no agreement during the week it becomes urgent.
  • **It worked before and now it does not.** If nothing in the requirement changed, that is a bug, even if the cause was a server update. Say so in the contract.

Response times, stated properly

"We will respond promptly" means nothing. A usable clause separates severity:

  • **System unavailable, or data at risk** — response within a stated number of working hours, work continues until resolved
  • **A core function broken with no workaround** — response within one working day
  • **A defect with a workaround, or something cosmetic** — response within a few working days, fix in the next scheduled release

Two details matter more than the numbers. **Response is not resolution** — a clause promising a four-hour response is promising a reply, and should say what happens next. And **working hours must be defined**, including whether that covers admission week, results day, or year-end, which is precisely when institutional software fails and precisely when a standard support window is closed.

What should be included and often is not

  • **Security patches** for the framework, libraries and server. This is the single most important line and the most frequently omitted. An unmaintained system becomes a liability on a schedule nobody controls.
  • **Version upgrades** of the underlying platform when it reaches end of life.
  • **Backup verification.** Not "backups are taken" — a periodic test restore. An untested backup is not a backup.
  • **Uptime monitoring**, with the vendor finding out before you do.
  • **A named contact and an escalation path**, so a problem does not depend on one person's phone.
  • **A fixed number of support hours** for small changes, so trivial requests do not each become a quotation.

Clauses worth pushing back on

**Automatic renewal with an uncapped increase.** Renewal is fine. Uncapped is not. Tie the increase to something, or state it.

**Support conditional on hosting with the vendor.** These are two separate services and bundling them is a lock-in mechanism, not a technical requirement.

**Ownership of anything built during the AMC.** If you pay for a change, you own it on the same terms as the original system. Some contracts quietly carve this out.

**A cost to leave.** Getting your own data and code out at the end should be routine work, not a penalty. If the exit cost is unusual, that is the most informative number in the document.

**Any reference to "best efforts" without a definition.** It is not an obligation.

What it should cost

There is no single correct figure, but a useful frame: annual maintenance is commonly a percentage of the delivery cost, and something in the region of 15 to 20 percent is a normal shape for an actively maintained system.

Be suspicious in both directions. Very cheap usually means nothing is actually included and every real request becomes a quotation. Very expensive should come with a specific list of what is being done for it — hours, patching cadence, monitoring — rather than a vague promise of availability.

The question that clarifies most negotiations: what, specifically, will you do for this money in a month where nothing breaks?

A good answer describes patching, monitoring, backup verification and the support hours. A vague answer means you are buying insurance, and you should price it as insurance.

Before you sign

Get the AMC figure **before** the delivery contract is signed, not after. Once the system is built and running, your negotiating position is considerably worse than it looks, and both sides know it.

Read next

Related reading.

Contracts · 5 min read

What "you own the source code" should mean in your contract

Almost every vendor says it. Very few contracts define it, and the gap between the sentence and the clause is where organisations get stuck.

Read the article
Cloud · 5 min read

Offline-first apps: building for the network your staff actually have

An app demonstrated on office wifi tells you nothing. The real test is a three-year-old phone at the edge of a signal, and that has to be designed for, not patched in.

Read the article
Choosing · 5 min read

How to scope a software project when you are not technical

You do not need to know how it will be built. You need to describe the work accurately, and that is a skill you already have.

Read the article

Weighing this decision for your organisation?

Describe your situation and we will give you a straight opinion on it — including when the answer is that you do not need us.

Talk to us