The pattern is consistent enough to be predictable. The first invoice matches the estimate. The second one does. Somewhere between months four and eight the number changes, and nobody can immediately say why.
Nothing dishonest happened. The costs below are absent at signup because they are consequences of use, and at signup you have not used anything yet. They arrive on their own schedule, and knowing which arrive when is most of the defence against them.
No price and no vendor appears in this article, deliberately. Numbers on this subject go stale and a stale number on a costs page is the worst kind of wrong. The mechanisms are what stay true.
Month one to two: nothing
This is worth stating because it is why the problem exists. Early usage is low, content volume is small, one environment exists, and the free or entry tier holds comfortably.
That period is not evidence about the cost of the platform. It is evidence about the cost of not using it yet.
Month three: the second environment
The first cost most teams meet, and it usually arrives as a surprise because nobody thought of it as a cost.
You need somewhere to test a change before it goes live. That is a second environment, and on many platforms an environment is a metered unit or a tier trigger rather than a free convenience. On some it is the specific thing that moves you up a tier.
The same applies to a preview environment, which content teams ask for early and which the technical team frequently discovers is a third one.
Month four: content volume
Records, entries, documents, assets. Whatever the platform counts, you are now producing it at a steady rate.
The mechanism worth understanding: content volume compounds and does not go down. A site producing steadily crosses a threshold at a predictable date, and it is a date you can calculate at signup if you know the unit. Identifying that unit is the whole of reading a CMS pricing page without being misled, and it is the twenty minutes that prevents this entire article.
Assets are the usual surprise here rather than text. Images and video accumulate faster than posts, and asset storage and asset delivery are frequently metered separately.
Month five: the integration nobody scoped
By now the site is real, and real sites need things.
A form. A search. Analytics. A newsletter. A comment system. A redirect manager. Each of these is a separate service with its own price, and none of them was in the CMS comparison, because none of them is a CMS feature.
This is the cost that is genuinely larger under a headless architecture than under a traditional one, and it is the one this site’s honest-broker row makes a point of: what you lose when you go headless covers it. A monolithic platform bundles a lot of small things. When you unbundle, the bundle reappears as a list of line items and an integration effort behind each one.
Month six: traffic and the layer underneath
This is the classic one, and the reason this article has the title it has.
Requests, bandwidth, asset delivery, build minutes. All of these move with success, and success is what you were aiming for.
The specific thing to understand: the constraint frequently lives in the layer beneath the CMS rather than in the CMS. A build platform, a hosting provider, an image service, a CDN. Those have their own pricing and their own limits, and no CMS comparison page carries them. A team that modelled the CMS carefully and not the layer under it will be surprised by the layer under it.
Month seven: people
Two costs and neither is on any invoice.
Whoever operates it. If self-hosted, the licence was free and the updates, backups, monitoring and incidents are not. Self-hosted or cloud: who is on call at 2am works through what that actually involves, and the deciding question is whether you can name a second person.
Whoever unblocks the content team. If publishing routinely requires a developer, that is a recurring cost measured in interruptions rather than in currency, and it is frequently the largest one on this list. Whether it applies to you is answerable before you commit, in an hour: can a non-developer actually publish on this? is the test.
Month nine: the model change
Somewhere in the first year, a content type turns out to be wrong. A field is missing, a relationship was modelled the wrong way round, or an editor needs something the schema did not anticipate.
The cost of that change varies enormously by platform, and it is decided by where the content model lives. A change that is a click in an admin panel on one platform is a code change, a migration and a deploy on another, and if content already exists it may be a data migration too.
Nobody prices this at evaluation time and everybody pays it. Content model migration covers why the same change is trivial in one architecture and a project in another.
Month twelve: renewal
Two things happen at renewal.
The annual commitment comes up, possibly at a different price. What notice you were given, and what the vendor’s history of price changes looks like, is a question worth asking before you sign rather than at the renewal email.
Your usage is now visible over a full year, which means the tier you belong in is no longer a projection. Some teams find they have been over-provisioned all year, which is its own cost.
Any month: leaving
The cost that is invisible until you want to incur it.
Getting your content out of a platform is rarely as complete as the interface suggests, and this site’s entire migration cluster exists because that gap is expensive. What actually breaks during a CMS migration is the catalogue.
Test the export before you sign, not when you want to leave. Export everything, open the file, and check whether relationships, assets, drafts, revisions, taxonomy and metadata are actually in it. Twenty minutes at the start, and it is the only thing that establishes what leaving will cost.
The checklist to run before committing
Ask the vendor, in writing, and keep the answers:
- What is metered? Every unit, named.
- What happens when I exceed each one? Billed, throttled, or stopped.
- What triggers a tier change other than volume? Environments, roles, SSO, webhooks, locales.
- How many environments are included, and what does another cost?
- What is the notice period for a price change, and what has happened before?
- What is in the export, exactly? Then test it.
And model your own numbers at today’s size and three times it, so you are buying a curve rather than a first invoice.
The short version
- The early invoices measure not using the platform yet.
- Month three is the second environment. Month four is content volume, usually assets. Month five is the integrations a headless setup unbundles.
- Month six is traffic, and the constraint is often in the layer beneath the CMS.
- Month seven is people: operating it, and unblocking the content team.
- Month nine is the first content model change, and its cost depends entirely on where the model lives.
- Leaving is a cost of this decision. Test the export before you sign.

