The verdict in three sentences
For a business application built for 120,000 EUR, budget 18,000 to 24,000 EUR a year for maintenance, or 15 to 20% of the build cost. A monthly retainer of 2 to 4 days suits most mid-sized companies, provided it comes with a written SLA (4-hour response, blocking fix within 2 business days) and a reversibility clause. Sign before the warranty ends, not after the first outage.
What application maintenance covers, and what it does not
Application maintenance groups three types of work. Corrective maintenance fixes defects. Adaptive maintenance follows changes in the environment: PHP or Node versions, browsers, certificates, third-party APIs that change. Evolutive maintenance adds features. The first two form the core of the contract. The third is negotiated as a pool of days or as work units.
Out of scope unless explicitly stated: hosting, level 1 user support, data entry and redesign projects. Many disputes come from a contract that does not say so.
Three contract models compared
| Criterion | Monthly retainer | Time and materials | Work units |
|---|---|---|---|
| Principle | X days reserved per month | Days billed as used | Catalogue of fixed-price tasks |
| 2026 price (Dublin) | 1,100 to 4,500 EUR per month | 550 to 750 EUR per day | 300 to 2,500 EUR per unit |
| Budget predictability | High | Low | Medium to high |
| Commitment to results | On the SLA | None, best effort | On each delivered unit |
| Unused days | Limited carry-over (often 1 month) | Not applicable | Not applicable |
| Best for | Stable app, daily use | One-off peaks, audits | Repetitive, well-described changes |
| Usual term | 12 months, renewable | Per order | 12 to 36 months |
For a 120,000 EUR application, the most common 2026 setup combines a 2 to 3 day monthly retainer for corrective and adaptive work with a bank of work units for new features.
The SLA: figures to put in writing
An SLA without penalties is only an intention. An SLA that is too strict inflates the price. Here are balanced benchmarks for a mid-sized company.
| Incident level | Definition | Response | Workaround | Fix |
|---|---|---|---|---|
| Blocking | App down or critical function stopped | 4 business hours | 1 business day | 2 business days |
| Major | Degraded function, manual workaround possible | 8 business hours | 2 business days | 5 business days |
| Minor | Annoyance without business impact | 2 business days | Not applicable | Next release |
| Change request | New feature | 5 business days to estimate | Not applicable | Per agreed schedule |
| 24/7 on-call (option) | Outside business hours | 1 h | 4 h | Per level |
| Usual penalty | Per recorded breach | 2 to 5% of monthly fee, capped at 15% |
24/7 on-call usually adds 30 to 50% to the retainer. It is only justified if the application runs at night, for example in a warehouse or a three-shift plant.
Reversibility and documentation
This is the clause people forget and regret. Require:
- permanent access to the code repository (GitLab, GitHub) under your company's name;
- up-to-date technical documentation with each release: architecture, deployment procedure, environment variables;
- a priced reversibility plan: 3 to 10 days of handover to a new supplier, at contract rates;
- a monthly report: open tickets, actual times vs SLA, days used, identified technical debt.
Mini case study
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
Siobhan, CIO of a mid-sized distribution company in Dublin, had a delivery route management app built for 120,000 EUR. The 3-month warranty is ending. History: 6 incidents a month on average, including 1 blocking incident per quarter, and one change request a month.
Pure time and materials option: about 30 days a year at 650 EUR, or 19,500 EUR, with no time commitment. Chosen option: a 2-day monthly retainer at 650 EUR (15,600 EUR a year) with SLA, plus 8 change work units at 600 EUR (4,800 EUR). Total: 20,400 EUR a year, or 17% of the build cost, with guaranteed response times.
An outage costs Siobhan about 3,000 EUR per half day in unoptimised routes. A single blocking incident handled in 4 hours instead of 2 days already covers a large part of the gap with time and materials.
FAQ
What percentage of the initial budget should go to maintenance?
As a 2026 order of magnitude, 15 to 20% of the build cost per year. A heavily integrated application (ERP, payments, third-party APIs) is closer to 20 to 25%.
Should we keep the supplier who built the app?
It is often the most efficient choice in year one, since they know the code. An independent audit of 3 to 5 days (2,000 to 3,500 EUR) lets you check quality before signing.
What happens to unused retainer days?
Common practice allows carry-over to the following month, rarely beyond. Negotiate the option to convert them into feature work.
What commitment length should we accept?
12 months with tacit renewal and a 3-month notice period. Beyond 24 months, ask for a price review capped at an agreed index.
How do we check that the SLA is met?
Through the shared ticketing tool, which timestamps every step. The monthly report must show the actual time for each blocking and major incident.
Let's scope your project. Send us the stack, incident history and build budget of your application: we will propose a maintenance retainer, a priced SLA and a reversibility plan. Detailed quote within 48 h. WhatsApp +221 77 596 93 33.
Mohamed Bah
Fondateur, Kolonell
Passionate about digital and entrepreneurship in Africa, Mohamed has been helping Sénégalese businesses with their digital transformation since 2020. Founder of Kolonell, he believes every SME deserves a professional and accessible online présence.