📖 On this page
Winning Post — User Guide
Everything you need to understand and get the most from our predictions.
What we do
Winning Post is a data-driven prediction system for South African horse racing. Before every meeting, the pipeline:
- Fetches each horse's complete race history from public results databases.
- Parses the official racecard (and an independent analyst form book where available) for today's field details.
- Scores every runner on 12 weighted factors — form, distance, going, expert ratings, draw and more.
- Ranks the field and produces a confidence rating, verdict, and tote pool suggestions.
- Publishes the predictions here, then grades them against the official result after the race.
How predictions work
Each horse receives a score out of 100 computed as a weighted sum of 12 normalised factor scores. Each factor is scored 0–10 within the field, then multiplied by its weight.
The final score reflects how well a horse shapes up relative to its own field today — a score of 72 means this horse outrates roughly 72% of the field on the combined factors.
Data sources
- Race history — fetched from public results databases and web sources for each horse.
- Analyst form book — an independent industry pre-race form guide; gives expert ratings, speed ratings, weight, draw, trainer/jockey stats.
- Official racecard — used as a fallback when the analyst book is unavailable; provides weight, draw, class, and going.
Reading the dashboard
Race header
At the top of each race you'll see the venue, date, distance, going condition, and which racecard sources were loaded ("Form book: filename.pdf" = analyst form book loaded, "Racecard: filename.pdf" = official racecard fallback, "Dual-source ✓" = both).
Sub-races
Multi-race meetings are split into sub-races (Race 1, Race 2, …). Each sub-race has its own ranked field — a horse ranked #1 in Race 3 is the top pick for that specific sub-race only.
Sections
- Ranked selections — each horse shown as a card, ordered by score.
- Day spotlight — the strongest single horse across all sub-races.
- Race Analysis — comparison grid of top horses by factor.
- Punters panel — tote pool suggestions (Win, Place, Exacta, Trifecta, Pick 6 etc.).
Horse card explained
THUNDER STRIKE
M Yeni · S van Niekerk · Draw: 4 · Age: 4
Rating: 41 Speed: 38
3-1-2-5-3 (form right = most recent)
| Element | What it means |
|---|---|
| #1 rank | Top-ranked horse in this sub-race by model score. |
| Score (72) | 0–100 model score. Higher = stronger overall form profile for today. |
| Jockey / Trainer | Name of the jockey and trainer. Flagged in red if retired. |
| Draw | Barrier draw position. Used in the Draw factor calculation. |
| Rating / Speed | Raw third-party expert rating and speed figure. Higher = better rated by the form analyst. |
| Form string | Recent finish positions, oldest → newest left to right. Colours: green = win, blue = place, orange = 4th, grey = unplaced. |
| Confidence | STRONG / MODERATE / SPECULATE / OUTSIDER — how well-supported the score is by complete data. |
| Verdict | Short label: "Top Pick", "Value Bet", "Market Agrees", "Against Market" etc. |
| card-only | No independent web race history — scored on the racecard's recent finishes only. Treat with extra caution. |
| data gap badges | Small grey chips listing any missing data (e.g. "no expert rating", "no going data"). Gaps reduce model completeness. |
Factor chips
Click on a horse card to expand it. You'll see a strip of coloured factor chips, each showing the horse's normalised score (0–10) for that factor.
Colour: Gold/high = above-average, Grey/mid = neutral, low = below average. Use these to spot where a horse is strong or weak.
The detail view below the chips shows weighted contribution bars — how much each factor actually pulled the total score.
Confidence & verdict
| Badge | Meaning |
|---|---|
| STRONG | Well-supported by multiple high-scoring factors and reasonable data completeness. |
| MODERATE | Above-average score but some data gaps or factor volatility present. |
| SPECULATE | Interesting score but significant data gaps or limited history — higher risk. |
| OUTSIDER | Low model score; market likely correct to dismiss. Only worth considering at very long odds. |
Verdict tags
| Verdict | What it means |
|---|---|
| Top Pick | Our #1 selection for this sub-race. |
| Value Bet | Model rates this horse higher than market odds imply — potential overlay. |
| Market Agrees | Model and market align — lower risk, lower odds. |
| Against Market | Market has this horse shorter than our model justifies — potential underlay. |
| Watch | Form is mixed but worth monitoring — could improve with going/distance changes. |
All 12 scoring factors
Every horse is scored 0–10 on each factor relative to its field, then the weighted sum (×10) gives the final 0–100 score. Weights sum to 100%.
| Factor | What it measures | Weight |
|---|---|---|
| Form | Recent finish positions weighted by recency. A consistent winner scores high; a recent run of unplaced finishes scores low. | 21% |
| Distance | How well the horse has performed at today's trip vs races at a different distance. Horses proven at the distance score higher. | 15% |
| Handicap (Hcp) | Class-adjusted weight penalty signal. Horses recently running at or above their current weight rating score higher. Also captures class-drop/rise effects. | 14% |
| Going | Preference for today's track condition (e.g. Good, Soft, Heavy). Derived from the horse's results on similar going. | 10% |
| Track Fit (venue+dist) | Combined record at today's specific venue AND distance. Track specialists score highest. | 7% |
| Jockey | Jockey's recent win rate and performance on this horse. Rank-normalised against today's field of jockeys. | 7% |
| Race Fitness | Days since last run, with optimal range ~14–28 days. Too long off = fitness concerns; too short = fatigue risk. | 6% |
| Trainer | Trainer's current strike rate and in-form status. Rank-normalised within today's trainer pool. | 5% |
| Last Win Fit | Whether the horse's last win came under similar conditions (distance, going, venue) to today. Same-conditions wins carry more weight. | 5% |
| Class Change | Whether the horse is stepping up or down in class vs recent runs. Class drops are rewarded; class rises are penalised slightly. | 4% |
| Weight Change | Change in carried weight vs last run. Light-weight drops are generally positive; heavy increases are penalised. | 4% |
| Draw | Barrier draw — inside rails tend to be advantaged at most SA venues. Effect varies by track and distance. | 2% |
Expert & speed ratings
An independent analyst rating service publishes the professional SA horse racing form guide before each meeting. It provides:
- Expert Rating — a number (typically 20–80) representing the analyst's assessment of the horse's merit for this specific race. Higher is better.
- Speed Rating — a time-based figure adjusted for going, distance and pace. Reflects actual sectional times from recent runs.
- FAST FORM — brief notes on recent form, headgear changes, and trainer comments.
- Condition records — career stats split by surface (Turf/Poly), track, and distance range.
Both ratings appear raw on each horse card (e.g. "Rating: 41 Speed: 38") and as normalised factor chips — dimmed, italicised and marked "(ref only)" — in the expanded view. The raw numbers let you see the actual analyst's view; the normalised chips show how that rating ranks within today's field.
predict.DISPLAY_ONLY_FACTORS and excluded from WEIGHTS so they can't double up with the 12 factors above (several of which already capture similar signal — form, distance, going, handicap). Use them as a second opinion alongside our ranking, not as an input to it.Tote pool guidance (Punters panel)
The right-side Punters panel (or bottom sheet on mobile — tap 🎯 Punters) gives pool-specific selections based on the ranked field.
| Pool | What we suggest |
|---|---|
| Win | Our #1 ranked horse for that sub-race. |
| Place | Top 2–3 horses — at least one should make the frame. |
| Exacta | Top 2 in order; or a banker-with-2nd combination. |
| Trifecta | Top 3 in order; or banker on top with top-4 legs. |
| Pick 3 / PA | Bankers for each leg within the pool's race window. |
| Pick 6 / Jackpot | Single banker (strongest pick) or 2-horse covers for volatile races. |
Reading value bets
A value bet occurs when our model's implied probability for a horse is higher than the tote/fixed odds imply.
- If a horse is ranked #1 but priced at 12/1, the market may be missing something — this is a value overlay.
- If a horse is ranked #4 but is the hot favourite at 3/10, the market has it shorter than our model justifies — this is an underlay.
The verdict tag and the score vs odds display on each card highlight these mismatches. Use them as a starting point — not a guarantee.
Profiles page
The Profiles page (profiles.html) shows aggregated performance stats for every jockey and trainer that has appeared in our data.
- Win rate — percentage of rides/trainings resulting in a win.
- Place rate — percentage finishing in the top 3.
- Recent form — results in the last 30 days.
- Strike distance — at which distances the jockey/trainer is most effective.
The Profiles data is regenerated by the pipeline automatically and updates after every race.
Verified track record
After every meeting, the Results page grades each sub-race prediction:
- ✓ Hit — our #1 pick won the sub-race.
- ✗ Miss — our #1 pick did not win; the "Why we missed" panel shows which factors the actual winner outscored our pick on.
Tote dividends are recorded alongside each result so you can track the return on our suggested pools.
The Results page is publicly accessible on ViewOut. Nothing is edited after publication — the record stands as-is.
FAQ
Why does my horse show "card-only"?
The horse has no independent web race history that we could fetch — it may be a newcomer, recently renamed, or registered with an unusual spelling. The score is based on the racecard's recent finish string only. Treat these with extra caution.
Why does a horse show "no expert rating"?
The analyst form book was not available for this meeting, or the horse did not appear in its ratings section (e.g. first-starter, or a late scratching replacement). The badge just flags a missing reference rating for that horse — since Expert Rating and Speed Rating are reference-only and carry no weight in our score (see Expert & speed ratings), there's nothing to redistribute; the other 12 factors and the final score are unaffected.
What does the score mean exactly?
The score is a weighted sum of 12 normalised factor scores, multiplied by 10, giving a 0–100 range. It measures how well a horse shapes up relative to its field today, not an absolute quality measure. A score of 65 against a weak field is not the same as 65 against a strong field.
Can I trust the tote pool suggestions for Pick 6?
The pool suggestions are starting points, not guarantees. For multi-leg pools, consider using 2-horse covers on sub-races where we have lower confidence (SPECULATE or OUTSIDER confidence ratings). Jackpot pools require covering more legs for a payout — bankers help reduce the ticket cost.
How often is the data updated?
The pipeline runs on demand before each meeting. Data is fetched fresh each time you click "Run Now" in the dashboard. The ViewOut site is updated after each pipeline run.
Can I change the factor weights?
Admins can adjust weights using the Weights & Back-Test tool (local admin only). The back-test tab lets you adjust sliders, then see how your custom weights would have performed on past races. Proposed weight suggestions are auto-computed from the "Model Learnings" tab after each graded race.
Is this just another tipster?
No. Every selection is the output of a transparent model that scores all runners on 12 measurable factors. The full prediction vs result record is public and verifiable. We don't cherry-pick results — the good, bad, and ugly are all published.