What UAE Businesses Actually Customise in Odoo — an analysis of 140 modules across 10 implementations

Every Odoo buyer in the UAE asks the same question, ten minutes into the first meeting: how much of this will we have to customise? The honest answer has always been "it depends". This time I counted instead — 140 modules across 10 Odoo implementations delivered by the team I lead in Dubai.

Key findings

  1. Most modules were engineered, not merely installed. 111 of the 140 (79%) were built in-house or reworked; only 29 were left alone.
  2. Accounting is the biggest customisation surface. 48 of 140 modules extend Odoo's account app — 34%, more than twice the next app.
  3. A fifth of customisation exists to answer questions. Reporting and dashboards: 29 modules, 20%.
  4. Payroll is the least customised area. HR and payroll is 3 modules, 2% — the smallest theme.

Why I ran this

Ask a software vendor how much customisation an ERP needs and you get one answer; ask an implementation partner and you get the opposite. Both are marketing. The evidence, meanwhile, was sitting in ten git repositories, and code has no commercial position to defend: a manifest records which Odoo app a module extends, and a git log records how much work happened after a third-party app was installed.

How the data was derived

Every __manifest__.py file across 10 Odoo implementation repositories was parsed programmatically, producing 140 modules. "Module" here means an add-on module carried in the implementation repository — written in-house or bought in — not Odoo's own core apps. Each was classified from evidence in the repository, not recollection:

  • Built from scratch (63 modules) — authored in-house, identified from the manifest author field and our naming convention.
  • Adapted in-house (48 modules) — a third-party app with more than one commit touching it in git history: work after import, read from the commit log rather than asserted.
  • Installed as-is (29 modules) — present with no post-import commits at all.

App-extension counts come from each manifest's depends list; theme counts from keyword classification of module name, manifest name and summary. A module usually depends on several apps, and can carry more than one theme — a POS report counts under both — so neither the app percentages nor the theme percentages sum to 100%. Every percentage on this page is a share of the same 140 modules, not a share of a category. No client is named: the implementations are impl-A to impl-J, and no third-party app or vendor is identified.

Limitations

This is a small study; better that you know its limits than discover them:

  • n = 10. Ten implementations show a shape. They do not prove a distribution.
  • It is one consultancy's portfolio, shaped by which clients hired us rather than sampled from the market. This is not a representative sample of the UAE Odoo market.
  • Module count is a proxy for effort, not a measure of it. One module is a two-field tweak, another a quarter of engineering. Nothing here estimates cost or time.
  • The sample is uneven. Implementations carried between 1 and 34 modules, median 8, so a few large projects drive the totals.
  • "Adapted" is a mechanical definition. An app heavily configured but never edited in code counts as installed as-is, because git cannot see configuration.
  • This was a team's work. I am Head of Projects: these are implementations I have led, written by a team of engineers, not by me alone.

Finding 1: the ledger absorbs the most customisation

48 of the 140 modules — 34% — declare a dependency on account, Odoo's accounting app: more than twice the next app, point_of_sale at 22 modules (15%).

Odoo apps most often extended by custom modules Horizontal bar chart of the eight Odoo apps most frequently extended across 140 custom modules in 10 implementations. account leads with 48 modules, 34 percent; point_of_sale 22 modules, 15 percent; sale_management 20 modules, 14 percent; mail 17 modules, 12 percent; stock 17 modules, 12 percent; product 10 modules, 7 percent; purchase 10 modules, 7 percent; sale 10 modules, 7 percent. A module usually depends on several apps, so the percentages do not sum to 100. The horizontal axis counts modules from 0 to 50. Which Odoo apps get extended Modules declaring a dependency on each app — a module usually depends on several account 48 (34%) point_of_sale 22 (15%) sale_management 20 (14%) mail 17 (12%) stock 17 (12%) product 10 (7%) purchase 10 (7%) sale 10 (7%) 0 10 20 30 40 50 modules extending the app (of 140; apps overlap, so percentages exceed 100)
Apps extended by the 140 modules analysed; percentages are of 140. Modules usually depend on several apps, so the shares do not sum to 100%.
Table 1. Odoo apps most often extended
Odoo appModulesShare of 140
account4834%
point_of_sale2215%
sale_management2014%
mail1712%
stock1712%
product107%
purchase107%
sale107%

Source: depends lists parsed from 140 module manifests. Modules usually depend on several apps.

The UAE reason is not mysterious. VAT changed what an invoice has to prove; e-invoicing is changing what an invoice has to be; corporate tax laid a second reporting frame over the same ledger; and mainland-plus-free-zone group structures multiply all of it by the number of companies. All of it lands on the journal entry, the tax grid, the report — the detail is in my guides to UAE VAT in Odoo and the e-invoicing mandate.

Two other entries reward a second look. point_of_sale at 22 is high for an app only some of these businesses run at all: when a business does run a till, it customises it hard — the pattern behind our POS work for UAE retail. And mail at 17 (12%) is not messaging: it is approvals and notifications.

Finding 2: a fifth of all customisation exists to answer questions

By theme rather than by app, accounting and finance leads with 36 modules (25%). The second-placed theme is the more interesting: reporting and dashboards, 29 modules, 20%.

