CMS TCO (total cost of ownership)
The full cost of running a CMS over its life: licences and seats, hosting and infrastructure, development, content operations, and the cost of eventually leaving it.
The total cost of ownership, or TCO, of a CMS is what it actually costs to run over its whole life. The headline figure on a quote, usually a licence or a subscription, is one line among several, and often not the largest. Reading TCO means adding up the cost of owning and operating the system across the years you expect to keep it, which gives a firmer basis for comparing options than a sticker price does.
The five cost lines
A CMS budget is easiest to read as five lines. The third column matters as much as the first: each line has somewhere that spending accumulates without ever being recorded against the platform.
| Cost line | What drives it | Where it hides | Who usually holds the budget |
|---|---|---|---|
| Licences and seats | Editor count, number of environments, API calls, locales, and the feature tier you end up on | Seats added mid-term, overage on metered limits, features that sit one tier above the one you were quoted, uplift at renewal | Procurement, or the marketing budget |
| Hosting and infrastructure | Traffic, media volume, number of environments, redundancy and regions | Non-production environments, bandwidth and image processing, backups and disaster recovery, search and preview services billed apart from the main plan | IT or platform engineering |
| Development | The initial build, then the rate of change after launch: templates, integrations, version upgrades, security patches | Upgrades run as projects of their own, integration rework when a connected system changes, effort absorbed by an in-house team so it never lands on an invoice | Engineering, or an agency retainer |
| Content operations | Contributor count, languages, review steps, publishing volume | Editor time lost to workarounds, the same content re-entered for a second channel, onboarding after turnover, freelance help at campaign peaks | Marketing or communications |
| Exit cost | Content held in proprietary formats, logic held in vendor-specific configuration, contract notice periods, team knowledge specific to the tool | In the absence of a line at all. Nothing is booked against it until a move is planned, and by then its size has largely been set by earlier decisions about formats and configuration | Nobody, until a migration budget is written |
For open-source, self-hosted software the first line can be zero, with the cost moving into hosting, development, and the operations around them. That shift is the subject of self-hosted vs SaaS CMS.
Development is frequently the largest of the five, and easy to leave out of a quick comparison, because much of it arrives after launch as ordinary engineering work. Content operations is the day-to-day cost of the people running content in the system, covered in more depth under content operations. Exit cost is tied directly to vendor lock-in: the more of your content and configuration a system holds in a form only it can read, the larger that final line becomes.
Why the headline price misleads
Once the other lines are counted, two systems with very different licence costs can land close on total cost. Two systems on identical licences can also diverge, sometimes widely. A platform with no licence fee still costs money to host, develop against, and operate, while a costly licence may bundle hosting and reduce development effort. Because the lines trade against one another, comparing only the most visible one tends to favour whichever option happens to move its cost somewhere less visible. The mechanics of how a licence line grows on its own, through seats, API calls and locales, are worked through in per-seat, per-API-call, per-locale pricing.
A three-year comparison you can fill in
Pick one horizon and apply it identically to every option. Three years is a common choice: it covers a build, a settling period, and at least one renewal.
The structure below is the shape of the calculation. The figures are yours to supply, from quotes you have been given and rates your own finance team can confirm.
| Line item | When it lands | What to enter |
|---|---|---|
| Implementation and build | One-off | The fixed-price quote, or estimated days multiplied by the day rate |
| Content migration | One-off | Volume of content to move, multiplied by the per-item effort your team or vendor estimates |
| Integrations | One-off, then recurring | Build cost for each connected system, plus an annual allowance for rework |
| Training and rollout | One-off | Editor headcount multiplied by training days, plus any productivity dip you expect while people learn the system |
| Licences and seats | Recurring | The annual fee at the seat, locale and environment counts you expect to have reached by year three |
| Hosting and infrastructure | Recurring | Provider estimate at expected traffic and media volume, including non-production environments |
| Maintenance and support | Recurring | Retainer value, or internal engineering days multiplied by a loaded day rate |
| Ongoing development | Recurring | Planned roadmap days per year at your day rate, plus a version-upgrade allowance |
| Content operations | Recurring | Editor and translator time, agency or freelance support, and the tooling around the CMS |
| Exit provision | End of horizon | Export and conversion effort, plus the rebuild cost on whatever comes next |
The arithmetic has four steps.
- Sum the one-off items. These land in year zero and belong to whichever option requires them. An incumbent platform usually carries fewer of them, though a version upgrade, a re-training round or a rebuild on the same platform can put items back on its side of the sheet.
- Set the recurring lines for year one, using the figures above.
- Grow the recurring lines for years two and three. Apply your own escalation rate to each: the contractual uplift clause for licences, expected traffic growth for infrastructure, salary inflation for internal engineering time, headcount and language growth for content operations. Each line grows at its own rate, so grow them separately.
- Add the exit provision, then total. The three-year figure is the one-off costs, plus year one, plus year two, plus year three, plus the exit provision.
Run the same sheet for every option, including the platform you are on now. Staying has a three-year cost of its own, and it belongs on the sheet alongside the alternatives. A worked version over a five-year horizon, with its inputs named, is in the real 5-year TCO of staying on your current stack. If a contract renewal is what prompted the exercise, the pre-negotiation checklist covers what to establish before the vendor conversation opens.
Common questions
-
What does a CMS licence price leave out?
A licence or subscription price covers the right to use the software at the tier and volume quoted. It leaves out hosting and infrastructure, the build and the ongoing development work after launch, the time editors spend running content in the system, and the cost of leaving the platform later. A quote also assumes the volumes you have on the day it is written, so seats, API calls, locales and environments added during the term are commonly charged on top.
-
Why do self-hosted and SaaS CMS costs diverge over three years?
The two models put the money in different lines. A SaaS plan bundles hosting, patching and uptime into a recurring fee that moves with your volumes and at renewal. Self-hosting shrinks or removes the licence line and shifts that spend into infrastructure and the people who operate it, a cost you carry whether or not usage grows. Over three years a SaaS bill tends to move with your volumes. A self-hosted bill tends to move with the size and cost of the team running it. Which one totals less depends on how fast your volumes grow and whether you already have the capacity to run infrastructure reliably. [Self-hosted vs SaaS CMS](/glossary/self-hosted-vs-saas-cms) goes through what each model asks of you.
-
What changes at renewal?
At renewal the terms you signed are applied to the volumes you actually reached. Contracts commonly carry an escalation clause, so the base fee moves. Seats, API calls, locales and environments added during the term get re-priced. Introductory discounts attached to a first term may not carry into the next one. Features can move between tiers when a vendor repackages. Auto-renewal clauses and notice periods determine how much room there is to negotiate any of it, and both are worth reading before the window opens.
-
How do you compare two CMS quotes fairly?
Put both on the same horizon, the same volumes and the same list of lines. Fix the number of editors, locales, environments and the traffic you expect to have reached by the end of the period, then price each option against those figures, replacing the assumptions carried in its own quote. Add the lines no quote contains: internal engineering time, editor time, and the cost of leaving. Where one option bundles hosting and another leaves it out, the bundled fee has to be compared against the second option's licence plus its own infrastructure estimate. When the comparison is part of a platform move, [replatforming](/glossary/replatforming) covers what the move itself involves.
We're booking content platform
engagements for 2026.
Twenty-five minutes to walk through the work and decide if we're the right team for it. Scoping and a fixed price come after.