Case studyLondon’s largest fit-out, for a blue-chip client
One fit-out. Four systems. Every register live.
Phoenix ME delivers the mechanical and electrical package on the largest fit-out in London, for a blue-chip client. EngVision runs its digital engineering: the drawing register, the asset data, the QR tagging programme and the site instruction log. Most started as spreadsheet work done by hand.
- 1,877
- drawings tracked through approval, construction and as-built
- 22,897
- live assets tracked for QR tagging, checked hourly for new exports
- 603
- instructions raised in ClickUp, each assigned to an engineer
Counts read from the London fit-out project records between June and September 2026.
What runs on site today.
The time savings are modelled. Each has its assumption beside it, so you can check the arithmetic against your own project.
Drawing progress dashboard
Before
The drawing position came from a tracker whose largest sheet alone carried nearly 248,000 formulas. It hung on open.
Now
That tracker now feeds the approval, construction and as-built dashboards. Each shows the pipeline stage tree and who is holding what, alongside an S-curve against programme. The dashboards have since been ported to two more Phoenix projects.
Done
Tracker refreshed
The drawing register feeds the dashboards.
Done
Approval dashboard
The stage tree shows who is holding what.
Done
Construction dashboard
The same register at the construction stage.
Done
As-built dashboard
The last stage, closing the register out.
Done
S-curve against programme
Progress read against the programme.
- 1,877
- drawings on the project register
- 3
- projects now on the same dashboards
Excel with Office.js automation. Briefing decks built from the live data.
Modelled saving
About 2.5 hours a week
Modelled on three hours to compile the report by hand each week against thirty minutes to refresh and read the dashboards. Not a measured figure.
02Services
Site instruction automation
Before
Every site instruction started with someone opening the document platform to download each attachment. Then they had to file it, log a row in the CAD instruction workbook, add the link and raise the task. Hundreds of instructions, one at a time.
Now
A daily run scans for new instructions, files every attachment into the SharePoint tree, writes the workbook row and link, and proposes a ClickUp task for each one, assigned to the responsible engineers. Larger batches wait for approval. The outcome goes back into the workbook the project team reads.
Done
Daily scan
The run looks for new site instructions.
Done
File the attachments
Every attachment lands in the SharePoint tree.
Done
Write the workbook row
The row and its link go into the instruction workbook.
Waiting for approval
Larger batch waits for approval
A larger batch holds here until someone approves it.
Waiting
Propose the tasks
One task per instruction, for the responsible engineers.
Waiting
Back into the workbook
The outcome returns to the workbook the project team reads.
- 22
- instructions and 97 files handled in one batch
- 359
- of 603 assigned instructions evaluated by engineers
Headless browser, Python, ClickUp API, SharePoint sync, scheduled and verified end to end.
Modelled saving
1.5 to 4 hours per batch
Modelled on twelve minutes per instruction by hand (download, file, log, link, task) for batches of 9 to 22 instructions, against fifteen minutes reviewing exceptions. Not a measured figure.
Asset data dashboard
Before
The asset register arrives as spreadsheet exports. Checking them by hand against the data specification means sampling.
Now
Exports and model imports are validated against rules drawn from the specification. The dashboard shows completion and outstanding work, with heatmaps of missing data. Each asset record has cell-level locking and an audit trail.
Done
Export or model import
Spreadsheet exports and model imports arrive.
Done
Validate against the rules
Rules drawn from the data specification.
Done
Completion and outstanding work
Heatmaps show where data is missing.
Done
Locked record, audited
Cell-level locking and an audit trail on each asset record.
- 37,937
- active assets in the register, June 2026
- Audited
- cell-level edits to asset records, with locking
Next.js, Postgres with the rules in the database, IFC parsed on the server.
Modelled saving
About 630 hours per full check
Modelled on a person checking each of the 37,937 rows by hand at one minute a row, against a validation run that checks them all. Not a measured figure.
QR tagging progress site
Before
The client needs to see how much of the fit-out is tagged and signed off. The field team needs to know what is behind. The position came from a loader script run by Windows Task Scheduler on one machine.
Now
A progress page for the client and a site-work view for the field team, checked hourly in the cloud for new model exports. It shows tagging and sign-off by level, core and category, and what is behind. It also shows which tags point at assets that have left the model.
Hourly
Cloud check for exports
The job looks for new model exports.
Done
Reconcile the exports
Tagging and sign-off by level, core and category.
Done
Client progress page
How much of the fit-out is tagged and signed off.
Done
Site-work view
What is behind.
Done
Tags without an asset
Tags that point at assets which have left the model.
- 8
- master model exports reconciled whenever one changes
- Hourly
- check for new exports, from the cloud
Static React, Postgres, a Python loader on a scheduled cloud job.
Modelled saving
About 2.5 hours a week
Modelled on a person assembling the same position by hand for the client and the site team, thirty minutes each working day, five days a week. The tool itself replaced a script on one machine, so this is the manual equivalent. Not a measured figure.
Read it away from the screen.
The editorial version carries the same counts, workflows and assumptions as this page, from the same source.
Bring us the register that is holding you up.
Tell us which spreadsheet the team is fighting and what it needs to show. We’ll say what we’d build and how long it takes.