Enterprise Structure: The Org Model
Before any transaction can exist, the ERP must know who the company is. The org structure is the skeleton: every document, balance, and stock quantity hangs off it. Getting it wrong is the most expensive mistake in an ERP implementation, because it cannot be changed after go-live without effectively re-implementing.
The universal concepts
Every ERP has these, under different names.
| Concept | What it is | SAP | Dynamics 365 F&O | NetSuite | Odoo |
|---|---|---|---|---|---|
| Group / Instance | The whole installation | Client (Mandant) | Instance | Account | Database |
| Legal entity | A company that files accounts and tax returns | Company Code | Legal Entity | Subsidiary | Company |
| Consolidation group | Set of entities reported together | Controlling Area / Group | Consolidation company | Parent subsidiary | Company hierarchy |
| Operating unit | Where sales happen | Sales Organisation | Sales unit / OMOP | Subsidiary + Dept | Sales Team |
| Purchasing unit | Where buying happens | Purchasing Organisation | Purchase unit | Subsidiary | Purchase Team |
| Site / Plant | Physical operating location | Plant (Werk) | Site | Location | Warehouse |
| Storage location | Sub-area of a site | Storage Location | Warehouse | Location/Bin | Location (hierarchical) |
| Bin | Physical slot | Storage Bin (EWM) | Location | Bin | Location |
| Cost object | Where cost lands | Cost Centre | Cost Centre (dimension) | Department | Analytic Account |
| Profit object | Where margin lands | Profit Centre | Business Unit | Class | Analytic Account |
The critical distinction: legal vs managerial
LEGAL DIMENSION MANAGERIAL DIMENSION
(what the law requires) (what management wants)
Group / Parent Business Segment
│ │
┌──────┴──────┐ ┌──────┴──────┐
Company A Company B Division X Division Y
(files tax) (files tax) │ │
│ │ Cost Centres Cost Centres
Ledger Ledger Profit Centres
- Legal: fixed by law, one balance sheet per legal entity, currency and GAAP dictated by jurisdiction.
- Managerial: whatever the CFO wants, changes with reorgs, must be re-mappable without touching the legal books.
Design rule: never encode managerial structure into legal structure. If “Division” is a company code, every reorg becomes a migration project. Divisions belong in dimensions/cost centres/profit centres.
The pieces in detail
Legal entity (Company Code)
- The level at which you produce a balance sheet and P&L.
- Has: a currency (local/company-code currency), a chart of accounts, a fiscal year variant, a country, a tax registration.
- One legal entity = one set of books. Documents post to exactly one.
- Cross-entity transactions become intercompany postings — see Intercompany and Consolidation.
Plant / Site
- A place where you make, store, or ship things.
- Owns: inventory, MRP parameters, production capacity, purchasing defaults.
- Assigned to exactly one legal entity (the entity that owns the stock).
- A plant can be a factory, a warehouse, a shop, a service depot, a 3PL location.
Storage location / Warehouse
- Subdivision of a plant where stock quantity is tracked.
- Typical split:
RAW(raw materials),WIP,FG(finished goods),QI(quality inspection),BLK(blocked),RET(returns). - Not all storage locations are valuated separately — that’s usually at plant/valuation-area level.
Sales organisation / distribution channel / division
The classic sales dimension triple:
- Sales org — legal seller, owns terms and pricing responsibility
- Distribution channel — retail vs wholesale vs online vs export
- Division — product line grouping
Together they form the sales area, which drives pricing, output, and customer master extension.
Purchasing organisation / group
- Purchasing org — negotiates and owns contracts
- Purchasing group — the buyer or buying team (a person-level assignment used for workflow and reporting)
Cost centre
- Where costs are collected. Departments, machines, teams.
- Hierarchical, effective-dated, must be assigned to a legal entity.
- Never earns revenue.
Profit centre / Business unit / Segment
- Where responsibility for margin sits. Can produce a partial P&L.
- Often maps to a product line or region.
- Used for segment reporting (IFRS 8), which is a legal requirement for listed companies.
Controlling area / Cost accounting ledger
- The scope inside which cost allocations can flow. Multiple legal entities can share one controlling area if they share a chart of accounts and currency setup — that enables cross-company cost allocation.
Worked example
A Bangladeshi garment manufacturer:
Group: Meridian Holdings
│
├── Company Code 1000 — Meridian Apparels Ltd (BDT, Bangladesh, VAT reg 1234)
│ ├── Plant DHK1 — Dhaka sewing factory
│ │ ├── SLoc RAW — fabric & trims store
│ │ ├── SLoc WIP — cutting/sewing floor
│ │ ├── SLoc FG — finished goods
│ │ └── SLoc QI — quality hold
│ ├── Plant CTG1 — Chattogram washing unit
│ ├── Sales Org 1000 — Export sales
│ │ ├── Dist. Channel 10 — Direct to brand
│ │ └── Dist. Channel 20 — Via buying house
│ └── Purchasing Org 1000
│
├── Company Code 2000 — Meridian Trading FZE (USD, UAE)
│ └── Plant DXB1 — Jebel Ali bonded warehouse
│
Cost centres: CUT-01, SEW-01..12, WASH-01, QC-01, ADMIN, IT, HR
Profit centres: PC-KNIT, PC-WOVEN, PC-DENIM
Note: a shipment from DHK1 to DXB1 crosses legal entities → intercompany sale, transfer price, two sets of books, elimination at consolidation.
Rules learned the hard way
- Fewer legal entities is always better. Each one costs audit fees, tax filings, intercompany reconciliation, and close effort. Don’t create one for a reporting need.
- One plant per physical location, not per business function. Two “plants” at the same address create phantom stock transfers.
- Storage locations are cheap; plants are expensive. Use storage locations for granularity.
- Cost centre codes should be meaningless or hierarchical, never semantic-overloaded. Codes like
SEW-DHK-2024-NIGHTbecome garbage after one reorg. - Never reuse a code. Retire and create new. Reused codes destroy historical reporting.
- Design for the next 5 years of acquisitions, because you will not get to redo this.
Impact on your code
Every custom table you create will need org fields. The near-universal minimum:
company_id -- legal entity, mandatory, drives security and posting
site_id -- plant/warehouse, where applicable
cost_center_id -- for anything with cost
currency_code -- transaction currency
posting_date -- drives period determination
And every query you write must be filtered by the user’s authorised org scope. Org fields are the primary authorisation dimension in ERP security — see Security Model and RBAC.