Back to all case studiesIndustry: Construction — Scaffolding

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.

9
Entities unified
Previously separate workbooks
11
Excel sources automated
Parsed on every upload
2 platforms
Web + mobile delivered
Back office and phone

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