Configuration is not
customization.
Standard Odoo implementation involves significant configuration work: setting up your chart of accounts, tax codes, product categories, warehouses, approval workflows, email templates, report layouts, and user access controls. None of that requires a developer. None of it creates upgrade risk.
Customization is when Python or JavaScript code is written to change how Odoo works beyond what its settings allow. A new field added via the interface is configuration. A new field added by a developer modifying a database model is customization.
The distinction matters because configuration upgrades with Odoo automatically. Custom code does not.
Is your process optimal,
or just familiar?
Many "unique" workflows that seem to require customization evolved around the limitations of an old tool, not because they represent the best way to do the work. Before writing code to match an existing process, we ask: does the standard Odoo approach produce the same business outcome?
If the answer is yes — if users can learn the Odoo way and achieve the same result — we configure rather than code. The burden of proof is on customization, not on standard.
"We customized it to match how we work in our old system" is how you get a system that costs more to maintain than the one you replaced.
Things most businesses think
require custom — but do not.
These are the most common areas where businesses expect to need custom development and discover standard Odoo already handles it — when configured properly.
Odoo ships with a configurable chart of accounts and full Canadian tax support. GST, HST, PST, QST — all configurable, no custom code required.
Standard Odoo handles CAD as primary currency, multi-currency transactions, and exchange rate management. No custom development needed.
Labour, material, PO, and subcontractor costs posting to a job — this is standard Odoo project and accounting configuration. Most construction and field service firms do not need custom code for job costing.
Standard Odoo Inventory supports multiple warehouses, locations, lot and serial number tracking, and landed costs. Almost no custom code required for typical distribution or manufacturing inventory needs.
PO approval thresholds, multi-level approval, and email notifications are built into standard Odoo. No custom workflow engine required.
Odoo's customer portal — where customers can view invoices, make payments, and track orders — is standard. No custom web development.
Situations where custom
development is the correct call.
Customization is not always wrong — it is just expensive and should clear a high bar. Here are the situations where we recommend it without hesitation.
If your pricing, costing, or billing involves calculations that Odoo's standard formula engine cannot express — specific to your trade or industry — custom development is the right answer.
Connecting Odoo to a system that does not have a maintained Odoo connector — a legacy ERP, a specialized field data tool, an industry platform — requires custom API integration code.
Government or regulatory reports with a specific format or submission protocol that Odoo's standard reporting does not cover are worth building as a custom report. Especially relevant for Alberta energy sector compliance reporting.
If your old system had custom logic that your operations genuinely depend on — and that logic does not map to any Odoo standard — rebuilding it in Odoo is reasonable.
If a specific user interface is mission-critical — a simplified tablet UI for a production floor, a specialized mobile form for field technicians — custom front-end development may be warranted.
What customization costs
at every major Odoo upgrade.
Odoo releases a major version every year. Each upgrade requires testing and often rewriting custom code. This is the cost that most customization conversations skip.
| Customization level | Upgrade cost (per version) | Upgrade time | Risk |
|---|---|---|---|
| No customization | $0 – $2,000 | 1–3 days | Low |
| Light customization (1–5 custom fields/reports) | $1,000 – $4,000 | 3–7 days | Low-medium |
| Moderate customization (1–3 custom modules) | $4,000 – $12,000 | 2–4 weeks | Medium |
| Heavy customization (multiple modules, modified core) | $12,000 – $40,000+ | 4–12 weeks | High |
Estimates based on typical Odoo upgrade projects. Actual cost depends on code quality and documentation of the original custom work.
How to decide: standard
or custom.
Before concluding that something requires custom code, have an experienced implementer demonstrate the standard Odoo behaviour. Many features exist that are not obvious from a demo.
If the requirement comes from "this is how we have always done it," ask whether the outcome (not the process) can be achieved the standard way. Process changes are cheaper than custom code.
Price the custom work, then multiply by 1.5 to account for the first upgrade. Custom code that saves $2,000/year in manual work but costs $8,000 to build and $4,000 to upgrade every two years is breakeven at best.
Custom code for a core operational requirement — one that directly affects your ability to serve customers or manage costs — is easier to justify than code that makes a report look the way one user prefers.
Undocumented custom code is a liability. Before approving custom development, confirm that the code will be documented, version-controlled, and tested — and that you will receive the source code as part of the engagement.
We scope before we code.
Every time.
Our ERP Blueprint discovery process is specifically designed to surface where standard Odoo covers your requirements and where genuine gaps exist. You get a written scope document that distinguishes configuration work from custom development — with explicit pricing for each. No surprises.
If we have been brought in to rescue a project where over-customization is the problem, we assess what can be replaced with standard Odoo and what is worth keeping. In most rescue situations, the answer is: more standard than the original implementer used.