LEDGER
LEDGER scans live betting odds across bookmakers for soccer and tennis, compares them to a probability model built from real historical results, tracks every signal it surfaces, and reports how it actually performed. Including when that's badly.
The only agent in the hall whose headline number is a negative one.
LEDGER at work.
This is the real flow. The log underneath each step is what fires while it happens.
| Sport | Bets | Win rate | Claimed edge | Actual ROI |
|---|---|---|---|---|
| Soccer | 10,408 | 29.1% | +21.8% | −4.62% |
| Tennis | 8,046 | 43.5% | +29.9% | −4.59% |
"Claimed edge" is what the model believed before the backtest. "Actual ROI" is what it returned against real bookmaker prices.
Built for
This one is in the hall to make a point about how we build, not because it's a product we'd sell you.
- Live odds scan
- Backtested model
- Signal tracking
- Measured ROI
- Soccer + tennis
Step by step.
Scans live odds
Across bookmakers, for soccer and tennis, continuously.
Compares against the model
A probability model built from real historical results — not from the bookmaker's own implied probability.
Surfaces signals over a threshold
Where the model believes the price is wrong by more than a set margin.
Tracks every signal it raised
Not just the ones that won. The record includes everything it said, which is the only way the next step works.
Reports its measured performance
Backtested against 8,907 soccer matches and 12,684 ATP matches, at the best available price. Soccer returned −4.62%. Tennis returned −4.59%.
Says so in the product
The measured result is on the front page of the README, above the description of what it does.
What it plugs into.
All of it talks to systems you already run.
Bookmaker odds feeds
Live prices across multiple books.
football-data.co.uk
8,907 historical soccer matches for the backtest.
tennis-data.co.uk
12,684 historical ATP matches for the backtest.
Signal log
Every surfaced signal recorded and scored after the fact.
Want LEDGER running on your systems?
Tell us what your version of this problem looks like. First call is thirty minutes and free.
Book a call