Work · Case study
One deal, one worksheet, and a number that stops disagreeing with itself.
01 / Challenge
Commercial mortgage deals were being assembled across forms, spreadsheets and messages. The underwriting worksheet and the deal summary held the same figures and disagreed with each other, brokers and lenders had no shared structured workflow, and every manual re-entry was another chance for a financial input to be wrong.
02 / Approach
The worksheet and the deal record were made one thing with two views rather than two records kept in step. A Form View and a Worksheet View toggle over the same deal, and publishing the worksheet syncs its figures into the deal data — so there is one number, and the question of which view is authoritative does not arise.
AI sits where a human was retyping. Extraction reads uploaded documents and proposes worksheet updates rather than applying them silently, which keeps an underwriter in the loop on every figure that reaches a lender. The platform routes through OpenAI and Anthropic behind LaunchDarkly flags, so a model can be changed or rolled back without a deploy.
Broker, sponsor and lender each get a different platform, not a different permission set on the same one. Lenders see a read-only underwriting analysis with Excel export; brokers see priorities, completeness scoring, quotes and messages in a deal sidebar. Real-time updates run over Pusher so a deal room stays current without polling.
03 / Outcome
role-specific journeys
third-party integrations
The deal lifecycle runs end to end in one platform, from intake through underwriting to lender review. Worksheet-to-deal synchronisation removed the re-entry that caused the disagreements, completeness scoring shows a broker what is missing before publishing rather than after a lender asks, and the read-only lender analysis view with export replaced sending spreadsheets by email.