What the custom modules were built to do, by theme Horizontal bar chart of ten customisation themes across 140 custom modules in 10 implementations. Accounting and finance 36 modules, 25 percent; reporting and dashboards 29 modules, 20 percent; POS and retail 24 modules, 17 percent; sales and CRM 22 modules, 15 percent; industry-specific 21 modules, 15 percent; access and security 17 modules, 12 percent; inventory and warehouse 14 modules, 10 percent; workflow and automation 10 modules, 7 percent; integration and connector 5 modules, 3 percent; HR and payroll 3 modules, 2 percent. A module can carry more than one theme, so the percentages do not sum to 100. The horizontal axis counts modules from 0 to 40. What the customisation was for Modules by theme — a module can carry more than one theme Accounting / finance 36 (25%) Reporting / dashboards 29 (20%) POS / retail 24 (17%) Sales / CRM 22 (15%) Industry-specific 21 (15%) Access / security 17 (12%) Inventory / warehouse 14 (10%) Workflow / automation 10 (7%) Integration / connector 5 (3%) HR / payroll 3 (2%) 0 10 20 30 40 modules in the theme (of 140; themes overlap, so percentages exceed 100)
Modules by theme; themes overlap, so percentages do not sum to 100%.
Table 2. Custom modules by theme
ThemeModulesShare of 140
Accounting / finance3625%
Reporting / dashboards2920%
POS / retail2417%
Sales / CRM2215%
Industry-specific2115%
Access / security1712%
Inventory / warehouse1410%
Workflow / automation107%
Integration / connector53%
HR / payroll32%

Source: keyword classification of module name, manifest name and summary. Themes overlap.

One module in five does nothing operational. It books no sale, moves no stock, posts no entry — it exists so somebody can see something. Standard Odoo reporting answers standard questions well; what it cannot know is the handful of numbers a particular business runs on.

The same figure carries a warning: reporting is the easiest customisation to ask for and to accumulate. A fifth of the work is well spent if those reports are load-bearing, and waste if they were built once and never opened again.

Finding 3: most bought modules needed work after they were installed

48 of the 140 modules were third-party apps our team had to change after installing them — more than one commit each in git history. Only 29 came through untouched, so across these repositories more bought modules were edited than survived unedited. The three most-worked carried 41, 23 and 20 commits; the next two carried 13 each.

Forty-one commits is not a bug fix. That is sustained engineering on somebody else's codebase: fitting it to a chart of accounts it never anticipated, a tax treatment it did not implement, a workflow its author never saw. The listing price buys a starting position, not a finished feature.

So budget a bought module as a component, and ask before you buy who maintains the modified version through the next upgrade — one of the sharper questions for a prospective partner.

Finding 4: payroll is the dog that did not bark

HR and payroll is the smallest theme: 3 modules, 2%, last of the ten categories. I expected more, because UAE payroll carries real local obligations and clients ask anxious questions about it.

Two explanations fit and this data cannot separate them: either standard Odoo payroll and its localisation are sufficient here, or payroll never came into Odoo at all. My experience says mostly the second — but this study measures what was customised, not what was implemented, and I would rather flag the ambiguity than dress an opinion up as a finding.

What this means if you are buying Odoo

  • Budget the ledger first. Accounting led by app (48 modules) and by theme (36) — where UAE implementation cost tends to land.
  • Ask what "reporting" means before you sign. A fifth of the work here was reporting; "standard reports" usually becomes a change request later.
  • Price third-party apps as components. 48 needed work after purchase, the most-worked carrying 41 commits. Ask who owns the modified version at upgrade.
  • Expect a small project to be genuinely small. These ranged from 1 to 34 modules, median 8 — the typical project is single-digit.
  • Do not read customisation as failure. 111 of 140 modules being built or reworked is what a platform is for; the question is whether each earns its maintenance.

Cite this research

These findings are free to quote, chart and reproduce with attribution under a Creative Commons Attribution 4.0 licence. A link back is all I ask.

Khan, M. S. A. (2026). What UAE Businesses Actually Customise in Odoo: an analysis of 140 modules across 10 implementations. salmanalikhan.com. https://salmanalikhan.com/odoo-customization-research/

Anyone who wants the derivation behind a figure can ask, and I will explain it within the limits of client confidentiality.

Nothing here identifies a client, an industry that would identify one, or a third-party app vendor. The figures describe modules and commits, not businesses.

Frequently asked questions

How was this data collected?
Every __manifest__.py file across 10 Odoo implementation repositories was parsed programmatically, producing 140 modules. Each was classified as built from scratch, adapted in-house or installed as-is, from the manifest author field and the module's git commit history rather than recollection.
Is this a representative sample of the UAE Odoo market?
No, and it should not be read as one. These are 10 implementations from one consultancy's portfolio, shaped by which clients hired us rather than sampled from the market. It shows the shape of customisation inside that portfolio, nothing wider.
Why does accounting attract the most customisation?
In this sample 48 of 140 modules extend Odoo's accounting app, 34% of the total. The likeliest explanation for a UAE portfolio is that VAT, e-invoicing readiness, corporate tax reporting and multi-entity group structures all land on the same ledger, so the accounting layer accumulates every one of those changes.
Does a high customisation rate mean Odoo is not good enough out of the box?
No. 111 of 140 modules being built in-house or reworked says more about what businesses need than about what the platform lacks. The useful question is not whether you will customise, but whether each customisation earns the maintenance it costs at every upgrade.
Can I cite or reuse these numbers?
Yes. The findings are published under a Creative Commons Attribution 4.0 licence: quote, chart or reproduce them with attribution and a link back to this page. A suggested citation line is in the Cite this research section above.

Want an honest read on what your Odoo project will actually need?

I'm Muhammad Salman Ali Khan, an Odoo Techno-Functional Consultant in Dubai and Head of Projects at Techbot Information Technology LLC, a UAE Odoo partner — 10+ years, 100+ implementations, certified on Odoo v13, v14, v15, v16, v18 and v19, and I presented Odoo 19 at Odoo Experience 2025 in Brussels. Tell me what you are trying to run and I will tell you which parts Odoo covers and which somebody must build.

Get a free business evaluation