From Spreadsheets to a Shared Source of Truth — Multi-Entity Sydney Scaffolding Group
Timeline: Requirements from January; Phase 1 — eight dashboards, user management and the mobile app — delivered in May. Actively iterating since.
The Challenge
A Sydney scaffolding group operating nine separate legal entities managed its entire financial picture in Excel. The data path was fragile: MYOB AccountRight on the desktop, exported through a third-party OData connector, pulled into Excel via Power Query, then tidied by hand. Anything MYOB did not hold — loans, EFT runs, vehicles, payment dates — was typed in manually.
One person, the group's bookkeeper, maintained all of it. There was no fixed update cycle; the numbers were current only when she happened to refresh MYOB and the workbook. During the build she was effectively maintaining two dashboards at once — the manual one the director trusted, and the automated one still being tested.
The director wanted to see the group's cash position on his phone, without opening a laptop. The existing workbooks could not support that: the structure changed too often and fields the business needed were missing entirely.
The Solution
We built a financial workspace on top of the group's existing Excel process rather than replacing it — the spreadsheets already encoded years of business logic worth keeping.
The bookkeeper uploads her workbooks through an admin portal. An ETL layer of eleven parsers reads them, normalises the multi-entity structure into a relational schema, and stores it in Postgres. From there the data surfaces two ways: a web back office for finance, and a read-only mobile app so the director can check cash at bank, debtor ageing and the cash flow view from a phone.
A built-in AI assistant answers plain-language questions against the live figures, and an alerts panel flags overdue invoices on demand — count, total, largest debtor, days overdue.
Two engineering decisions mattered. Where two MYOB exports disagreed on a balance, the system deliberately does not recalculate — it takes the workbook's value, so the screen always reconciles with what the bookkeeper sees. And where an Excel formula broke because a VPN-linked file was unreachable, the pipeline stores a null and the dashboard shows "—" rather than a fabricated number.
Results
- 1Nine entities consolidated into one schema — previously separate workbooks per entity
- 2Director-level access from a phone: cash at bank, debtor ageing, cash flow view
- 3Overdue invoice detection on demand — count, total, largest debtor, days overdue
- 4Debtor ageing classified automatically as Overdue / Due soon / On track
- 5Plain-language queries against live financial data via a built-in AI assistant
- 6A single upload replaces parallel maintenance of two competing dashboards
- 7Phase 1 delivered in the month it was targeted; the system remains in active iteration four months on
Technology Used
Next.js 15 · Supabase (Auth · PostgreSQL · Storage) · Excel ETL (xlsx) · Expo / React Native · Anthropic Claude
Want results like these?
Send us a message and we’ll arrange a free 30-minute call to discuss your business.
Request a free call