Budgeting an Odoo project — honest cost ranges

What an Odoo implementation actually costs, by company size and ambition

Budgeting an Odoo project — honest cost ranges

Most Odoo budgets we audit are wrong in the same direction: underestimated. Not by a factor of two, but enough to make the project painful in month four. This post is the honest cost framework we use with clients before we sign anything.

Odoo is one of the cheapest serious ERPs on the market — and 'cheap' is doing a lot of work in that sentence. The licence is genuinely affordable. The implementation, training, integrations and ongoing support are real costs that need their own budget line.

We will walk through the cost components you should budget, ranges by company size, where teams typically underestimate, and how to model three-year total cost of ownership rather than year-one only.

These ranges come from our own portfolio: dozens of Belgian and Benelux SMEs across services, manufacturing, retail and distribution. Your numbers may differ — but the components are universal.


The cost components nobody mentions in the demo

An Odoo implementation has six cost components: licences, implementation services, custom development, integrations, training and change management, and ongoing support. Each deserves its own budget line and its own three-year view.

Demos focus on the licence cost because it is the easiest to compare. In our experience the licence is rarely more than 25% of the year-one budget. Skip the other components and the project either stalls or absorbs them on the side, neither of which is fair to the team.

  • Licences — Odoo Enterprise per user per month
  • Implementation services — partner consulting fees
  • Custom development — when standard does not fit
  • Integrations — bank, e-commerce, EDI, payroll, BI
  • Training and change — the line that wins or kills adoption

Cost ranges by company size

Concrete numbers help. These are the ranges we see across our Benelux SME portfolio, year-one all-in (licences, implementation, integrations, training). They assume Odoo Enterprise on Odoo.sh and a competent partner.

Smaller companies sit at the low end if they accept standard Odoo and limit integrations. Larger or multi-entity companies sit at the high end as soon as custom modules and complex integrations enter the scope.

  • 10-30 users, services SME — €40k to €120k year one
  • 30-100 users, mid-market SME — €100k to €300k year one
  • 100-300 users, larger SME with custom code — €300k to €700k year one
  • Multi-entity or industrial — typically above €500k year one
  • Self-hosted with full Ops in scope — add Ops budget on top

Where teams underestimate

Three lines absorb the surprises in almost every project we audit: data migration, integrations, and training. Each looks small in the demo and large in the third month. Budget them honestly upfront and you avoid the scope conversation in week ten.

Our rule of thumb: data migration is 20-30% of the implementation effort, integrations are 15-25%, and training plus change is 10-20%. If the proposal you have in front of you puts data migration at 5%, that is the first place to ask questions.

  • Data migration — 20 to 30% of implementation effort
  • Integrations — 15 to 25% of implementation effort
  • Training and change — 10 to 20% of implementation effort
  • Ongoing support — budget at least 10-15% of year-one cost annually
  • Upgrades — every two years on average, add a small project budget

Three-year total cost of ownership

The year-one budget is half the story. Year two and three carry licences, support, upgrades, and the small custom modules that emerge as the team learns Odoo. Modelling the three-year TCO helps the CFO sign with both eyes open.

For our typical 50-user mid-market client, the three-year TCO is roughly two times the year-one cost, not three. Year one is implementation-heavy; years two and three are support-and-evolution heavy. Knowing the shape avoids year-two budget surprises.

  • Year 1: heavy implementation + licences + training
  • Year 2: licences + support + small custom evolutions
  • Year 3: licences + support + small upgrade project
  • Three-year TCO ≈ 2× year-one for a typical SME
  • LLM and integration costs sit on top — measure and review

How we build a budget you can defend

We always build the budget bottom-up: list the modules, the integrations, the data migration scope, the training plan. Each line gets a range, not a point estimate. The CFO sees the assumptions and can challenge any of them before they become commitments.

We refuse to put a single all-in number on a project we have not scoped. A vague number signed on day one is the fastest way to a contentious month four. Range-based, transparent budgets create much better partner-client conversations.

  • Bottom-up build, never top-down 'instinct' number
  • Range per line item, with assumptions visible
  • CFO and IT lead review and challenge before sign-off
  • Three-year TCO modelled before any procurement decision
  • Contingency reserve — 10 to 15% on the implementation lines

