Inspiration

Most money apps are rear-view mirrors: they tell you what you've already spent. But the stress of money trouble lives in the future. Will rent clear before payday? Can we make payroll at New Year? Is it safe to buy the kids' presents this week?

We kept picturing two people. One is a single parent on Universal Credit, where a bill landing two days early means an overdraft fee. The other is a small café owner whose quarterly rent, payroll and their own pay all land in the same week. Neither needs another spending pie chart. They need what wealthier people and bigger businesses already have: an accountant who looks ahead for them.

That became Foresight, a personal AI accountant that sees your money 90 days early, warns you weeks before trouble, and prepares the fix for you to approve.

What it does

  • It speaks first. When you open Foresight, it has already checked your next 90 days: "Your rent lands before your money comes in. In 5 out of 10 futures you go below £0 around 6 December. Here's what I'd do."
  • You approve, it prepares. Every warning comes with fixes the engine has already tested and ranked. Tap Approve and Foresight updates your plan and prepares the follow-ups:
    • a drafted letter to your landlord
    • a weekly spending target
    • a reminder to pause a subscription
    • the steps to set up an HMRC Time to Pay plan

It never moves money or sends anything without you.

  • Ask anything, by text or voice. "What if my boiler breaks next week?", "Which invoices should I chase?" Answers come with charts and risk dots, and what-ifs redraw the forecast instantly.
  • Questions answered before you ask. "Can I spend £500 today?" re-runs the forecast with that purchase added and returns a clear YES / TIGHT / NO, with the reason.
  • Financial time travel. Drag a slider to any future day to see your likely balance and your chance of being below £0 that day.
  • Personal and business. The same engine covers a student between loan instalments, a pensioner facing winter energy bills, and a sole trader with a £5,600 January tax bill.

It all lives in a terminal-style interface: a ticker of vital signs, a watchlist of accounts, and tabs for Ask, Answers, Forecast, Plan, Bills, Spending and Profile.

How we built it

1. Detecting the money that repeats. From raw bank transaction text, with no labels, the engine groups transactions by payee and finds regular bills and income (weekly, monthly, quarterly and so on). We scored detection against hidden ground truth in our generated accounts. On the Fixit Plumbing account, 98% of the bills it flagged were real, and it found 91% of the real ones.

2. Simulating 1,000 futures. Each simulated future \(i\) starts from today's balance \(B_0\) and steps forward one day at a time:

$$ B^{(i)}{t+1} = B^{(i)}_t + \sum{k \in \text{fixed}} a_k \,\mathbb{1}[\text{due}k = t+1] + \varepsilon^{(i)}{t+1} $$

Fixed bills and income \(a_k\) arrive on their schedules. Day-to-day spending \(\varepsilon^{(i)}_t\) is replayed from the person's own history and adjusted for the season, because last December tells us more about this December than the yearly average does. Invoice payment dates are uncertain too.

3. Turning futures into risk people understand. With \(N = 1000\) futures, the risk on day \(t\) is simply the share of futures below zero:

$$ p_t = \frac{1}{N}\sum_{i=1}^{N} \mathbb{1}!\left[B^{(i)}_t < 0\right] $$

We show it as "5 in 10 futures" and ten risk dots, never as a bare percentage. The chart shows the most likely path (the median, P50) and a band covering 8 in 10 futures (from the 10th to the 90th percentile, P10 to P90). It is green above £0 and red below.

4. Safe to spend. For personal accounts, the headline figure is the amount you could spend over the next two weeks and still stay above £0 in 4 out of 5 futures:

$$ S = \max\left(0,\; Q_{0.2}\left[\min_{t \le 14} B^{(i)}_t\right]\right) $$

where \(Q_{0.2}\) is the 20th percentile across all the simulated futures.

