Back to all articlesAccounting

Odoo 19 analytic accounting: allocate shared costs before comparing projects

Allocate a shared HKD cost, reconcile both project totals and interpret a management margin without confusing it with cash or statutory profit.

APAAPublished Content updatedApplies to Odoo 19
Odoo 19 analytic accounting: allocate shared costs before comparing projects
Illustrative cover image, not an Odoo operation screenshot or client case.

Applicability

Odoo 19 Accounting with Analytic Accounting enabled; accounting configuration and posting rights required. Confirm the installed edition and subscribed app entitlement before setup. Online, Odoo.sh and on-premise databases may have different installed modules.

Research method

Research of official Odoo 19 documentation, including its published source where pages were unavailable; examples are fictitious editorial calculations. No new Odoo product testing, customer case study or hardware trial was performed.

Use analytic accounts to answer “Which project consumed this cost?” before comparing project margins. A general-ledger expense account answers a different question: what kind of expense occurred.

Contents

Set up one dimension first

Enable Analytic Accounting in Accounting → Configuration → Settings. Create a Project plan and an analytic account for each project. A separate Department plan can represent another dimension. Optional, Mandatory and Unavailable applicability control whether distribution is required. Add percentages in the invoice/bill line’s Analytic Distribution field. Official setup and distribution rules.

For a first allocation, record the basis in a working note: approved hours, occupied space or another stated driver. Do not copy the same expense into several general-ledger lines merely to obtain a management split.

Worked example: two Hong Kong projects

All figures below are fictitious, in HKD, for one month; no tax, depreciation or financing adjustments are included. Shared support costs are HKD 12,000. The agreed allocation driver is 60 hours for Project A and 40 for Project B.

ItemProject AProject BTotal
Revenue40,00030,00070,000
Direct costs20,00012,00032,000
Shared costs7,2004,80012,000
Management contribution12,80013,20026,000

A receives 60 ÷ 100 = 60%; B receives 40%. Therefore 12,000 × 60% = 7,200 and 12,000 × 40% = 4,800. A’s margin is 12,800 ÷ 40,000 = 32%; B’s is 13,200 ÷ 30,000 = 44%. The control total is 70,000 − 32,000 − 12,000 = 26,000.

Read the result and investigate gaps

A has more sales but a lower contribution percentage under this allocation basis. That is a question for pricing and delivery review, not evidence that A is unprofitable under every possible allocation. Neither figure proves collection of customer cash or statutory profit.

For your project report, use the same month, company and currency; inspect both revenue and costs assigned to each analytic account. Compare assigned totals with the intended ledger population. Missing revenue, unallocated shared bills and an unsuitable driver can each change the apparent winner. Distribution models can prefill percentages under specified conditions; review those conditions before trusting defaults.

Continue the work

Connect project revenue to sales-order invoicing, then separately review bank reconciliation for cash settlement. APAA can help define the allocation basis and exception owner through the contact page.

The cover is a generic illustration, not an Odoo 19 operation screenshot.

Sources

  • Odoo 19 — Analytic accounting

    Analytic plans, accounts, applicability and percentage distribution; not statutory profit or cash flow.

    Source checked

Considering Odoo for your business?

Talk to APAA about a tailored Odoo implementation for your Hong Kong SME.

Enquire about Odoo services
Odoo 19 analytic accounting: allocate shared costs before comparing projects | APAA