Skip to main content
AI & Automation
All work
Live EventsClient build

Live financial operations for an international events company

Custom operational platform with automated revenue recognition, AI invoice review, and an AI Stripe-to-Xero reconciliation that saves 8–10 hours a month, for an events business across 11+ cities.

The business

A fast-growing events company operating across six countries, processing over £1 million in annual ticket revenue through Stripe in multiple currencies. Events ranged from intimate 200-person gatherings to multi-thousand participant experiences, with ticket windows opening up to nine months before event day.

The finance team was four people — one in-house, one external bookkeeper, one part-time CFO, one event accountant. Xero was the system of record. Events were organised as separate cost centres with their own budgets, but the revenue side was running blind.

The challenge

From the outside, the problem looked like slow reporting. From inside finance, the real problem was a revenue recognition risk that had been quietly compounding for two years.

Under AASB 15 / IFRS 15, revenue from a ticket sale is a performance obligation satisfied when the event is delivered — not when the ticket is paid for. The business was recognising ticket revenue on the day Stripe payouts hit the bank, which is exactly the opposite. The consequences were building:

  • Revenue was overstated in periods with open ticket windows and understated in periods where events actually ran
  • The balance sheet had no contract liability line at all
  • Refund risk wasn't quantified, so cancellations hit the P&L as surprise negative revenue months later
  • Multi-jurisdiction VAT was unmanaged, with exposure quietly building in the tens of thousands

None of this showed up in the monthly management accounts, because the monthly accounts were being produced in Excel from a Xero export that was already two to three weeks out of date.

From a technology angle the problem looked like slow reporting. From an ACA angle it was an unmanaged revenue recognition risk that would eventually become either an audit finding, an HMRC letter, or both.

What we built

A custom operational platform sitting between Stripe, Xero, and the finance team's workflow. Built on Next.js, Prisma, and Supabase with the Stripe API.

The revenue recognition engine. A single service reads Stripe charges continuously, assigns each one to an event via line-item metadata, and writes two Xero transactions: one on payout date (DR Bank / CR Contract Liability) and one scheduled for the event date (DR Contract Liability / CR Revenue). Refunds reverse cleanly. A daily integrity check confirms every event's contract liability balance equals the sum of undelivered ticket sales.

Multi-currency handling. Ticket sales come in GBP, USD, and EUR. Each leg is recorded in native currency, with the FX rate applied on event date — which is what AASB 15 actually requires. Unrealised FX movements on deferred revenue are treated as a translation reserve, not P&L noise.

Event-level P&L. Every event becomes its own live P&L. A product manager can open an event four months out and see tickets sold versus target, partnership income by stage, contribution margin updating as costs come in, and year-on-year comparisons against prior events.

AI invoice review. Bills arrive in four languages across four VAT regimes. An AI review stage parses each one for supplier details, line-item VAT treatment, event assignment, and confidence scoring. The model suggests coding but never posts — everything goes to a human approval queue with the rationale visible to the approver.

Board-ready reporting. Quarterly packs generate from the platform in minutes: event-level contribution margin grid, revenue pipeline, cashflow by currency, VAT exposure by jurisdiction, and year-on-year comparison against the prior two years.

The results

Revenue recognition is now fully AASB 15 / IFRS 15 compliant, from the bottom up. Every Stripe charge, every payout, every event, every journal is traceable in both directions — an external auditor can walk from Stripe charge ID to bank payout to Xero journal to financial statement line in under two minutes.

A multi-jurisdiction VAT exposure was identified during the build when historical ticket data was imported, with a remediation plan delivered covering the affected periods and jurisdictions. The exposure had been quietly building in a period nobody was reviewing, and the fix protected the business from potential penalties running into the tens of thousands.

Board reporting went from three days of manual compilation to under five minutes. The numbers in the board pack are now the same numbers in Xero, which are the same numbers in Stripe — no reconciling spreadsheets against the ERP in the wee hours before a meeting.

The finance team stopped being a bottleneck. The external bookkeeper now approves bills instead of coding them. The part-time CFO spends her time on cashflow forecasting instead of reconciling ticket sales. The in-house finance lead spends her time on commercial decisions — which events to run, which to drop — instead of firefighting.

Want the full picture?

Download our portfolio brochure — case studies, our approach, and how we work with businesses like yours.