The starting point
The client wrote his own brief, titled Personal Financial Operating System. It asked six questions: how the businesses are doing and whether that is improving, what they earn on 3, 6 and 12 month averages, where the income comes from, how much cash there is, how much of it is already spoken for, and which large payments are coming.
The answers existed, but in different places: bank statements in several accounts, booking lists for the villas, invoices for the agencies. Pulling them together took long enough that it rarely happened.
One number the whole system is built around
Everything on the dashboard leads to one line:
total liquid assets − upcoming committed payments − required reserves = free and deployable cash
The first version subtracted only the commitments and showed reserves next to the result. That flattered the figure, because a reserve is money already promised to something. Version two takes reserves off and draws the drop as a waterfall, so the gap between cash in the accounts and money you can actually spend is visible, not asserted.
One trap needed explicit handling. A tax reserve and the tax bill it exists to pay are the same money counted twice. Linking a reserve to its obligation nets the overlap off once, and the page says so.
Where the AI does the work
Nobody wants to retype a bank statement. The client gives the raw statements to ChatGPT, which writes every transaction into the ledger once, with its classification. When it cannot decide how to classify something, the transaction goes to a review queue instead of being guessed. The client answers in plain language, and each answer becomes a rule the system applies next time.
The ledger keeps an audit history on every row, so any figure on the dashboard can be traced back to the statement line it came from.
What the client gets
- A dashboard in his own two blocks, business performance and financial position, with written observations and a "what changed since the last update" summary
- Per-villa profit, margin, nights, average daily rate and ownership share
- The three translation agencies side by side, with the invoiced-to-paid chain
- Commitments, reserves and free cash, month by month
- Any past month exactly as it stood, because balances and reserves are recorded per month and never overwritten
The monthly update lives on one screen and was designed to take ten to twenty minutes. The client runs it himself, with no accountant or developer in the loop.
The takeaway
Build around the one decision the owner needs to make, then make every page feed it. The AI handles the reading; the owner handles the judgment calls, once.
Free Consultation