5. Ranking fixes fairly. Each candidate fix \(f\) (moving a payment, trimming spending, halving the owner's drawings, chasing invoices) is re-simulated on the same random futures as the original forecast. Its value is the drop in peak risk across the problem window \(W\):

$$ \Delta_f = \max_{t \in W} p_t^{\text{base}} - \max_{t \in W} p_t^{f} $$

Because both forecasts use the same random draws, \(\Delta_f\) measures the fix and not random noise. The engine also tries combining the top fixes ("do both") and ranks everything.

6. The AI accountant. Claude sits behind our own /chat endpoint. It sees a compact summary of the account's facts and returns only words, which charts to show, and optional what-if changes. The engine fills every number and chart, so figures can't be invented. If Claude is unreachable, the app falls back to n8n or to a built-in coach that runs without AI.

7. The stack.

  • Engine: Python, NumPy, FastAPI
  • Web app: React, TypeScript, Vite, Tailwind, Recharts, with a chat-first terminal layout and IBM Plex type
  • Automation: n8n workflows for a daily alert sent as a Telegram voice note and for drafted invoice reminders
  • Voice: ElevenLabs for spoken replies, plus a "practise the call" agent that plays your landlord or a late-paying client so you can rehearse
  • Data: seven realistic synthetic accounts, so no real customer data was used

Challenges we ran into

  • Keeping the AI honest. Early on, the model happily produced believable but made-up numbers. We changed the design so the AI only picks words and which charts to show, and the engine fills in every figure.
  • Making uncertainty feel human. Confidence intervals lose people. "5 in 10 futures", ten dots, and a green/red line tested far better than \(p = 0.46\).
  • Noisy comparisons. With independent random draws, a fix could look helpful purely by chance. Using the same random futures for every fix solved it.
  • Being properly helpful, not just helpful-sounding. Our first "move the payment date" fix drafted a polite letter to HMRC. HMRC doesn't work that way, so Foresight now guides you to set up a Time to Pay plan instead. We also fixed a date bug where the letter named the wrong payment date. The real-world next step matters as much as the forecast.
  • Seasonality. Averages hide winter energy bills and Christmas. Forecasting seasonal bills from the same month last year made pensioner and family forecasts noticeably more realistic.
  • Demo-proofing. Venue Wi-Fi and API keys are fragile, so the app runs on n8n, on Claude, on a built-in coach with no AI, or entirely on saved forecasts, and each step falls back gracefully.

Accomplishments that we're proud of

  • An accountant that speaks first and prepares the fix, instead of a chatbot that waits to be asked.
  • Every number on screen comes from the forecast engine. The AI never invents figures.
  • Real results in the demo:
    • The Corner Cup goes from an 8 in 10 chance of missing payroll at New Year to 0 in 10 with one approved fix, with the letter to the landlord already drafted.
    • Fixit Plumbing's January tax squeeze goes from 6 in 10 to 0 in 10 with a Time to Pay plan.
  • "Can I spend £500?" gets a forecast-based answer in about a second.
  • One engine serves a student, a pensioner, a gig worker, a café, a sole trader and a startup.

What we learned

  • People don't want more data. They want a decision and a next step.
  • Trust comes from honesty about uncertainty. A range and "5 in 10" earned more trust than one confident number.
  • An AI is safest when its job is narrow: language and judgement, not arithmetic.
  • Approve-first is the right default for money. Foresight prepares; people decide.
  • Small domain details (how HMRC payments work, when rent leaves versus when Universal Credit lands) are what make a financial tool genuinely useful.

What's next for FORESIGHT

  • Real bank connections through Open Banking, so the forecast runs on live data.
  • Proactive nudges on your phone a week before a squeeze, not on the day.
  • Sending with permission: approved letters and invoice reminders sent from your own email.
  • Testing with real people on tight budgets, with accessibility and plain-language reviews.
  • Built-in signposting to free help (MoneyHelper, StepChange, Citizens Advice) when someone is struggling, kept clearly separate from regulated advice.

Our goal stays simple: see trouble early, and help people get ahead of it.

Built With

Share this project:

Updates

Submission history