Departures: UK Train Times.
Your next train, with live times and platforms in the app, on your Home Screen and on your Lock Screen.
App Store ↗With a background in economics, I build models that predict real-world numbers and test whether they actually work.
You can read my CV, look through my code on GitHub, or email me.

Every day my model predicts tomorrow’s prices before the market sets them. Each forecast is locked in, then checked against the real prices.
Follow the experiment ↗
Published daily before 12:00 Berlin
Loading the latest public record…
Public record · refreshes on load31 Oct 2026
Loading the public forecast record…
The line shows what my model predicted the price would be for each hour, using weather forecasts for wind and sunlight plus recent electricity prices.
The shaded area shows the range of prices my model thought was plausible.
The dots show the price the market actually set for each hour.
Loading the wind reading…
Averaged over the eight places my forecast reads · Open-Meteo ↗
Scroll to take it apart; hover a part to name it.
Loading the turbine study…
The rotor follows a capacity-weighted average of 100 m wind readings at the forecast’s eight German locations. The live reading refreshes every 15 minutes; the model shows the corresponding rotor speed.
Wind forecasting study ↗Forecasts recorded before the auction and checked against the outcome. The evaluation is still running.
Live research →02In 6.2% of the observed hours, concentrated in periods of low demand after wind and solar generation.
Code on GitHub ↗03Not reliably, so I recommended keeping the official forecast.
Completed study →What happens
in the worst fall?
From the Bitcoin and Ether portfolio study below.
Slightly, but the moves are smaller than the cost of trading them.
Code on GitHub ↗05Barely, because Bitcoin and Ether crash together. Only holding some cash cut the worst fall, from 69% to 54%.
Code on GitHub ↗06Barely. It paid 5.1% a year against 4.6% from Treasury bills, and the extra has mostly gone.
Code on GitHub ↗07Yes. In this made-up case, a £77m business still can’t repay its 2028 debt.
Code on GitHub ↗reached a basket
A review queue, proposed routes and evidence-backed summaries, with a person responsible for the decision.
Prototype · case study →09Completed-year bookings and operating constraints supported holding most prices.
Workplace study →10Suspicious enough that checking it costs less than the fraud it stops. 57 of its 69 alerts were real.
Code on GitHub ↗11Only 2.35% of product-viewing visitors had a subsequent basket event in the dataset.
Completed study →Your next train, with live times and platforms in the app, on your Home Screen and on your Lock Screen.
App Store ↗A workout tracker that sets the weight and reps for every set, based on what you lifted last time.
App Store ↗Supply has to match demand, moment to moment.
Loading the transmission study…
Scroll to follow the camera around the original transmission corridor.
Forecast Ledger ↗
I studied economics and finance. Now I build tools that help with real decisions, check they beat a simple guess, and are honest about their limits.
Cardiff University
Cardiff University
Python · SQL · DuckDB · scikit-learn · XGBoost · Responses API
The gym is a backbone of my daily routine.
I built Overload, the workout tracker I use every day and keep improving. It’s available on the App Store.
Overload on the App StoreFilmmaking is another hobby. This is a short edit I made of a trip to the gym.