e7 Finance Answers

natural-language prototype over the finance data model DRAFT — IN PROGRESS 100% SYNTHETIC DATA
Loading the in-browser database…

1 · What data is here

This prototype holds a small dimensional model of the group's finance estate: a GL balance fact (monthly, by entity, version and account, carrying the four-level reporting hierarchy — Category → Sub-Category → Type → Item — plus Budget Owner), and a job costing fact (job-level revenue and cost by customer, product and entity). Actuals run from 2018; jobs from 2017; 2026 carries Actual, Budget and Forecast versions. As in the real estate, forecast rows sit at Type/Item grain without GL accounts.

The model (as discovered)

fact_gl_balanceversion · entity · account · month · AED
fact_job_costjob · customer · product · cost split · margin
dim_account+ 4-level hierarchy, sign, CF map
dim_entity
dim_segment
dim_customer
dim_product
sec_accessrow-level security (proposed)

The dimensional design largely exists today inside the two master workbooks; this schema re-expresses it as tables.

Proposed extensions — what the estate is missing

  • Job ↔ GL link: job costing is disconnected from the ledger today; a shared entity/period key joins them here.
  • True cost centres: Budget Owner is a functional proxy; the SAP design (departments, lines, machines) should replace it.
  • Customer & product masters: exist only in report layers today; first-class dimensions here, aligned to the CO-PA characteristic design.
  • Labour / machine / setup capture: job cost splits are estimates; no machine-hour data exists yet.
  • Row-level security: distribution is manual packs today; modelled as a security table.
  • Win/loss & pipeline: no CRM-sourced demand fact yet — the next fact table this model needs.

2 · The data at a glance

Group revenue by year (AED m)

2025 revenue by segment (AED m)

EBITDA by year (AED m)

2026 monthly revenue — actual vs budget (AED m)

Entity P&L summary — FY2025 (synthetic, AED m)

3 · Ask the data

Type a question in plain English. The prototype translates it into SQL, runs it against the in-browser database, and answers in text plus a table and chart. When the live model is unavailable it falls back to a library of pre-built questions.

SQL used