Way4Tech
๐Ÿ”Strategy

Odoo Health Audit

An audit is worth buying when you need an independent answer, especially about work that someone else did.

A 2-week audit covering code quality, database health, security, workflow efficiency, and license compliance, with a 50-page written report.

Most audits get commissioned for one of three reasons: the system has become slow and nobody can say why, a vendor relationship is ending and you need to know what you are inheriting, or an upgrade is being considered and the custom code is an unknown. All three need the same thing, which is somebody reading what is actually installed rather than what the documentation claims.

The audit covers code quality and security, database health and performance, module inventory including what was installed and abandoned, workflow efficiency, and licence exposure. It is a read-only exercise. Nothing is changed on your system during it, so the findings can be discussed without anyone worrying about what we already did.

The output is the published written report and an executive session, plus the part people use most: a ranked list of fixes with effort against each, so you can act on it with any vendor, including your current one.

What is included

  • โœ“ Code quality & security review
  • โœ“ Database performance analysis
  • โœ“ Unused/legacy modules audit
  • โœ“ Workflow efficiency review
  • โœ“ License compliance check
  • โœ“ Security hardening checklist
  • โœ“ 50+ page written report
  • โœ“ Executive briefing session

How the engagement runs

  1. 1

    Access and scoping

    Get read access and agree what is being judged and against what.

    • Read-only database and code access, and a copy of the instance to work on where possible
    • Agree the scope: technical only, functional only, or both
    • Establish what triggered the audit, since that decides where to dig first
    • Confirm what may be looked at and what is off limits, particularly with sensitive data

    You end up with: An agreed scope and working access, with nothing writeable.

  2. 2

    Technical review

    Find out what the system is really made of.

    • Inventory of every installed module: standard, third-party, custom, and their sources
    • Read the custom code for core edits, missing access rules, injection and permission risks, and upgrade blockers
    • Database review: size, growth, index health, the queries that dominate load, table bloat
    • Infrastructure review: backups and whether they have been restored, patch level, access control, certificates
    • Integration review: error handling, retries, and whether failures are visible

    You end up with: A technical findings list, each item rated by severity and effort.

  3. 3

    Functional review

    See where the configuration is fighting the business.

    • Compare the configured process against how people actually work, including the spreadsheets
    • Find the manual steps that exist only because the system was never configured to do them
    • Identify unused modules and abandoned configuration that still costs performance and confusion
    • Check the reporting: what people use, what they rebuild by hand, and why

    You end up with: A functional findings list tied to the process it affects.

  4. 4

    Reporting

    Deliver something that can be acted on rather than filed.

    • Written report covering every area in scope, with evidence behind each finding
    • Findings ranked by business risk, with effort against each so they can be budgeted
    • A short list of quick wins, separated from the structural items
    • Plain-language summary for people who will not read the technical section

    You end up with: The written report, the ranked fix list, and an executive briefing session.

  5. 5

    Optional remediation

    Fix the ranked list, with you choosing who does it.

    • Quick wins delivered as a short piece of work if you want them cleared immediately
    • Structural items scoped as separate projects with their own estimates
    • A re-audit after remediation where evidence of improvement is needed
    • Handover to your own team or to another vendor where you prefer

    You end up with: A remediation plan you can execute with anyone.

What you need to provide

The schedule slips on these more often than on anything technical.

  • โ†’ Read access to the database, the code and the hosting, or a full copy of the instance
  • โ†’ The source of every custom module, or written permission to obtain it
  • โ†’ A contact who can explain why the odd configuration decisions were made
  • โ†’ Your list of current complaints, since those point at where to look first
  • โ†’ Access to the reporting people actually use, including the spreadsheets that shadow the system
  • โ†’ Clarity on any data that must be masked before we work on a copy

Decisions you will be asked to make

Technical, functional, or both

A slow system is a technical audit. A system people avoid is a functional one. Most instances that get audited turn out to have both, and buying only one half tends to produce a report that explains the symptom rather than the cause.

Who sees the report

An audit that names problems will implicate decisions someone made. Deciding the audience before it is written keeps it direct rather than diplomatic to the point of uselessness.

Whether to remediate with the incumbent

The ranked list is written so any competent vendor can execute it. Keeping the incumbent is often the right call, and the report gives you the specifics to hold them to.

How deep to go on the custom code

A full line-by-line review of a large custom estate is a bigger piece of work than a survey. The survey is right for an upgrade decision. The full review is right when you are taking ownership of the code.

Where this goes wrong

The failure modes we plan around, and what the plan does about each one.

An audit that changes things while looking

Fixes applied during the review contaminate the findings and leave you unable to tell what was wrong from what we did. The audit is read-only, and remediation is separate.

Findings with no effort attached

A list of two hundred issues with no cost against them cannot be budgeted, so it gets filed. Every finding carries a severity and an effort so a real plan comes out of it.

Symptom hunting

Slowness reported as a fact leads to guesses. Load is measured, the dominant queries are identified, and the finding names the cause rather than the feeling.

Ignoring what people do outside the system

The spreadsheets are the map of where the configuration failed. An audit that only reads the database misses the most useful evidence in the building.

A report written to be diplomatic

Softened findings get ignored, then quoted back later when the problem is worse. Findings are written plainly, with the evidence attached, and the tone is managed by choosing the audience rather than by blurring the content.

No re-check after remediation

Work gets done and nobody verifies it closed the finding. A re-audit is offered specifically so improvement can be evidenced rather than claimed.

Not included

Stated up front so the proposal has no soft edges.

  • ร— Fixing what is found: remediation is quoted separately and you choose who does it
  • ร— Legal opinion on licence compliance, which we flag as exposure for your advisers to judge
  • ร— Penetration testing and formal security certification, which are specialist engagements
  • ร— Judging the commercial conduct of a previous vendor
  • ร— Reviewing code we are not permitted to see, which is recorded as an unknown rather than passed
  • ร— Ongoing monitoring, which belongs in a support agreement

How this is priced

The audit is a fixed-price two-week engagement producing the written report and an executive briefing. Remediation is quoted separately from the ranked list, item by item, so you can take part of it or none of it.

See the published bands โ†’

Modules that come up on this work

Ready-built modules from our own catalogue. Where one of these covers the requirement, installing it beats writing it.

Audit Log & Access Tracking

Track who created, changed or deleted records - full audit trail with field-level history and access-rights tracking.

Why here: A common finding is that nobody can tell who changed a record. This closes it directly.

Productivity

Cloud Backup Pro - Multi-Destination Encrypted Database & Filestore Backup

Encrypted, scheduled Odoo database + filestore backup to S3, SFTP, Local NAS, Google Drive, Dropbox and OneDrive. GFS retention, integrity verification, one-click restore, health dashboard, email/webhook alerts.

Why here: Unverified backups are the single most frequent serious finding, and this is the usual remediation.

Tools

Stock Aging Pro - Slow-Moving, Dead Stock & Carrying Cost

Inventory aging analysis with bucketed report (0-30/31-60/61-90/91-180/181-365/365+), carrying-cost estimate, slow-mover & dead-stock detection, monthly snapshots with trend, write-off wizard, weekly email digest, PDF report. Both Community and Enterprise miss this - your inventory team will thank you.

Why here: Inventory findings often need aged stock visible before anyone can act on the recommendation.

Inventory/Reporting

Dynamic Financial Reports

Dynamic Balance Sheet, Profit & Loss, Trial Balance, General Ledger, Partner Ledger, Aged Receivable / Payable, Cash Flow and Tax Report with comparison, PDF and Excel.

Why here: Where finance rebuilds reports in spreadsheets, that is the finding, and closing it removes the shadow process.

Accounting/Accounting

Dashboard Builder - Drag & Drop KPI Dashboards

Build live KPI dashboards on any Odoo model - numbers, bar charts, ranked lists & progress, with drag-and-drop tiles.

Why here: Audits routinely find that managers cannot see their own numbers, which is why the shadow reporting exists.

Productivity

An Odoo health check on the database you already run: Odoo optimization for speed, customisation debt, upgrade readiness and what it would cost to fix.

Where we deliver this

An audit checks that local accounting and payroll setup is current. The country pages set out what that means where you are.

All 18 countries โ†’

Odoo Health Audit: common questions

What do we actually get?

A written report covering every area in scope, with evidence behind each finding, a ranked fix list with effort against each item so it can be budgeted, a separate quick-wins list, and a briefing session for the people who will not read the technical section.

Will you change anything on our system?

No. The audit is read-only, usually on a copy. That is deliberate: findings you can discuss without wondering what we already touched are worth more, and it keeps the remediation decision genuinely yours.

Can you audit work done by another partner?

Yes, and it is one of the most common reasons the audit is bought. The report describes what is there and what it will cost to fix, not who to blame. It is written so you can hand it to the incumbent and hold them to specifics.

How long does it take?

Two weeks for the standard engagement, driven mostly by how much custom code there is and how quickly access arrives. Access delays are the usual reason an audit runs long.

Is this useful before an upgrade?

Very. The single biggest unknown in an upgrade quote is the state of the custom code, and the audit turns that into a per-module effort figure. That is why it is often bought as the first step of a migration decision rather than as a separate exercise.

What if the report says our system is fine?

Then you have an independent answer and you stop guessing, which is worth the fee on its own. It happens. What is more common is that the system is sound and the problem is a handful of specific things, which is a much better position than a general unease about the whole thing.

Read next

Tell us what you are trying to fix

A 30-minute call is usually enough to tell you whether this is a small piece of work or a project, and to say so before anyone writes a proposal.