Skip to main content
erperp-selectionpricingtotal-cost-of-ownershipprocurement

ERP Total Cost of Ownership Worksheet

ERP price is three numbers, not one. A worksheet that fixes the inputs first, normalises vendor pricing models, lists the five-year lines and prices the exit.

Muhammad Amir

Muhammad Amir

Electrical Engineer & Founder, ECOSIRE Holdings

November 2, 202615 min read3.3k words

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:

  1. Year-one cash. Licences, implementation, migration, and the hosting that must exist before anyone logs in. Services dominate it, not software.
  2. 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.
  3. 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.

InputWhy it changes the priceWrite down
Users by role, not headcountOdoo and Microsoft price a full user differently from a light one; Acumatica and Frappe Cloud do not price per userFull users, approval-only users, self-service and shop-floor users, report readers
Companies and currenciesMulti-company pushes you into a higher plan on some vendorsEntities, currencies, intercompany flows
Custom code, yes or noDecides which hosting options are available at allAdd-on modules you expect; core changes you refuse
IntegrationsEach is a build line and an upkeep lineSystems that exchange data, and in which direction
Environments and storageStaging, development and storage are often metered separatelyProduction only or plus staging; database size and growth
Implementation scopeServices are rarely on the pricing pagePhase-one modules, data to migrate, training
Term and minimumsSome vendors fix a floor you keep for the termTerm, minimum licences, notice period
Exit horizonWeights the cost to leaveThe 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 planPublished unitRegular list priceNot included (per the page)
Odoo Standardper user per month, billed yearlyUS$ 31.10 (US$ 24.90 for the first 12 months on initial users); Light User US$ 8.90, by quoteOdoo.sh hosting, implementation services, in-app purchase credits
Odoo Customper user per month, billed yearlyUS$ 61.00 (US$ 49.00 for the first 12 months); required for Studio, multi-company, external API, Odoo.sh or on-premiseSame as Standard
Odoo.sh hostingper worker, per GB, per staging environmentShown only in the page's price calculatorThe enterprise licence
Business Central Essentialsper user per month, paid yearly$80.00; Premium $110.00; Team Members $8.00Copilot credits for agents, sold separately; an Azure subscription for agents
Dynamics 365 Financeper user per month, paid yearly$210.00; Premium $300.00; minimum 20 licences (10 for Premium) kept for the termNot stated; the page prices licences and links out to implementation and partners
Frappe Cloud for ERPNextper site or per server, per monthSites from $5; Servers from $40Functional support (the Product Warranty covers bugs)
Acumaticaby applications and usage, no per-user feeNo list price publishedNo 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.

LineYear 0Years 1 to 5Where the number comes from
Subscription or licencesfirst-year rateregular rate × role countPart 2
Hosting or platformsetupworkers, storage, environments, or your serversVendor hosting page, or cloud bill plus operator
Implementation servicesthe bulk of itphase two, if plannedWritten quote; vendor packs where published
Data migrationone-offQuote; usually under-scoped
Integrations, buildper integrationnew integrationsQuote per integration and direction
Integrations, upkeepper integration per yearA share of build cost each year
Custom code upkeepper module per yearVendor fees, plus developer time
Upgradesannual, on the vendor's calendarTest time per module and integration
Traininginitialnew joiners, new modulesHours × people × who delivers it
Internal timedesign, testing, cutoverkey-user and admin timeDays × daily cost
Consumption add-onsAI credits, SMS, scanning, API overageVendor consumption pages; a nominal line to start
Support beyond the vendorpartner retainerQuote
ContingencyA percentage of services, agreed up front
Cost to leavePart 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Tags:erperp-selectionpricingtotal-cost-of-ownershipprocurement
Share:
Muhammad Amir

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 Services
Chat on WhatsApp