Case study 02PropTech2026In testing

Portfolio platform

Commercial property asset management for a multi-fund landlord. Somebody’s asset register, so it has to be defensible before it’s clever.

227
Units across 18 estates
456
Deals migrated, 2014 to 2026
187
Fields on a single unit
97
Live alerts, 10 types

The problem

A commercial portfolio run the way most of them are run: spreadsheets, inboxes and the memory of whoever had been there longest. Twelve years of lettings, renewals and valuations, all real and all scattered. Nobody could answer a simple question across the portfolio without a week of work first.

What I built

A platform structured the way the business actually thinks: fund, portfolio, estate, unit. 227 units across 18 estates. 456 deals migrated, 2014 to 2026. 187 fields on a single unit, because that’s what a UK asset manager actually tracks, not a simplified version of it. Rent review collars and caps, break notice periods, 1954 Act protection, covenant grades, service charge shortfalls, empty rates, EPC expiry and the exemptions.

An import engine that reads the existing spreadsheets and reconciles them against each other, which is how we found out how many of them disagreed. An authority-to-sign register and an approval workflow on every transaction, built against the real approvals from the last two years. Monthly and quarterly reports where the figures compute themselves and every number shows its source on hover. The only manual part is the narrative.

Where the AI sits

Quietly, and at the back. An alerting engine watching lease expiries, overdue rent reviews, break clauses and energy rating risk, currently 97 live alerts of ten types. An assistant that answers questions scoped to a fund, an estate or a single unit. And a piece of code I’m fonder of than the assistant: anomaly detection that flags a rent, service charge or insurance figure that doesn’t look like its neighbours.

On its first run it raised 21 flags. Most were exactly what I’d hoped for, insurance at £2.42 a foot on an estate where the median is 17p. Two of them read, in full, “significantly above estate median £0.70” on a unit whose figure was £0.70. A unit being compared against a median it was itself setting. The detector found a real problem on its first run, and the problem was me. I left both flags in place as a reminder.

The feedback loop

Every screen has a feedback widget. The client types what’s wrong, or what they wish it did, and it lands in a table. The assistant reads each one and answers the questions it can answer, which turns out to be most of them, because most of them are “where do I find” rather than “this is broken”.

The rest become a weekly report to me: what changed on the platform that week, what the client raised, and which of those are bugs. I read it on a Monday morning, decide what ships, and close each row with a short note in my own words. Nobody sends the client a ticket number.

It flags, it doesn’t correct. A person decides.

The part that matters

This is somebody’s asset register. It has to be defensible before it’s clever. Row-level security on every table, soft deletes, a full audit trail. It flags, it doesn’t correct. A person decides. I’ve never met an asset manager who wanted a machine quietly changing figures in their own portfolio, and I wouldn’t build one that did.

Stack
Supabase
Edge functions
Claude
React
More case studies

Multi-agent reasoning for insurers and underwriters.

AI disclosure compliance for European agencies, with a record nobody can rewrite.

If you’d like to see it running, I’d love a chat.

Send a paragraph about what you’re working on. I’ll write back.