Odoo pricing, all published. Work out yours right here.
Count your companies, branches and internal users, and you have your monthly price. Projects are priced from counts too. The free scan confirms the counts, and the one-time project fees in its quote are binding for what the scan counts: if one of those existed on the scan date and the scan missed it, that cost is ours. No sales call needed.
Your server and backups are billed to you, not through us. Odoo runs on a server in your own Hetzner account and the backups go to your own Backblaze account. They bill you directly at their prices (usually about $40 to $75 a month for the server and a few dollars for backups), and we add no markup. If you ever leave, nothing has to move: your system keeps running exactly as it is, except that Allodi Print goes back to Odoo's standard PDF download, and our fee stops at the end of the 30-day notice period.
Free-service drawing: every submission on this site through November 30, 2026 enters your business. No purchase needed. Grand prize: 12 months of Managed Odoo fees waived. Rules
Allodi is run by Mark Kladivo in Des Moines, Iowa; his manufacturing company, Corn Belt Aluminum, is making the same move Allodi sells, to Odoo 19 Community on Hetzner with Backblaze backups. Read the case study.
The prices
All prices in US dollars, plus Iowa sales tax where it applies, for businesses of any size. Every number below comes from something you can count in your own Odoo.
-
Managed Odoo
Monthly, month to monthManaged Odoo monthly prices First company $75 a month Each additional company $37.50 a month Each branch (Odoo 17 and later) $12.50 a month Each internal user $15 a month Portal users Free Optional add-on 24/7 outage response, with your own direct emergency line per subscription, up to 20 internal users $150 a month Each internal user above 20 $7.50 a month Included fix time: 2 hours per company plus 15 minutes per internal user, every month, pooled. Hours used are taken from the time logged on your tickets, which you can see on each ticket in the portal. Hours you do not use carry forward one month, then lapse; they have no cash value. Additional hours are $150 an hour. We warn you in the ticket before going over your included hours, and going more than 2 hours over needs your approval.
24/7 outage response: when your server is down or data is at risk (priority 1), we start responding within one hour at any time of day, any day of the week, when you report it by a portal ticket marked P1, an email to support@allodi.us with P1 at the start of the subject line, or a call to +1 515-644-1400 or to your direct emergency line; monitoring alerts reach us around the clock. Other requests keep business-hours targets.
Your own direct emergency line: every 24/7 customer gets a private phone number of its own, given to you at onboarding, or when you add 24/7, that rings the on-call person, the one who fixes it, directly, day or night. It is for priority 1 outages; a call to it is a priority 1 report, and if the call is missed, a voicemail with your name, company and a call-back number counts. The first response target is the same one hour.
Price: $150 a month or $7.50 per internal user, whichever is more, so $150 covers up to 20 internal users. Users are counted the same way as for Managed Odoo: counted automatically every day, and each invoice uses the highest daily count in the period. Billed monthly with Managed Odoo, with no proration, plus Iowa sales tax where it applies. Added later, it starts as soon as we switch it on and is first billed on your next monthly invoice.
Our read-only counting tool counts your companies, branches and users automatically every day; you are billed on the highest daily count in the period, and the invoice lists those counts next to the prices. Hosting is billed separately: in the standard setup, Hetzner (usually about $40 to $75 a month) and Backblaze (a few dollars) bill you directly, in your own accounts, at their prices, with nothing added.
- Server operations, security patching, backup checks
- Server down or data at risk: first response within 1 business hour
- 30 daily backups in your B2 bucket, point-in-time recovery of the database to any moment in the last 29 days, monthly restore test
- A staging copy of production on your own server (8 GB of memory or more), refreshed on request
- Help setting up reliable outgoing mail (SPF, DKIM, bounces)
- Support portal with the full history of every request
- Allodi Print on Odoo 19: printing from Odoo straight to your printers, at no extra charge
- Cancel with thirty days' notice
-
Rescue and rehost
One time, per database, billed by milestoneRescue and rehost prices Each database $750 Each additional company in it $125 Milestones, per database At signing server build and test copy restored $250 At cutover production live on your server; additional-company fees billed here $250 At handover runbook, credentials, backups; 30 days after cutover or when you leave, whichever comes first $250 If we cannot get your database running on the new server, the start milestone is refunded (conditions).
Managed Odoo starts at cutover, or on the day we move your production onto our interim servers if an urgent move needs that, and is billed on that day of each month, with no proration. Before that you pay only the milestones, plus interim hosting at cost if we use it. You pay for the move while we move you, and for managing your Odoo once it is running on your server.
What is included -
Upgrade and de-Enterprise
One time; to Odoo 19, or 20 once it has maturedCustom modules to port None $0 1 to 5 $750 6 to 15 $2,000 16 to 40 $4,500 Over 40 $4,500 plus $100 per module over 40 Plus Each major version jumped 16 to 19 is three $500 Each Enterprise app replaced $250 Standard Odoo and OCA modules that already exist for the new version are free to carry over. OCA modules still waiting for a release on the new version count as modules to port.
No subscription needed. An upgrade or a move from Enterprise to Community is a one-off project; Managed Odoo is not required before or after it. You keep the code in your repository under LGPL-3, the server and backups in your name, and a handover package, and fixes for defects you report within 14 days of acceptance are included. Upgrade, then go.
What is included -
Customization cleanup
One time, by customizations the free scan findsCustomization cleanup prices 1 to 50 $750 51 to 150 $1,750 151 to 400 $3,500 Over 400 $3,500 plus $7.50 per customization over 400 The scan counts customizations such as Studio fields and views, automated and server actions, custom reports and scheduled jobs, and lists each one. A model made with Studio counts once, together with the fields, views, access rights and record rules on that model. Fields, views and other items on standard models or on models made by hand, including Studio fields, count one each. Customizations added after the scan date cost $7.50 each, with no jump to a higher tier. The scan is free and changes nothing.
What is included
Price calculator
Enter your counts. The numbers update as you type. Use the module list quote below to fill in the upgrade counts from your own database.
Your price
Managed Odoo, your ongoing monthly price
| Monthly total |
|---|
Rescue and rehost, one time
| Rescue total |
|---|
Upgrade and de-Enterprise, one time
| Upgrade total |
|---|
Customization cleanup, one time
When you pay
Hosting is billed separately: in the standard setup, the server and backups are in your own Hetzner and Backblaze accounts and are billed to you by them, and hosting we provide temporarily during a move is passed through at cost. Prices are plus Iowa sales tax where it applies, shown as a separate line on the quote and the invoice; they exclude VAT and GST. Upgrade and cleanup projects are billed by milestone as set out in the terms.
Send us these numbers, or run the free scan
"Send me this estimate" opens the contact form with your counts filled in, for you to check before you send. They stay in this browser tab until then. A person at Allodi reads them and replies, usually within one business day. We price them with the same published prices, and the free scan confirms them.
"Run the free scan" opens the scan file and the steps to run it. You give your name, company and email when you send the result file. The scan reads the actual counts from your database, so running it sends nothing from this page.
Instant quote from your module list
Let your own database fill in the upgrade counts. Pick an Odoo backup, either the zip or the .dump file from Odoo's database manager, or the manifest.json inside a backup zip, or paste the names of your installed modules. We sort every module into standard Odoo Community, Odoo Enterprise, OCA and custom, then put the counts in the calculator for you to check. The module lists behind it cover Odoo 14 and later; for Odoo 8 to 13, write to us and we prepare the upgrade quote by hand from a backup of your database.
Your file stays on your computer. This page reads it inside your browser. Nothing is uploaded, nothing is sent to us or anyone else, and nothing is kept after you close the page. A backup can be many gigabytes; the page looks only for the list of installed modules inside it. A large .dump or .sql file can take a minute to look through.
pg_dump (custom format, or plain .sql). You can also drag the file onto this box.
sale_management. To list them, run SELECT name FROM ir_module_module WHERE state = 'installed'; or export the Technical Name column from the Apps list with the Installed filter.
What your module list shows
"Send me this estimate" sends only the counts: the module names and your file stay on your computer. "Run the free scan" opens the scan file and the steps to run it; you give your name, company and email when you send the result file.
Enterprise apps installed
Each one is priced as an app to replace. Supporting Enterprise modules come out with their app at no extra charge. Keeping Enterprise instead is fine too; then set the app count to zero. The migration page explains the trade.
| App | Community or OCA replacement |
|---|
Check these modules
These are the modules our list does not know as standard Odoo, or knows as OCA modules still waiting for a release on your target version. Each one set to Port it counts as a custom module to port. Change any that are wrong; the calculator follows.
| Module | What we think it is | Treat as |
|---|
Every module, by type
Worked examples
The same arithmetic the calculator does, written out.
| Situation | Arithmetic | Price |
|---|---|---|
| 2 users, 1 company | $75 + 2 × $15. Includes 2.5 fix hours a month. | $105 a month |
| 10 users, 1 company | $75 + 10 × $15. Includes 4.5 fix hours a month. | $225 a month |
| 10 users, 1 company, with Rescue | Managed Odoo starts at cutover. Before that you pay only the move, plus interim hosting at cost if we use it. | $250 at signing, $250 plus the first month ($225) at cutover, $250 at handover, then $225 a month on the cutover day |
| 10 users, 1 company, with 24/7 outage response | $75 + 10 × $15 + $150 (add-on; $150 covers up to 20 users) | $375 a month |
| 50 users, 1 company, with 24/7 outage response | $75 + 50 × $15 + 50 × $7.50 (add-on, $375) | $1,200 a month |
| 5 users, 1 company with 2 branches | $75 + 2 × $12.50 + 5 × $15 | $175 a month |
| 10 users, 3 companies | $75 + 2 × $37.50 + 10 × $15. Includes 8.5 fix hours a month. | $300 a month |
| 30 users, 3 companies | $75 + 2 × $37.50 + 30 × $15. Includes 13.5 fix hours a month. | $600 a month |
| Upgrade 16 to 19, 8 custom modules, 3 Enterprise apps replaced | $2,000 (6 to 15 modules) + 3 × $500 (versions) + 3 × $250 (apps) | $4,250 one time |
| Cleanup, scan finds 120 customizations | 51 to 150 tier | $1,750 one time |
How the price is set
Monthly. At signup, and then every day, our read-only counting tool counts the companies, branches and active internal users in your database automatically. Each monthly invoice is billed on the highest daily count in the billing period, and it lists those counts next to the prices on this page, so you can check every line; the monthly summary shows each day's counts.
Projects. The free scan reads your database without changing it and counts custom modules, installed Enterprise apps, versions and customizations. Those counts go into the published prices above, and the result is your quote. The project fees in the quote are binding for what the scan counts: if the work turns up a module, Enterprise app, company, branch, internal user or customization that existed on the scan date and the scan missed it, that cost is ours. The quote uses the published prices on the report date and holds for 30 days. What the scan does not count, such as integrations, is listed in its report and agreed with you before work starts.
Fix time. Included hours used are taken automatically from the time logged on your tickets; you can see the time on each ticket in the portal, and the monthly summary shows hours used, included and carried forward. Time on an incident caused by our own error is logged but not counted. Included hours you do not use carry forward one billing month and then lapse; they have no cash value. We warn you in the ticket before going over your included hours, going more than 2 hours over needs your approval, and extra time is billed from the logged time in 15-minute steps.
The scan, the quote, and a straight answer about whether you can leave Odoo Online yet are all free.
What you pay others
Because you own the accounts, some costs are billed to you directly and pass straight from you to the provider:
- Hetzner Cloud for the server, usually about $40 to $75 a month, in the US, Germany or Finland.
- Backblaze B2 for backup storage, typically a few dollars a month.
- A transactional mail provider if you do not already have one, often free at small volumes.
- Odoo Enterprise, if you keep it, paid to Odoo. Odoo Community needs no license.
You pay these providers directly, at their own prices, with no markup from us. Because the accounts are yours, your system keeps running if you ever stop paying us. The one exception is Allodi Print: printing goes back to Odoo's standard PDF download.
The flip side of owning the accounts: your server, data and backups sit under your own agreements with Hetzner and Backblaze, and those providers can suspend or delete them under their terms, for example if a payment lapses. Allodi is not part of those agreements and cannot stop or reverse what a provider does to your account. We watch for warning signs, like failing backups, and tell you when we see them, but we may not hear about a provider's action in time to prevent it. Keeping those accounts paid and their notices read stays with you.
Run the free scan
The scan counts what the prices above depend on, changes nothing, and turns the counts into your quote, with project fees that are binding for what it counts. There are three ways to run it; the scan page has the steps. See a sample report and quote first.
The scan file is ready to download and run today. You give your contact details when you send the result file or ask for an upload link.
| Your Odoo runs on | Easiest way | What you send |
|---|---|---|
| Your own server, or a partner's | Run the scan file, allodi_scan.py, on the server | The result file it writes, sent from the scan page or by email: counts and names only |
| Odoo.sh | Run the scan file in the Shell tab, or upload a backup | The result file, or the upload |
| Odoo Online | Upload a backup through a personal link we email you | The database part of the backup; your attachments stay on your computer |
| Your IT staff prefer a direct connection | A read-only database login your administrator creates | Its password, through a secure one-time link |
Free scan: what we see and what we delete
The scan reads Odoo's settings tables: installed modules, custom fields and models, views, actions, automation rules, scheduled jobs, reports, access rules, and the number of companies and users. If you run the scan file without a database name, it also reads the list of database names on your database server, to find yours. It does not read customers, invoices, orders, messages, attachments or passwords, and it opens the database read-only, so the database itself refuses any change.
If you run the scan file, only the result file you choose to send leaves your server. If you upload a backup, its database part reaches us and does hold your business records: it is loaded on a temporary server used only for your scan. Once the scan succeeds, the server and the upload are deleted; if it fails, the upload is kept so it can be run again. A rule on the storage bucket deletes every upload within 7 days of its arrival in any case.
We keep the scan results, the counts and names in your report, as your quote; if you do not become a customer, we delete them within twelve months, or sooner if you ask. They are used for your scan and quote only, and no one else receives them; Backblaze and Hetzner store the upload for us, in the United States, from its arrival until it is deleted.
No contract is needed, and the scan commits you to nothing. If your database holds personal data about people in the EU/EEA, the UK or Switzerland, run the scan file yourself, so that only the result file leaves your server.
Terms in short
| Currency | All prices and invoices are in US dollars, plus Iowa sales tax where it applies. Customers outside the US pay by international wire in US dollars; bank and conversion charges are paid by the sender. |
|---|---|
| Managed Odoo | Billed monthly in advance on the highest daily count of companies, branches and internal users in the billing period (counted automatically every day), on the same day of each month as your start date, with no proration (the last day of the month when a month is shorter). Starts at signup if your Odoo already runs on your own server, at cutover after a Rescue, or on the day we move your production onto our interim servers if an urgent move needs that. The optional 24/7 outage response add-on is $150 a month per subscription or $7.50 per internal user, whichever is more, counted and billed with it the same way; added later, it starts when we switch it on and is first billed on your next monthly invoice, and when you end it by a ticket it comes off the next one. Cancel with thirty days' written notice. No minimum term. |
| Rescue and rehost | Billed in three milestones per database: at signing, at cutover and at handover, as listed above. Managed Odoo starts at cutover. |
| Upgrade and cleanup | Billed in milestones: 30% at start, 40% at staging sign-off, 30% at completion. |
| Payment methods | The first payment is usually made online when you sign the quote: by card for amounts up to $2,500 including tax, or by ACH bank debit or wire for any amount. Each later invoice is due 15 days after its date and is paid the same ways. On a quote you sign now and pay by invoice, the first invoice is also due 15 days after its date. Customers outside the US pay by international wire; bank charges are borne by the payer. |
| Taxes | Prices are plus Iowa sales tax where it applies: for a customer in Iowa, the quote and the invoice show the sales tax as a separate line, at the rate of the billing address (state plus any local option tax). An Iowa business that gives us an exemption certificate (Iowa form 31-014) is not charged. We do not collect sales tax for other states at present. Prices exclude VAT and GST: business customers outside the US provide a VAT or GST number and account for tax under their local reverse-charge rules. In Europe (the EU, the UK, Switzerland, Norway, Iceland and Liechtenstein) Allodi sells only to VAT-registered businesses: the quote needs your VAT number, we check it (EU numbers in the EU's VIES register), and the quote and invoices charge no VAT and say “Reverse charge: VAT to be accounted for by the recipient.” |
| Paused projects | If a project waits on you, we send notices at 30 and 60 days, and at 75 days it goes on hold at twice the monthly Managed Odoo fee for your database, until you resume, take everything we have built, or ask us to delete it. If hold fees go unpaid for 60 days, we send a final notice, and 15 days later offer a full export for 30 days before deleting the project from our servers. |
| Your own hardware | Managed Odoo on a server you own, on premises or in your data center: same monthly price, plus a one-time $375 onboarding fee for the site assessment and install. Needs Ubuntu 24.04, our minimum specification and a UPS. Hardware, power and network stay with you. If the hardware fails, we can restore your latest backup to a cloud server at our $150 hourly rate (typically 2 to 4 hours), with hosting at cost. |
| Another cloud provider | Managed Odoo on a server in your own AWS, Microsoft Azure, Google Cloud, DigitalOcean or similar account: same monthly price, plus a one-time $375 setup fee. Needs Ubuntu 24.04 and our minimum specification. The provider bills you directly at its rates, usually more than Hetzner for the same server. |
| Customers | Registered businesses of any size. |
| Your code | Custom modules we write are delivered to your repository with full source and licensed to you under LGPL-3, the license of Odoo Community, so they remain usable with any provider. We keep the copyright (master services agreement, section 9.3). |
| Contracts | A master services agreement, a statement of work for each project, the Managed Odoo service description, an acceptable use policy and the portal terms, plus a data processing agreement for EU/EEA, UK and Swiss customers. Every document is linked on your quote, with its version, before you sign, and the current versions can be read now on How to start. |
Questions people ask
How much does Odoo support cost per user?
Managed Odoo is $15 a month per internal user, plus $75 a month for the first company. For 10 users in one company that is $225 a month, or $22.50 per user, with 4.5 fix hours included. Our article on support pricing per user works through more sizes.
What does the monthly fee include?
Server operations and security patching, monitoring, nightly backups to your own Backblaze bucket with a monthly restore test, the support portal, and fix hours: 2 per company plus 15 minutes per internal user each month, pooled.
Are portal users charged?
No. Portal users, such as customers and vendors who log in to see their own documents, are free. Only active internal users are counted.
What does work beyond the included hours cost?
$150 an hour, in 15-minute steps. We warn you in the ticket before going over your included hours, and going more than 2 hours over needs your approval.
Is there a contract or minimum term?
Managed Odoo is month to month with no minimum term, and you can cancel with thirty days' written notice. Projects such as a rescue or an upgrade are billed in milestones.
What else do we pay, and to whom?
Hetzner for the server, usually about $40 to $75 a month, and Backblaze for backup storage, typically a few dollars, both billed to you directly. Odoo Enterprise, if you keep it, is paid to Odoo. We add nothing to those bills.
How do we get our quote?
Run the free scan. It counts what the prices depend on without changing your database. The one-time project fees in its quote are binding for what the scan counts; the monthly Managed Odoo fee is an estimate that follows the daily counts. The quote holds for 30 days.
How do we sign up?
Run the free scan; sending your estimate from this page first is optional. A person at Allodi sends your quote from the scan result. You read the contract documents on the quote page, sign, and pay the first payment online. Your welcome email, portal login and onboarding ticket follow once you have signed and any payment due at signing is made or under way. How to start has every step, with timings.
Turn your estimate into a quote
The free scan reads your database without changing it, confirms the counts, and gives you a quote we stand behind.
- Plans, add-ons and hourly rates are published; larger projects are quoted up front, and the project fees in the free scan's quote are binding for what the scan counts.
- On a move, the start milestone is refunded if your database cannot run on the new server, unless the cause is on your side or a third party refuses to release your data (conditions).
- Managed Odoo is month to month: thirty days' notice, no minimum term.
- Your server, code, backups and credentials are in your company's name.
Or call us: +1 515-644-1400, any time.