Method
tbs-rating-v0.0 · uncalibrated softmax · public weights
Not a black box. Not a secret. Below is the exact six-step pipeline every Saturday tip passes through, the real weights on the rating model, and the staking rules that turn a good pick into a good bet.
In one equation
We only back runners where the TAB price is materially above what our model thinks the horse is actually worth. Any single bet is probabilistic. Over hundreds of +positive-edge wagers, the expected return is the record on the results page.
The pipeline
Each Saturday morning the whole thing runs end-to-end. If any step can’t justify the bet, it’s cut before it reaches the card.
Form history comes from our own Racing Australia scrape — every meeting, every runner, every result from November 2025 forward. Sectional times come from Punters Plus (puntapi). Track-condition, weather, scratchings and stewards’ notes come through their own scrapers. Market prices come from TAB’s fixed-odds API at publish time, with Betfair Exchange as a live fallback. Settlement results are pulled from Punting Form within 24 hours of each race. No vendor rating sits in the formula — we own every input that feeds a pick.
Each runner gets five sub-scores (see the weights below). The composite is a rank-based blend — runners are ranked within the race on each signal, then the ranks are combined using the weights. Rank-based means one outlying number doesn’t drown out the rest; balanced runners rise. Scores are then softmaxed across the race into probabilities that sum to one.
Composite scores are softmaxed into probabilities that sum to 1, then inverted into a fair decimal price for every runner. We pull the TAB fixed-win price and compute edge = (market − fair) / fair. A positive edge means the market is paying us above the model’s true value.
A runner only ships as a Best Bet if confidence clears 65 out of 100, the top margin over runner #2 is at least 5 points, the price sits between $2 and $12, the model has at least a 2% edge over the market, the field is 7–15 runners, the track is no worse than a Slow 7, and the data-quality flag passes. We cap at one Best Bet per metro meeting and one per provincial — if a meeting has multiple qualifying runners the highest-confidence one wins and the rest stay off the card. The whole day caps at three Best Bets regardless.
Stake sizing is price-tier based, not confidence-tier — price is what actually moves expected value. Each Best Bet also carries a walk-away price equal to our fair price: if the market drifts into our fair estimate, the edge is gone and we skip. You see this on every tip as a hard number.
Every tip is logged at the market price stamped on the card. Results settle within 24 hours. No retroactive price upgrades, no deleted losers, no closing-line-value gymnastics to flatter the P&L. The public results page is the record of record.
The rating model
These are the exact weights sitting in the code right now, not a marketing approximation. If we tune them, we’ll change the number on this page.
Speed
40%Last-start speed rating, best-of-last-3 speed, peak time at this distance, peak time across career. Built from sectional times we own end-to-end.
Form
25%Last-three finish positions, days since last run (with the optimal-spell curve), last-start margin, three-run class trend.
Class / weight
15%Class today vs class history. Weight change from last start. Weight at the current class level.
Connections
10%Jockey strike rate at this track. Trainer strike rate at this track. Combo strike. Trainer strike at this distance.
Track / barrier
10%Barrier performance at this distance. Track-condition suitability. Distance suitability across the runner’s record.
The composite is a rank-weighted blend. Each runner is ranked within the race on every signal, the ranks are combined using the weights above, and the resulting score is softmaxed into a coherent set of fair prices that sum to 100% across the field.
What sits behind the formula
Most AU tipping services are a thin wrapper around someone else’s rating. A black-box AI score gets dropped into a spreadsheet, a stake gets tacked on, and the punter pays for a number they can’t audit and a vendor can revoke or reshape.
We don’t do that. The five signals on this page are computed by code we wrote, against form history we scrape directly from Racing Australia, sectional times we pull from Punters Plus, and condition data we cross-check against the BOM. No vendor rating sits in the pick. No vendor outage takes the engine down. No vendor change shifts our weights overnight.
What this buys you: when something looks off, we can show you the rank on every signal, the race-condition feed, the raw form record. When something looks right, the win is ours — not an artefact of someone else’s undisclosed model.
It costs more in engineering. Worth it. The whole point of the audit page and the pre-commit hash is that the record is end-to-end inspectable. That only works if the data underneath is ours too.
Staking
Confidence-tier staking sounds smart but in practice confidence is already baked into the Best Bet gate. What actually moves expected value from bet to bet is the price tier — so that’s what we stake on.
Field-size rule. Each-way is only available when the field pays places. Fewer than 5 runners we force to a win bet; 5–7 runners pays 2 places; 8+ pays 3. The staking block on the tip tells you which applies.
Walk-away price. Our fair price is the minimum we’ll take. If the market moves in past that number before you bet, the edge is gone — skip the leg.
Bankroll. We don’t tell you what a unit is. Sensible punters set it at 1–2% of the bankroll they can afford to lose. If that sentence made you uncomfortable, racing isn’t for you.
Honest framing
A value engine, not a prediction engine
We bet when the bookmaker pays us more than the horse is worth. Long-run, that’s positive expected value. Short-run, variance is large. No result from a single Saturday means much.
Transparent about its gaps
Today we use one market source (TAB) and don’t yet model track bias or rail position directly. Those are on the roadmap — and we’ll tell you when they ship rather than pretending they’re already there.
Never a guarantee machine
If the edge is clean and the staking is disciplined, a three-month stretch can still lose money. Anyone who tells you different is selling something worse than we are.
The tips change. The method doesn’t. Every bet we send is the output of the six steps above — and shows up on the public results page, win or lose, the next day.