An ERP price is three numbers, not one: what you pay in the first year, what you pay over five years, and what it costs to leave. The figure on a vendor's pricing page is only the smallest and most reliable input to the first two, and it says nothing about the third. This worksheet turns pricing pages and quotes into those three numbers, so that two very differently priced systems can be compared on one line.
It is deliberately not a cost estimate: a total depends on your user mix, data and integrations, and any total printed here would be wrong for you. What this post gives you is the sheet, the vendor list prices that go into it, and the places where the number usually goes wrong. Odoo sets its prices by the visitor's country, so the Odoo figures here are its US prices, read from dated archive copies of its pages; every other vendor page linked below was opened on 2 November 2026. Re-check before you sign.
Why one price is never enough
Pricing pages are written to be compared with other pricing pages, so they publish the one input that is easy to publish: a recurring fee per unit. The unit differs by vendor, and none of them is the cost of running an ERP. The three numbers to compute instead:
- Year-one cash. Licences, implementation, migration, and the hosting that must exist before anyone logs in. Services dominate it, not software.
- Five-year total. The recurring lines at their regular (not promotional) price, plus upgrades, integration upkeep, internal time and the add-on consumption that appears once people use the system. This is the number for comparing vendors.
- Cost to leave. Data export, a parallel period, the remaining term and any purchase minimums. This is the number that decides your negotiating position in year three.
A sheet that produces only the second number is a loyalty forecast, not a cost analysis.
Part 1: the inputs sheet
Nothing on a pricing page can be read until these are written down. Fill them in with finance and operations together, before you open a single vendor tab.
| Input | Why it changes the price | Write down |
|---|---|---|
| Users by role, not headcount | Odoo and Microsoft price a full user differently from a light one; Acumatica and Frappe Cloud do not price per user | Full users, approval-only users, self-service and shop-floor users, report readers |
| Companies and currencies | Multi-company pushes you into a higher plan on some vendors | Entities, currencies, intercompany flows |
| Custom code, yes or no | Decides which hosting options are available at all | Add-on modules you expect; core changes you refuse |
| Integrations | Each is a build line and an upkeep line | Systems that exchange data, and in which direction |
| Environments and storage | Staging, development and storage are often metered separately | Production only or plus staging; database size and growth |
| Implementation scope | Services are rarely on the pricing page | Phase-one modules, data to migrate, training |
| Term and minimums | Some vendors fix a floor you keep for the term | Term, minimum licences, notice period |
| Exit horizon | Weights the cost to leave | The year you would realistically re-evaluate |
Two of these move the number more than any discount.
Roles, not heads. Odoo lists a Light User at US$ 8.90 beside its full plans, for an employee's own time off, expenses, appraisals, attendance, referrals and planning, field service, barcode operation, read-only Knowledge, payslips, point of sale and the manufacturing shop floor; approvals are not on that list, and the licence comes through "a customized quote" from an Odoo advisor (Odoo pricing, US copy of 30 October 2026). Microsoft lists Business Central Team Members at $8.00 per user per month beside Essentials at $80.00, and describes Team Members as able to read data, approve workflows and update select records (Business Central pricing). Counting everyone as a full user overstates the licence line; counting someone as a light user when their work falls outside that vendor's definition understates it. Read each vendor's definition of a light user, then count.
Custom code decides the hosting lines. Odoo's documentation states that Odoo Online is incompatible with custom modules or modules from the Odoo Apps Store. One custom module, and the free hosting is no longer open to you; Odoo.sh or your own servers appear on the sheet with their own lines. The pricing page's footnote says it in six words: "Cost for Odoo.sh hosting not included" (Odoo pricing, US copy of 30 October 2026). Who operates what under each option is the subject of cloud ERP vs on-premise in 2026.
Part 2: normalising vendor pricing models
The second sheet converts each vendor's unit into one figure per year at the regular price. These are published list prices in US dollars, each dated in the source line under the table. Odoo sets its prices by the visitor's country; these are the US figures.
| Vendor and plan | Published unit | Regular list price | Not included (per the page) |
|---|---|---|---|
| Odoo Standard | per user per month, billed yearly | US$ 31.10 (US$ 24.90 for the first 12 months on initial users); Light User US$ 8.90, by quote | Odoo.sh hosting, implementation services, in-app purchase credits |
| Odoo Custom | per user per month, billed yearly | US$ 61.00 (US$ 49.00 for the first 12 months); required for Studio, multi-company, external API, Odoo.sh or on-premise | Same as Standard |
| Odoo.sh hosting | per worker, per GB, per staging environment | Shown only in the page's price calculator | The enterprise licence |
| Business Central Essentials | per user per month, paid yearly | $80.00; Premium $110.00; Team Members $8.00 | Copilot credits for agents, sold separately; an Azure subscription for agents |
| Dynamics 365 Finance | per user per month, paid yearly | $210.00; Premium $300.00; minimum 20 licences (10 for Premium) kept for the term | Not stated; the page prices licences and links out to implementation and partners |
| Frappe Cloud for ERPNext | per site or per server, per month | Sites from $5; Servers from $40 | Functional support (the Product Warranty covers bugs) |
| Acumatica | by applications and usage, no per-user fee | No list price published | No figure on the page: industry calculators or a custom pricing review |
Source: Odoo pricing, US copy of 30 October 2026 (Internet Archive; regular prices shown beside the discounted ones, footnote "The discount is valid for 12 months, for initial users ordered"), Odoo.sh pricing, Business Central pricing, Dynamics 365 Finance pricing, the Microsoft Product Terms for Dynamics 365 ("Purchasing Minimums – All Programs"), Frappe Cloud pricing and Acumatica pricing, those six opened 2 November 2026. Microsoft's pages state that prices "are for informational purposes only" and vary by currency, country and region.
Three rules come straight out of that table.
Use the regular price for years two to five. Odoo's page shows US$ 24.90 for Standard and US$ 49.00 for Custom, and beside each an asterisked higher figure, US$ 31.10 and US$ 61.00, which is the price once the twelve-month discount on initial users ends (Odoo pricing, US copy of 30 October 2026). On a five-year sheet the discount is a year-one adjustment, not the rate. Twenty-five Custom users at the regular price is 25 × 61 × 12 = US$ 18,300 a year; at the discounted price US$ 14,700, and the difference lasts one year. That is arithmetic from the linked page, not a quote. To carry those US list prices into a first-year, three-year and five-year estimate, add implementation, customisation, training, data migration and support to the licence line — and read the result as an estimate built on planning assumptions, never as a quote from Odoo.
Price the floor, not the headcount. Microsoft's Product Terms set a minimum purchase of 20 licences for Dynamics 365 Finance, Supply Chain Management, Commerce and Project Operations, 10 for the Premium editions of Finance and Supply Chain Management, and state that the minimums "must be maintained through agreement term" (Product Terms). At the $210.00 list price on the Finance pricing page, the floor is 20 × 210 × 12 = $50,400 a year in licences before any implementation, whether you have twenty users or eight. The same terms list no minimum for Business Central, one reason the two Microsoft products belong on different sheets; see Microsoft ERP options explained.
Convert every unit to a year, then split the roles. Twenty-five full users on Business Central Essentials is 25 × 80 × 12 = $24,000 a year; as ten full users and fifteen approval-only users it is 10 × 80 + 15 × 8 = $920 a month, or $11,040 a year (Business Central pricing). The same twenty-five on Odoo Custom at the regular price is 25 × 61 × 12 = US$ 18,300 a year as full users. Odoo's Light User does not cover approvals, so its split needs fifteen people in roles the licence does cover, such as pickers, point-of-sale staff, shop-floor operators and expense filers: 10 × 61 + 15 × 8.90 = US$ 743.50 a month, or US$ 8,922 a year, with the Light User price subject to Odoo's quote (Odoo pricing, US copy of 30 October 2026). The two vendors are now on one line, and the licence row roughly halves on both from one honest count of who does what. Every figure here is still wrong as a total: none includes a single row from Part 3.
Part 3: the five-year lines
One row per line, a year-zero column for anything paid before go-live, five annual columns, and a last column saying where the number comes from, so a blank cell is visibly a blank rather than a zero.
| Line | Year 0 | Years 1 to 5 | Where the number comes from |
|---|---|---|---|
| Subscription or licences | first-year rate | regular rate × role count | Part 2 |
| Hosting or platform | setup | workers, storage, environments, or your servers | Vendor hosting page, or cloud bill plus operator |
| Implementation services | the bulk of it | phase two, if planned | Written quote; vendor packs where published |
| Data migration | one-off | Quote; usually under-scoped | |
| Integrations, build | per integration | new integrations | Quote per integration and direction |
| Integrations, upkeep | per integration per year | A share of build cost each year | |
| Custom code upkeep | per module per year | Vendor fees, plus developer time | |
| Upgrades | annual, on the vendor's calendar | Test time per module and integration | |
| Training | initial | new joiners, new modules | Hours × people × who delivers it |
| Internal time | design, testing, cutover | key-user and admin time | Days × daily cost |
| Consumption add-ons | AI credits, SMS, scanning, API overage | Vendor consumption pages; a nominal line to start | |
| Support beyond the vendor | partner retainer | Quote | |
| Contingency | A percentage of services, agreed up front | ||
| Cost to leave | Part 5 |
Source: structure only; the rows carry no vendor figures. Fill licences and hosting from Part 2, and the services rows from written quotes dated within the last month.
Three rows have published anchors worth knowing.
Odoo publishes a price for its own implementation packs. Odoo's pricing packs page, US copy of 9 August 2026 lists Success Packs: a 50-hour Standard pack at US$ 7,000 and a 200-hour Pro pack at US$ 25,000 for returning customers, with a 15% discount on a new customer's first pack, shown as US$ 5,950 and US$ 21,250. The 200-hour pack works out to US$ 125 an hour (25,000 ÷ 200), which is this worksheet's division, not a figure on the page. The page also says hours are "best efforts", travel is billed and developments by Odoo are "charged per day of consulting". Odoo's pricing page says companies above 50 employees "usually work with a partner", whose quotes are not published, and tells companies above 250 employees to "contact Odoo directly" (Odoo pricing, US copy of 30 October 2026), so for most mid-sized companies this row is still a quote.
Custom code has a recurring fee on at least one platform. Odoo's packs page states that "extra monthly charges apply for the maintenance of extra modules / lines of code" (Odoo pricing packs, US copy of 9 August 2026). On any platform, custom code also has a cost nobody invoices: every upgrade is a test cycle for every module and integration, run by your people. If you already run Odoo and cannot fill the custom-code and integration rows because nobody knows how many modules exist or which block the next upgrade, the technical architecture review offered on this site produces those numbers from the code: module inventory, upgrade blockers, integration patterns and the infrastructure under them.
Consumption add-ons appear after go-live. On the Business Central pricing page the Sales Order Agent and Payables Agent are marked "Requires Copilot Credits (sold separately)", and an Azure subscription is required to use agents. Odoo's pricing page, US copy of 30 October 2026 lists in-app purchase credits for SMS, contact auto-complete, lead generation and AI scanning of vendor bills under what is not included. Both are zero on a licence comparison and non-zero on a real bill, so give them a row with a nominal figure.
Part 4: the lines no pricing page carries
These rows are blank on every vendor's page by design, and the evidence is usually on the page itself.
- Implementation and migration. Odoo's pricing page lists "Implementation service and access to Odoo expert services" under what is not included (Odoo pricing, US copy of 30 October 2026). Acumatica's page gives no figure: it sends buyers to industry calculators ("Build your custom software package—with support and implementation included") and "a no-obligation custom pricing review with an Acumatica expert" (Acumatica pricing), so ask what that package leaves out. Spot it: a services line smaller than the first-year licence line for a company with any data history or integrations; migration is usually what was left out.
- Purchase minimums. A floor kept for the term is a cost even when headcount falls, and it lives in the Product Terms, not on the pricing page (Microsoft Product Terms). Spot it: ask in writing whether any minimum quantity applies, and for how long.
- Functional support. Frappe Cloud's Product Warranty covers "fixing bugs in Frappe Apps" and "does not include functional support" (Frappe Cloud pricing). Odoo's plans include "unlimited support, hosting and maintenance" (Odoo pricing, US copy of 30 October 2026), with implementation expertise a separate purchase on the same page. Spot it: ask who answers "how do I" questions after go-live, and whether that person is on any invoice.
- Your own people. Design workshops, test cycles, the cutover weekend, the month of double-checking after it. No vendor puts this on a sheet because it is not their cost. Because no vendor quotes it, it is the row most easily left at zero; price it as days × daily cost per person.
Part 5: the cost to leave
Put a number on leaving before you sign, while you still have options. The row has four parts:
- Data out. What you can export yourself, in what format, and whether a full database copy costs anything. On a platform you host, it is a backup you already run; on a vendor cloud, read what the database manager lets you download.
- Parallel period. One or two months paying both systems while you reconcile, at the regular rate from Part 2.
- Remaining term and minimums. Whatever the contract still owes, including any floor maintained through the term.
- Rebuild. Custom modules and integrations do not move between products. Ten of each means re-specifying ten of each.
The use of this number is not the exit itself. It is knowing, in year three, whether leaving costs a month's run rate or two years' worth. A longer term at a fixed price lowers the five-year total and raises this row; decide which number you are optimising before you accept the discount for it.
What goes wrong, and how to spot it early
- The promotional price is carried to year five. Early sign: a licence row flat across all five columns at the discounted rate. Check the asterisk.
- Headcount replaces roles. Early sign: the user count equals the number of employees.
- Self-hosting is compared with a subscription and the operations row is empty. Early sign: self-hosting looks cheaper every year. Somebody patches those servers, and they are on your payroll.
- The vendor's sheet excludes implementation. Early sign: a total that is a clean multiple of the per-user price.
- The sheet dies at signature. Early sign: nobody owns it for the next five years. Keep it, add the real invoices each quarter, and by year two you will know which rows you under-scoped. That record is worth more than the estimate.
If what started this conversation was your current tool's limits, the earlier step is ERP vs accounting software: when to move on.
Frequently Asked Questions
How much does an ERP cost per user?
Published US list prices for a full user start at US$ 31.10 per user per month for Odoo Standard billed yearly (Odoo pricing, US copy of 30 October 2026); Business Central Essentials is $80.00 and Dynamics 365 Finance $210.00, each per user per month paid yearly (Business Central pricing, Finance pricing, opened 2 November 2026). Limited-use licences cost less: Business Central Team Members at $8.00 and Odoo's Light User at US$ 8.90, priced by quote. Acumatica publishes no per-user price at all (Acumatica pricing). The per-user figure is the smallest input; implementation, migration, integrations and your own people's time usually outweigh it in the first year.
What is included in ERP total cost of ownership?
Everything you pay because the system exists, over the period you expect to run it: licences at the regular rate, hosting, implementation, data migration, integrations and their upkeep, custom-code maintenance, upgrade testing, training, internal time, consumption add-ons, any partner retainer, contingency, and the cost to leave. The worksheet above has one row for each.
Should I use the discounted price in an ERP cost comparison?
Only in the year it applies. Odoo's page shows US$ 24.90 for Standard and US$ 49.00 for Custom with the footnote that the discount "is valid for 12 months, for initial users ordered", beside regular prices of US$ 31.10 and US$ 61.00 (Odoo pricing, US copy of 30 October 2026). A five-year sheet uses the regular price for years two to five, and for any user added after the initial order.
How many years should an ERP total cost of ownership cover?
Five is the usual horizon and the one this worksheet uses: long enough for upgrades, integration changes and user growth to show, short enough that today's list prices still mean something. Whatever horizon you choose, end it with the cost-to-leave row.
Written by
Muhammad Amir
Electrical Engineer and founder of ECOSIRE Holdings. Began his career on JF-17 fighter jet avionics; now ships ERP, AI, and ad-tech systems — including 215+ Odoo modules, an autonomous SEO platform, and AI agent fleets.
Need consulting help?
I offer productized consulting services for ERP, integrations, and AI.
View ServicesRelated Articles
How to Evaluate an ERP Implementation Partner
How to evaluate an ERP implementation partner: questions with answers you can check, a paid discovery before you sign, and the answers that end the talk.
11 min readerpConstruction ERP: Job Costing Requirements
Construction ERP job costing requirements: cost codes, commitments, change orders, labour burden, retainage, WIP and one real job to run through every demo.
12 min readerpChoosing a Manufacturing ERP: Questions That Matter
How to choose a manufacturing ERP: the questions on production mode, BOMs, capacity, costing, shop-floor data and traceability to settle before any demo.
12 min read