Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multi-Entity Finance Analytics

Tests

Public-safe technical companion to the portfolio finance case study.

This repository demonstrates how a multi-entity management reporting problem should be approached — using completely synthetic data — from operating-company facts through a dimensional model and finance semantic layer to Power BI views for P&L, Actual vs Budget / Forecast / Prior Year, MTD / YTD, and like-for-like (LFL) comparisons.

It is evidence for modelling, DAX, reconciliation and data-governance thinking (aligned with PL-300, DP-600, FMVA and DAMA concepts). It is not a recreation of any employer system.

Disclosure: All companies, figures and structures here are synthetic. This does not represent discoverIE (or any employer) data, systems or internal architecture.


What business problem are we solving?

Group finance needs comparable management reporting across operating companies:

  • Actual vs Budget (and Forecast)
  • Period views: MTD, YTD, Prior Year, LFL
  • Entity and account drill-down without each team maintaining private spreadsheet logic

When definitions live in spreadsheets, variance explanations become slow, reconciliation weakens, and executives struggle to trust the pack. The goal is a single controlled analytical product: shared dimensions, explicit P&L logic, and checks that make the numbers reviewable.

See docs/business-context.md and docs/requirements.md.


What does the synthetic organisation look like?

A small holding-style group with three operating companies (OpCos), one reporting currency (GBP), and a shared chart of accounts suitable for management P&L:

Entity ID Name Region
OPCO_A North Ops North
OPCO_B Central Ops Central
OPCO_C South Ops South

Scenarios in the fact grain: Actual, Budget, Forecast.
Periods: monthly from Jan 2025 through Jun 2026 (extendable).

Account families: Product / Service revenue, Cost of sales, SG&A, R&D — rolled into Revenue, COGS, Gross profit, OpEx and Operating profit.

Details: docs/business-context.md. Dataset: data/synthetic/.


What are the finance requirements?

Minimum reporting outcomes the model must support:

  1. Management P&L by entity and at group
  2. Actual vs Budget and Actual vs Forecast variance (£ and %)
  3. Group and OpCo operating-profit trend by period
  4. Budget → Actual operating-profit variance bridge
  5. MTD / YTD / Prior Year / LFL period comparisons on shared definitions
  6. Traceability from visual → measure → fact → dimension

Requirements and KPI definitions: docs/requirements.md, docs/kpi-dictionary.md, docs/finance-logic.md.


How is the model designed?

Star-style dimensional design:

Synthetic OpCo facts
        ↓
  Dimensional model
  (Entity · Account · Period · Scenario)
        ↓
  Finance semantic model
  (P&L · Variance · MTD/YTD/LFL)
        ↓
      Power BI
  • Fact: fact_finance — amount by entity, account, period, scenario (GBP)
  • Dimensions: entity, account, calendar/period, scenario
  • Semantic layer: measures for P&L lines and comparisons (documented DAX)

See model/dimensional-model.md and model/architecture.svg.


What controls make the numbers trustworthy?

Trust is designed in, not added as a dashboard footnote:

  • Shared metric definitions (KPI dictionary)
  • Single currency and labelled scenarios
  • Explicit sign / roll-up rules for P&L
  • Reconciliation checks (fact totals ↔ P&L lines ↔ group vs OpCo sum)
  • Synthetic watermark / disclosure on public evidence
  • Documented lineage: CSV → measures → report views

See docs/reconciliation-controls.md.


What does Power BI provide?

Native Power BI Project: powerbi/Finance_Analysis.pbip

Page Content
01 Management Overview KPI strip (Revenue, GP, OP, vs Budget, vs PY) + trend
02 Group Trend Actual vs Budget vs Forecast
03 OpCo Variance OpCo bars + Budget → Actual bridge

Measure catalogue: powerbi/dax-measures.md
SOTA audits: docs/audits/
Portable refresh: docs/portable-refresh.md
Native page stills: powerbi/screenshots/native/

Portfolio narrative: bmborne.github.io — finance case.


What are the limitations?

This is a reference implementation, not a production finance platform:

  • Synthetic data only; no ERP connectors or live consolidation
  • Single currency (no FX translation or intercompany eliminations yet)
  • Simplified chart of accounts
  • Native PBIP is source-controlled in this repository. Fabric deployment, production RLS and deployment pipelines are intentionally out of scope for v1
  • Fabric / lakehouse path is a related portfolio topic, not required for this repo’s core story

Full list: docs/limitations.md.


Repository map

multi-entity-finance-analytics/
├── README.md                 ← you are here
├── LICENSE
├── data/
│   ├── synthetic/            ← public-safe OpCo facts & dimensions
│   └── processed/            ← derived outputs (local / CI)
├── docs/                     ← business problem → controls → limits
├── model/                    ← dimensional design + architecture
├── powerbi/                  ← PBIP + TMDL + PBIR + screenshots
├── sql/                      ← optional star-schema DDL / checks
├── python/                   ← synthetic data generation & validation
└── tests/                    ← reconciliation / schema tests

Quick start

python -m venv .venv
# Windows: .venv\Scripts\activate
# Unix:    source .venv/bin/activate
pip install -r python/requirements.txt
python python/generate_synthetic_finance.py
python python/generate_report_stills.py
pytest tests/ -q

Evidence links

Artefact Location
Portfolio case study https://bmborne.github.io/work/finance-reporting.html
Synthetic CSVs data/synthetic/
KPI dictionary docs/kpi-dictionary.md
Dimensional model model/dimensional-model.md
DAX measures powerbi/dax-measures.md
Report stills powerbi/screenshots/native/
Portable refresh docs/portable-refresh.md

Author

Boniphace Mkindi — Data & Analytics Engineer
Portfolio: bmborne.github.io

About

Public-safe multi-entity finance analytics reference covering P&L, Actual vs Budget/Forecast, YTD, variance and governed Power BI reporting using synthetic data.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages