Horse Racing Intelligence Platform

Smarter analysis starts
with better data

Data-driven race analysis, probability modelling, and strategy validation tools for horse racing research.

A non-commercial, personal learning project — built for the love of code, data, and racing.

Everything you need to gain an edge

From raw data aggregation to strategy validation, TurfOps covers every step of the quantitative analysis workflow.

Race Data Aggregation

Live meetings, runners, and form guides from PuntingForm across AU, NZ, GB, IE, HK, SG, JP, and US racing.

Betfair Exchange

Real-time market odds and Betfair Starting Price data via MCP sidecar integration for model calibration and analysis.

14 Probability Models

From simple ratings to the Benter model, Shin method, XGBoost ML, and model consensus. Build your own or combine existing ones.

Strategy Engine

Rule-based JSON configs or Python-coded strategies with full execution traces. Analyse any race with any strategy in seconds.

Historical Backtesting

Test strategies against Betfair historical data with P/L, ROI, strike rate, drawdown, and equity curve metrics.

Paper Trading

Simulate strategies with a virtual balance to validate performance without financial exposure. Track results over time.

Three steps to smarter punting

TurfOps connects your data sources, runs your analysis, and validates your strategy.

1

Connect

Aggregate race data from PuntingForm and Betfair Exchange via MCP sidecar services. Meetings, runners, odds, and form — all in one place.

2

Analyse

Run probability models and strategies against today's races. Compare model outputs, identify value, and refine your approach with backtesting.

3

Validate

Paper trade strategies with virtual balances or backtest against historical data to measure real-world performance.

The web application

A full-featured browser interface for race analysis, model execution, and strategy management.

Use it your way

Web, desktop, or API — TurfOps runs wherever you do.

Web Application

Full-featured browser interface built with Vue 3. Access from any device, anywhere.

Desktop Application

Native Rust/Dioxus client with 6 colour themes. Fast rendering, low resource usage, offline-capable.

REST API

Headless access for custom integrations. Build your own tools on top of the TurfOps engine.

Modern stack, proven tools

Open-source foundations engineered for reliability and performance.

Python Rust Vue 3 FastAPI PostgreSQL Docker TypeScript MCP Protocol XGBoost ML

A personal learning project

TurfOps is a non-commercial, personal project built purely for the joy of learning. It serves as a hands-on playground for exploring artificial intelligence, machine learning, applied statistics, and modern software engineering.

The platform brings together a wide range of disciplines — from Bayesian probability and conditional logit models to real-time data pipelines, full-stack web development, and native desktop applications in Rust. Every feature is an excuse to dig deeper into a new technique or technology.

AI & Machine Learning

XGBoost gradient boosting, feature engineering, model training pipelines, and AI-assisted development with Claude Code.

Applied Statistics

Bayesian inference, the Benter model, Shin's method, Harville formulas, market efficiency analysis, and probability calibration.

Software Engineering

Full-stack development across Python, Rust, TypeScript, and Vue. Async architectures, MCP protocol integration, Docker orchestration, and CI/CD.

Data Engineering

Historical data pipelines, real-time market feeds, PostgreSQL with async SQLAlchemy, ETL workflows, and backtesting infrastructure.

Automation

Prefect workflow orchestration, scheduled data fetching, odds snapshot capture, result tracking, and background job processing.

API Integration

Betfair Exchange API, PuntingForm data feeds, Model Context Protocol (MCP) sidecars, REST API design, and real-time streaming over HTTP.

This is not a commercial product or betting service. It's a solo developer's workshop for continuous learning and experimentation.