Projects

Open code that shows how I work: methods checked on data where the answer is known, measurement validated before it is trusted, and tools that run every day on their own.

Research methods in code

Event study on a simulated staggered rollout: three estimators plotted against the true effect

Statistics and econometrics toolkit

Python · simulated data with known answers

Statistics and econometrics I use in research, each checked on simulated data: staggered DiD, quantile regression with fixed effects, VAR, bounded-outcome models, change points.

Causal inferenceTime seriesSimulation
Agreement of LLM labels with a repeat run, a second model and cheaper baselines, by review aspect

Measuring text with an LLM

Python · 998 public hotel reviews

LLM labelling of 998 hotel reviews, validated six ways: 94.6% agreement with the guests' own liked/disliked split, alpha 0.93 against a second model, no false labels on controls.

LLMText as dataReliability
US inflation over the next 12 months: realised values against random-forest and AR forecasts

Machine-learning inflation forecasts

Python · replication of Medeiros et al. (2021)

Machine-learning forecasts of US inflation from 121 FRED-MD series. Tree models cut forecast error by 15–20% against an AR benchmark in 2001–2015, but not since 2020.

ForecastingMachine learningReplication

Tools and apps

Filings Q&A agent

Python · SEC 10-K and 10-Q filings

Question answering over SEC filings with a checkable source for every sentence, a tool-using research agent, and a 50-question retrieval evaluation (keyword search 95% correct).

RetrievalAgentsEvaluation

Finfluencer digest

Python · runs every morning on GitHub Actions

Daily digest of stock calls: Gemini watches 16 YouTube finance channels and X accounts, extracts each call and sums up the consensus. Multi-model fallback, scheduled runs, source-checked news.

Multimodal LLMAutomation
Call tracker screen comparing sources of stock calls, using fictional demo data

Call tracker for a portfolio dashboard

Fork of an open-source dashboard · Python

Adds broker sync and a tracker that scores stock calls against later prices. Four pull requests upstream.

FastAPIOpen source

Calorie tracker

Single-file web app · works offline

Recognises food from photos with a vision model and calibrates calorie estimates against real weight data. 20 versions in seven weeks.

Vision modelWeb app

Open-source contributions

ClaudeCodeUsage (VS Code extension)

TypeScript · merged September 2026

Cached the dashboard's date-label formatter so repeated inputs are computed once (fixes issue #99).

catfolio (portfolio dashboard)

Python · four pull requests, September 2026

Hong Kong ticker padding and HKD exchange rates, dead-link fixes, broker account sync, and the call-tracker workspace.