Budget mistakes we audit out before signing

Five patterns we challenge before any contract is signed.

  • Year-one only budget — surprise costs in year two.
  • Data migration as a tiny line — almost always wrong.
  • Training underbudgeted — the project ships and adoption stalls.
  • Single all-in number with no assumptions — impossible to govern.
  • No contingency reserve — the first surprise becomes a crisis.

How to measure that the budget is healthy

Numbers we track monthly with the project sponsor.

  • Spend versus budget per workstream — variance under 10%.
  • Scope changes signed and re-budgeted — explicit, not absorbed.
  • Forecast at completion — refreshed monthly, not quarterly.
  • Contingency consumption — visible, not silent.
  • Three-year TCO refreshed at every major scope decision.

How we build budgets at Flydoo

We start with a half-day scoping workshop, walk the cost components with the client's CFO and IT lead, and produce a bottom-up budget with explicit ranges. The proposal lists the assumptions next to the numbers — when an assumption changes, the line moves transparently.

Once the project starts we report spend against budget per workstream every month. Scope changes are re-priced explicitly, not absorbed silently. The CFO never finds out about a budget shift on month-end close.

  • Half-day scoping workshop with CFO and IT lead
  • Bottom-up budget with ranges and visible assumptions
  • Monthly spend-vs-budget report per workstream
  • Scope changes explicitly re-priced and signed
  • Three-year TCO refreshed at every major decision

Practical checklist before signing your Odoo proposal

Ask these questions before you commit budget.

  • Are the six cost components all listed and budgeted?
  • Is data migration sized at 20-30% of implementation effort?
  • Is training and change at least 10-20% of implementation?
  • Is there a three-year TCO, not just year one?
  • Is each line shown as a range with explicit assumptions?
  • Is there a 10-15% contingency reserve on implementation?
  • Is there a clear monthly reporting cadence on spend versus budget?

An honest budget is the first deliverable

An Odoo project that finishes on budget did not get lucky — it got scoped honestly. Six cost components, ranges per line, a three-year view, monthly reporting and an explicit contingency reserve. None of this is exotic, all of it is the difference between a calm project and a contentious one.

If you are evaluating a proposal that does not look like the framework above, treat that as a red flag. Ask the questions, ask for the missing components, ask for the ranges. A serious partner will welcome the conversation.

If you would like a second opinion on an Odoo proposal you have on the table, we are happy to read it and share the questions we would ask before we signed.

Frequently asked questions

Why is the year-one budget so much more than the licence cost?

Because the licence is one of six cost components. Implementation services, custom development, integrations, training and ongoing support typically add three to four times the licence cost in year one. This is universal across serious ERP vendors — Odoo is just more honest about the licence side.

How can I tell if a partner proposal is realistic?

Look at the proportion per component. Data migration around 20-30% of implementation, integrations 15-25%, training 10-20%. If the proposal is 70% partner consulting and 5% data migration, the data work will land on someone — usually you, in week ten.

What if my budget is smaller than the ranges in this post?

Reduce scope, not quality. Pick a smaller first phase, accept more standard Odoo, defer the integration that does not pay back in year one. Trying to do the full scope on a smaller budget is how projects end up half-finished and discredited.

How big should my contingency reserve be?

Ten to fifteen percent of the implementation lines is what we recommend. Less and the first surprise becomes a crisis. More and you are probably budgeting around an unscoped item that should be addressed directly. Either way, contingency should be visible in the budget, not hidden.

Should I expect ongoing costs after go-live?

Yes. Plan at least 10-15% of year-one cost annually for support, small evolutions and upgrade projects. Companies that budget zero for ongoing support either pay it from another line silently or watch their Odoo slowly age out of usefulness. Neither is a good outcome.

Want to discuss what this means for your own Odoo project? We're happy to talk.

Explore our Odoo guides

Browse the Odoo guides

Related article

Choosing an Odoo partner: red flags and green flags

Ready to transform

Let us guide your digital transformation with Odoo ERP.

Talk to an expert