Profit Centers / Segment Accounting

Business Units β€” one company, multiple profit centers

Track revenue, costs and performance of each business line independently within a single legal entity (one Π„Π”Π ΠŸΠžΠ£) β€” without creating separate companies. Allocation rules, internal invoices, per-line BU tagging and segment reports included.

Segment P&L Allocation Rules (6 methods) Intra-company settlements Per-line BU tagging Per-BU access control IAS 8 / П(Π‘)Π‘Πž 29

3D company model

The existing 2D model (Holding β†’ Company) is extended with an optional third dimension: Business Units within a company. Each BU is a virtual profit center with its own P&L and budget β€” without a separate Π„Π”Π ΠŸΠžΠ£.

Holding
  β””── Company (one Π„Π”Π ΠŸΠžΠ£)
      β”œβ”€β”€ BU: Dairy Plant
      β”œβ”€β”€ BU: Crop Farming
      β”œβ”€β”€ BU: Livestock
      β””── BU: Property Rental

Industry analogues

SAPProfit Center
Oracle / NetSuiteBusiness Unit
1Π‘ΠŸΡ–Π΄Ρ€ΠΎΠ·Π΄Ρ–Π» Π· Ρ„Ρ–Π½. Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ
IFRS / П(Π‘)Π‘ΠžOperating Segment (IAS 8 / П(Π‘)Π‘Πž 29)
BU Dashboard β€” Dairy Group Ltd
4
Active
1
Inactive
0
Archived
5
Total
Active
Dairy Plant
MZ-01
βš™ Production
Active
Crop Farming
RS-01
🌿 Agriculture
Active
Property Rental
OR-01
🏠 Rental
+ New Business Unit

6 feature modules β€” enable only what you need

Each module is independently toggled per Business Unit via feature flags. Start with the Core and activate additional modules as your organisation grows.

πŸ—οΈ

M1 Β· Core

BU registry with 6 types (production, trading, service, rental, agriculture, admin). Lifecycle management (active β†’ inactive β†’ archived). Optional BU dimension on 16 document tables. BU filter on all list APIs.

πŸ“Š

M2 Β· CoA Analytics

Account allow-list per BU β€” restrict which chart-of-accounts entries can be used. BU-scoped trial balance report. Validation on posting: account β†’ only mapped BUs allowed.

πŸ”

M3 Β· Access Control

Per-user per-BU role assignments (bu_admin, bu_accountant, bu_manager, bu_viewer). Temporary access with expiry date and audit note. BU context switcher in the header. Super/holding admin bypass.

βš–οΈ

M4 Β· Allocation Rules

Automatically distribute shared costs between BUs. 6 methods: fixed %, equal split, manual amount, revenue-based, headcount-based, area-based. Preview before posting. Full reversal support.

πŸ”„

M5 Β· Intra-Company Settlements

Internal invoices between BUs within one legal entity. 6-status workflow: draft β†’ issued β†’ accepted / disputed β†’ settled / cancelled. Balance report shows unsettled inter-BU amounts at period close.

βœ‚οΈ

M6 Β· Split Documents

Assign different BUs to individual lines of one invoice or order. Header auto-syncs: single BU if all lines match, NULL (mixed) if they differ. Split-line API divides one line into N proportional parts.

Allocation Rules β€” 6 distribution methods

Distribute shared costs (office rent, admin salaries, utilities) between Business Units automatically at period-end or on demand.

πŸ“ Fixed Percentage

Predefined % per BU. Sum must equal 100%. Example: rent 50% Dairy Plant / 30% Crop / 20% Admin.

βš–οΈ Equal Split

Divide equally among all target BUs. Remainder goes to the first BU.

πŸ“ˆ Revenue-Based

Each BU's share proportional to its revenue in the allocation period. Dynamic β€” recalculated each run.

πŸ‘₯ Headcount-Based

Proportional to active employee count per BU (via HR Departments). HR payroll and admin costs.

πŸ“ Area-Based + Manual

Area-based: proportional to configured floor area (mΒ²). Manual: fixed amount per BU per period β€” one-off distributions.

Workflow: Preview β†’ Run β†’ Reverse

Every allocation run is fully auditable and reversible.

1
Define Rule
Set source account, distribution method and target BU percentages.
2
Preview
Dry-run for a period β€” see projected entries before posting. Nothing is saved.
3
Run
Execute for the period. Allocation entries are posted and linked to the run record.
↩
Reverse
Create reversing entries for any posted run. Original marked as reversed.

Segment Reports

πŸ“ˆ Segment P&L

Revenue and expenses broken down by Business Unit for any date range. Optional single-BU filter.

GET /accounting/segment-pnl

🎯 Budget vs Actual by BU

Compare planned budget against actual postings per Business Unit and account category.

GET /accounting/segment-budget

βš–οΈ Allocation Matrix

Shows how much was allocated to each BU per rule per period. Rows Γ— columns: rule Γ— BU.

GET /companies/:id/allocation/matrix

πŸ”„ Inter-BU Balance

Outstanding intra-company invoices between BUs. Shows invoiced, settled and pending amounts per pair. Essential for period close.

GET /companies/:id/intra-invoices/balance

Related modules