Gambling Schemes & AI Dreams

AI agents, data analysis, handicapping, gambling, and whatever's on my mind. Raw thoughts from someone figuring it out as they go.

🔬 Data Science
Oaklawn Park GPS: Why the "Presser" seat is worth +0.75 in the Slop
April 17, 2026 · 5 min read
🏇 Race Recap
KEE Apr 16 Recap: The "Presser" Seat is the Best Seat in the House
April 16, 2026 · 6 min read
🏇 Daily Picks
KEE Apr 16: The "Presser" Card — 4 Best Bets Per Race via GPS v8.3
April 16, 2026 · 8 min read
⚙️ Model Update
The Keeneland Speed Trap: Why GPS Says "Fade the Wire" on Dirt Routes
April 16, 2026 · 5 min read
🔬 Data Science
The Power Position: Calibrating Track Bias via GPS Tracking
April 15, 2026 · 4 min read
🏇 Race Recap
MNR Apr 12 Recap: Edge Model Finds a 15/1 Longshot, Goes 3-for-3 on Value Plays
April 13, 2026 · 6 min read
🏇 Race Recap
KEE Apr 12 Recap: 33% Hit Rate, +47% ROI on Edge Plays, and Two Models That Tell Different Stories
April 12, 2026 · 7 min read
🏇 Daily Picks
KEE Apr 12: Full Card Picks, Jockey/Trainer Backtest & Distance-Surface Breakdown
April 12, 2026 · 8 min read
🏇 Race Recap
Apr 11 Recap: 44% Hit Rate at Keeneland, a +44% ROI Edge Filter, and What Went Wrong
April 12, 2026 · 6 min read
📊 Methodology
Why We Switched to Edge-Based Betting (And What the Data Says)
April 10, 2026 · 5 min read
🔬 Building in Public
Chasing the Zone: When the Data Humbles You
March 30, 2026 · 6 min read
🔬 Building in Public
What 1,896 Races Taught Me About Building a Handicapping Model
March 29, 2026 · 7 min read
🏇 Race Recap
Saturday Recap: Gulfstream Park & Oaklawn — How WagerCast Called It
March 29, 2026 · 7 min read
⚙️ Model Update
The %Early Zone: What Brohamer and Sartin Knew That Most Bettors Don't
March 28, 2026 · 6 min read
✨ New Feature
New: Class Level Experience — Knowing Whether a Horse Belongs
March 28, 2026 · 5 min read
📖 Origin Story
Building WagerCast: What 1,735 Race Results Actually Taught Us
March 28, 2026 · 8 min read

↑ All posts

Oaklawn Park GPS: Why the "Presser" seat is worth +0.75 in the Slop

After running our full GPS calibration for Oaklawn Park (OP), the data has spoken: Oaklawn is currently a "Presser's Paradise." While Keeneland has its famous "Speed Trap" on dirt routes, Oaklawn's current bias is more about tactical sustainability—especially at the 6-furlong and 1 1/16-mile distances.

The Power Position: GPS E2-E3

Our analysis of recent Oaklawn charts shows that horses sitting in the **GPS E2 and E3 positions** (1.5 to 4 lengths off the lead) are outperforming both the pure "wire" speed and the deep closers. This "Presser Seat" allows a horse to avoid the early duel while staying close enough to pounce as the field turns for home.

+0.75
Bonus for GPS Pressers
(OP 6.0f & Routes)
+0.50
Bonus for GPS Stalkers
(OP Routes)
2.0–4.5
Optimal RSE/SSE Range
(The Tactical Pocket)

Distance Specific Findings

The "Slop" Factor

Oaklawn has seen its share of off-tracks recently. In wet conditions, the GPS data suggests the lead is slightly more advantageous than on a fast track, but the "Presser" still holds the highest ROI. Staying out of the kickback while maintaining a manageable 2-length gap is the winning formula at OP right now.

Handicapper Note: When looking at today's Oaklawn card, prioritize horses with a **Tactical Score > 0** and an RSE/SSE in the 2.5–4.5 range. These are the horses sitting in the "Power Position" identified by our GPS tracking analysis.


↑ All posts

KEE Apr 16 Recap: The "Presser" Seat is the Best Seat in the House

Nine races at Keeneland today. While the headlines will go to the favorites, the real story for the WagerCast models was the continued dominance of tactical positioning. Our GPS v8.3 model flagged the "Presser" (E2/E3) as the Power Position, and the track delivered exactly that.

The 0.60 Overlay: Emirates Affair

It sounds like a contradiction, but the model's biggest value play of the day was the 3/5 favorite in Race 1. EMIRATES AFFAIR showed a +9.8% Edge. While the public saw a "heavy favorite," our model saw a statistical outlier with a 72% win probability. His SSE of 3.7 placed him in the tactical pocket, and he never looked back, winning by daylight.

The Value Model Outlier: Blessed Flyer

Race 2 provided the cleanest validation of the Edge methodology over raw Selection Score. BLESSED FLYER was ranked #6 by Selection Score in a field of first-time starters. However, the Value Model flagged him with a +7.5% Edge at 8/1. He delivered the upset, proving that when the price is wrong, the ranking doesn't always matter.

GPS Validation: Avoiding the Trap

In our morning analysis, we warned that the early lead (GPS E1) was a "Speed Trap" for dirt routes this meet. Race 6 proved it. The front-runners dueled through early fractions, emptying their tanks and allowing UNION MIST (a rank #4 closer) to sweep from the back. Position 1 speed remains a liability in KEE dirt routes.

Statistical Summary

55%
Winners inside the
Selection Score Top 2
+17.3%
ROI on positive-edge
winners today
4/9
Winners from the GPS
"Presser" Power Zone

Handicapping Lesson: Don't be afraid to back a favorite if the Edge is positive. Value isn't just about longshots; it's about the gap between reality and the morning line. Today, that gap favored the elite tactical horses.


↑ All posts

KEE Apr 16: The "Presser" Card — 4 Best Bets Per Race via GPS v8.3

Today at Keeneland, we are putting our v8.3 GPS model to the ultimate test. We've combined our historical Selection Score hit rates with our edge methodology to isolate the four horses in every race that most logically fit the track's current bias. At Keeneland this spring, it's all about finding the "Presser" — the horse that can sit within striking distance without burning out early.

The Strategy: We've prioritized horses with an RSE/SSE in the 2.5–4.5 "Power Zone," rewarding those where our dual-model win probability (Primary + Longshot) shows meaningful edge over the morning line.

Race 1 (6F Dirt): The Sprint Powerhouse

A classic Keeneland sprint where early positioning is everything. EMIRATES AFFAIR is a massive statistical standout here.

SelectionMLScoreEdgeWhy?
#1 EMIRATES AFFAIR3/514.2+9.8%Dominant SSE 3.7 (Presser). Model sees 72% win prob — huge overlay even at 3/5.
#6 COASTLINE HOTTIE4/110.5-7.2%Next highest score; fits the tactical profile but price is thin.
#3 DEVIL OF PARADIS9/28.7-5.5%Solid SSE 3.1; the clear third choice in a shallow field.
#5 SO FAR SO GOOD12/18.0-1.9%Best longshot look; sits in the E4 stalker seat.

Race 3 (5.5F Turf): The Turf Dash

Turf dashes are chaotic, but our model has isolated a clear hierarchy in the pace numbers.

SelectionMLScoreEdgeWhy?
#8 HEADSPIN9/215.8-4.3%Highest Selection Score on the card. Great turf sprint profile.
#3 LUCY MCGEE4/113.3-3.0%SSE 3.0 is the tactical sweet spot for this distance.
#9 LLAMP10/112.5-4.4%Class specialist; price provides defensive value.
#2 GELLHORN6/111.9-4.7%High-velocity finisher; best if the front-runners duel early.

Race 5 (8.5F Turf): The Route Logic

This is where the GPS model really shines. We are looking for the horse sitting 2-3 lengths back.

SelectionMLScoreEdgeWhy?
#9 JUDGE DAVIS6/115.7+1.1%Perfect RSE 3.5. Model loves this horse at a price.
#8 GREEN LIGHT8/114.8+2.9%Our top "Edge" play in the race. SSE/RSE blend is optimal.
#3 LEGALIZE6/113.2+2.5%Consistent performer; RSE 2.0 is slightly aggressive but manageable.
#5 JUST A TOUCH8/513.2+1.0%The class of the field; sits in the 2.5 Presser seat.

Race 6 (8.5F Dirt): The Speed Trap Test

A classic dirt route where we must avoid the E1 wire-runners. METFARDEH and IVORY AND EBONY are the primary targets.

SelectionMLScoreEdgeWhy?
#4 METFARDEH9/213.4+4.6%RSE 3.0 (Presser). Not the leader, not a closer. Perfect seat.
#3 IVORY AND EBONY7/213.1+6.2%The highest edge on the card. Model sees 28% win prob vs 22% implied.
#2 ORAIA10/110.8-1.5%Stalker profile (RSE 4.0). Massive price value for exotics.
#1 UNION MIST6/19.0-0.9%Fits the "off-the-pace" GPS profile required for KEE dirt routes.

Race 8 (8.5F Dirt): Final Turn Power

Another dirt route. We are ignoring the pure speed and betting on tactical sustainability.

SelectionMLScoreEdgeWhy?
#5 CLOONEY2/113.9+2.0%Model's top pick by a wide margin. RSE 5.5 is deep, but safer than the lead.
#8 AWESOME RUTA7/213.6+0.5%Tactical RSE 3.0. This is the horse most likely to inherit the lead.
#1 TRUSTY RUSTY8/112.9+0.4%Stalker profile; huge TE (Total Energy) numbers.
#4 AMERICAN LAW6/19.8-7.7%Class drop look; price is sufficient to protect a score gap.

Today's "Must Bet" Horses: #1 EMIRATES AFFAIR (R1), #3 IVORY AND EBONY (R6), and #9 GREEN LIGHT (R5). These horses combine high Selection Scores with positive model Edge and tactical RSE positions.


↑ All posts

The Keeneland Speed Trap: Why GPS Says "Fade the Wire" on Dirt Routes

If you're betting dirt routes at Keeneland and looking for the horse that "needs the lead," you might be betting against physics. After analyzing 81 races from the current meet using our new GPS tracking model, we found a startling reality: at 1 1/16 miles on the dirt, being first out of the gate is the fastest way to lose.

The Death of the Wire-to-Wire

In our dataset for the current meet, horses that occupied GPS Position 1 (the early lead) in dirt routes have a win rate of exactly 0%. Not a single wire-to-wire winner in the sample. While that 0% will surely break eventually, the trend is clear. At Keeneland, early speed is a trap.

0%
Win Rate for GPS E1
(Keeneland Dirt Routes)
32%
Win Rate for GPS E2
(The Presser Seat)
2.5–4.5
Optimal RSE Range
(The Target Zone)

The "Presser" Sweet Spot

So where is the money? It's in the E2 position—the horse sitting 1 to 2 lengths off the lead, watching the speed burn itself out. These "Pressers" are winning at a 32% clip. This isn't just about energy; it's about the configuration of the Keeneland track and the specific way the dirt surface is playing this spring.

RSE: The New Filter

To capitalize on this, we've introduced **RSE (Route Style Early)** to our cards. RSE is the median position a horse takes at the first call in route races. We aren't just looking for "speed"; we are looking for tactical positioning.

The 6.5 Furlong Exception

It's important to note that this isn't a track-wide bias. At 6.5 furlongs on the dirt, the script flips: front-runners (E1) win 40% of the time. This is why distance-specific modeling matters. A horse that is a "Speed Trap" candidate at 1 1/16 miles might be a "Power Position" play at a sprint.

Deployment: v8.3 is Live

This GPS-calibrated logic is now fully baked into the WagerCast Selection Scores. When you see the GPS Bonus badge on today's Keeneland card, you're looking at a horse that our model believes is sitting in the statistically optimal seat for that specific track and distance. Don't chase the lead; chase the position.


↑ All posts

The Power Position: Calibrating Track Bias via GPS Tracking

For decades, the wire-to-wire winner has been the holy grail of handicapping. Most players look at the lead and assume that is where the money is. However, after analyzing over 1,600 Equibase GPS charts across 11 major tracks, we have discovered a more nuanced reality: The Presser is King.

The GPS Deep Dive

We integrated a new tracking system to harvest per-horse data, capturing position, speed, and stride length at every 0.5-furlong interval. By mapping where every winner was actually running at the first call, we found that "Early Speed" is often a trap.

Key Findings at Keeneland and Gulfstream

In Keeneland route races, pure front-runners in GPS Position 1 win only 5% of the time on dirt. In contrast, "Pressers" running second or third early dominate with a 32% win rate. Gulfstream Park shows an even stronger trend across all surfaces, where being one length off the lead is consistently the most profitable seat in the house.

The 6.5 furlong sprint remains the notable exception. On dirt at this distance, the traditional need-the-lead bias still holds, with front-runners maintaining a 40% win rate.

Turning Data into Edge

We used these findings to deploy v8.3 of our model. Instead of a flat bonus for any horse with high early energy, we now use a Median-based Style Metric to identify confirmed Pressers. By rewarding horses that fit the Power Position profile for their specific track and distance—and removing penalties for closers that were previously being over-calculated—we saw an immediate 5.9% improvement in route hit rates during validation.

What is Next

This GPS-calibrated bias is now live for 10 major tracks on WagerCast. We are no longer just looking at how fast a horse can run; we are looking at where they need to be positioned when the gates open to actually reach the wire first.

↑ All posts

MNR Apr 12 Recap: Edge Model Finds a 15/1 Longshot, Goes 3-for-3 on Value Plays

Eight races at Mountaineer Park last night. The selection score system landed zero top-1 winners. The edge model went 3-for-8 on outright winners — including a 15/1 shot — and found 5 of 8 winners inside the top 2 ranked by edge. Here's the full breakdown.

The Scorecard

RaceWinnerMLSS RankEdge RankEdgeNotes
R1HEY BATTER BATTER5/2✅ #2❌ #8−8.0%Top pick LUCHO scratched by stewards
R2ROUBAIX6/1✅ #2✅ #2−0.9%Beat the 7/2 chalk, Garcia/Silva combo
R3MACI'S WORLD6/1❌ #4✅ #1+2.0%Edge top pick won — 2/1 fav finished off the board
R4MOTHER VOLGA15/1❌ #3✅ #1+4.7%🔥 Longshot — edge model's best call of the night
R5MITICO2/1✅ #2❌ #4−0.4%SS was on it; hot J/T combo (42% together)
R6WAJDA5/2❌ #3✅ #1+2.1%Garcia/Silva again — second hit on the night
R7MAGIC MOVER5/1❌ #5❌ #8−2.6%Barbaran/Bernardini connection (23% on 222 starts)
R8FIVEMINUTSOFPASION5/2❌ #5✅ #2+0.8%Dist/surf specialist — 33% win rate at this distance
0%
Selection Score
Top-1 Hit Rate
37.5%
Edge Model
Top-1 Hit Rate
62.5%
Both Models
Top-3 Hit Rate
3/3
Positive Edge Plays
That Won

The headline number is the edge model's 3-for-3 on positive-edge plays. Every horse where the model showed meaningful positive edge going in — MACI'S WORLD (+2.0%), MOTHER VOLGA (+4.7%), WAJDA (+2.1%) — won their race. That's the filter working exactly as designed: not betting every race, but identifying the specific spots where the model believes the market has underpriced a horse.

The 15/1 Play: Mother Volga in Race 4

This is the one worth unpacking. MOTHER VOLGA went off at 15/1 in a maiden-plus claiming field at 6 furlongs. The selection score system had her ranked third — perfectly reasonable given the pace figures in the race. But the edge model had her as the top-ranked horse in the entire field by positive edge at +4.7%.

What was the edge model seeing that the selection score missed? A few things converged: her morning line implied just 6.25% win probability, but the model calculated she had closer to an 11% actual chance — nearly double. The Batista/Donjuan jockey-trainer combination had been working together at a 28.6% clip over 7 shared starts. And at 15/1, you only need to be right once every 15 tries to break even — when the model thinks you're right about 1-in-9, that's a significant edge.

A $20 win bet on the three positive-edge plays (MACI'S WORLD, MOTHER VOLGA, WAJDA) would have returned $12 + $32 + $7 = $51 profit on $60 invested — +85% ROI on the night. Flat betting all 8 races at $10 returns a loss. The filter matters.

The Garcia / Silva Connection

Jockey Francisco Garcia and trainer Juan Pablo Silva put on a clinic last night. They combined for wins in Race 2 (ROUBAIX, 6/1) and Race 6 (WAJDA, 5/2) — two of the eight races on the card. Their overall career record together sits at 23.1% wins across 13 shared starts in our dataset — a legitimately strong number that suggests a real working relationship, not a coincidence.

What makes this more interesting: Luis Negron — the highest-volume winning jockey at MNR — also delivered with MITICO in Race 5. Negron rides at a 25.5% overall win rate. When Negron and the Garcia/Silva team are both on horses the model rates highly, it's a strong card.

Barbaran / Bernardini: The Connection the Model Underweighted

Race 7 is the most instructive miss of the night. MAGIC MOVER won at 5/1 — our selection score had it ranked fifth, the edge model ranked it eighth. Yet both systems were low despite the fact that jockey Erik Barbaran and trainer Jay P. Bernardini are 23% winners together over 222 starts. That's not a small sample quirk — that's a statistically meaningful team that consistently fires.

The model gave MAGIC MOVER a Trainer Bonus of +1.5 and a Jockey Bonus of +2.0, so it partially credited the connection — it just wasn't enough to overcome the pace figure gap with SIR MAXIMUS and BARTULIA. Going forward, when Barbaran/Bernardini are paired on a horse within two score points of the leader, that combination deserves a manual upgrade. It's the kind of angle the data supports but the model doesn't fully price in.

Distance & Surface: Specialists Win at MNR

Three of the eight winners had notably strong records at their specific distance and surface heading in:

HorseRaceDist/SurfDS Win%DS StartsResult
MACI'S WORLDR35½F Dirt15.4%26✅ Won
MAGIC MOVERR71M Dirt28.6%14✅ Won
FIVEMINUTSOFPASIONR85½F Dirt33.3%9✅ Won

Horses with 10+ starts at their specific distance and surface — and a win rate above 15% — went 3-for-3 last night when they appeared. That's not a coincidence. At a track like Mountaineer where the horse population is relatively stable and horses run back frequently, distance/surface specialists carry real predictive weight. It's a filter worth isolating on future MNR cards.

Why Selection Score Struggled

Zero top-1 hits from the selection score system on an 8-race card is an outlier. The most honest explanation is that Mountaineer's lower-level claiming environment introduces noise that hurts pace-based scoring models specifically:

The top-3 rate of 62.5% is actually solid — 5 of 8 winners were inside the top 3 by score. The pace and energy analysis is getting the right horses in the conversation. It's the final ranking step where low-volume trainer data introduces calibration noise.

The Playbook for Mountaineer

What worked: Positive edge as a bet filter (3/3). Garcia/Silva J/T combo (2/2 on the night). Dist/surf specialists with 10+ starts (3/3).

What to improve: Trainer bonus scoring needs a minimum-starts floor — 0% on <10 starts is noise, not signal. Barbaran/Bernardini needs a manual hot-connection flag when within striking distance of the leader.

MNR rule: When the edge model's top pick diverges from the selection score top pick by 2+ positions, trust the edge model. That divergence was present in all three positive-edge winners tonight.

The big picture: edge model 3-for-3 on value plays, found a 15/1 winner the traditional ranking missed, and two specific J/T angles delivered on cue. That's a productive night at Mountaineer. We'll build more MNR history as the meet continues and tighten the trainer data over time.

↑ All posts

KEE Apr 12 Recap: 33% Hit Rate, +47% ROI on Edge Plays, and Two Models That Tell Different Stories

Nine races at Keeneland today with 19 scratches reshaping half the card. The selection score system found 3 winners. The edge system found 2 — and those 2 are the ones that mattered most financially. Here's the full breakdown.

The Scorecard

RaceOur PickScoreEdgeMLResultWinnerWinner RankWin $2
R1USE ME (IRE)15.5-0.7%5/1✅ 1stUse Me (IRE)#1$5.22
R2SENIOR OFFICER19.7+4.2%1/1✅ 1stSenior Officer#1$2.84
R3COMPETITIVE MARKET17.0-7.2%3/1❌ 4thVronti (GB)#10
R4PASS AND GO14.9-1.5%3/1🥉 3rdFlash of Chaos#7
R5MUNNINGS TALKS15.7-4.9%7/2🥈 2ndHow About Now#4
R6PAHOEHOE D'ORO15.1+5.2%4/1❌ Also-ranTake Charge Omaha#6
R7CREED'S GOLD15.2-5.9%10/1🥈 2ndIn Our Time#3
R8CIVIL LIBERTY14.7+6.1%5/2✅ 1stCivil Liberty#1$3.04
R9IRON MAN CAL16.5+2.9%3/1❌ 4thCapitol Hill#6
Top-1 Hit Rate
33%
Top-3 Hit Rate
67%
ROI (all 9 bets)
-38%
ROI (edge plays only)
+47%

33% is nearly double our historical KEE baseline of 17.9% — and well above random (10%). The 67% top-3 rate is the real weapon for exotic bettors. Five of nine races had our pick finish 1st, 2nd, or 3rd. But flat betting every race produced a -38% return. The selection score gets you in the right races. The edge system tells you which ones to actually bet.

The Edge System: 2/2 on High-Conviction Plays

Going into the day we flagged two horses with clear positive model edge and an actual morning line:

HorseRaceEdgeMLResultWin Payout$10 Profit
Senior OfficerR2 D 6F+4.2%1/1✅ WON$2.84+$4.20
Civil LibertyR8 D 7F+6.1%5/2✅ WON$3.04+$5.20

Both edge plays won. A $10 win bet on each returned $28.40 + $30.40 = $58.80 on a $20 investment — +47% ROI. The selection score system alone ($10 flat on all 9 picks) returned $52.20 + $28.40 + $30.40 = $111 on $90 invested — which looks fine until you remember the negative-edge picks dragged it down. The edge filter is doing exactly what it's supposed to: separating the signal from the noise.

Worth noting: IRON MAN CAL had +2.9% edge on paper (R9) and finished 4th. Three scratches significantly reshuffled that field — PITKIN, TENACIOUS LEADER, and SPECIAL JUSTICE all gone — and Capitol Hill emerged from the chaos as a 6th-ranked horse. Scratch-heavy races are the model's biggest vulnerability, and R9 was the clearest example today.

The Miss That Stings: R6 Pahoehoe D'Oro

Our featured value play going in was PAHOEHOE D'ORO in Race 6 — +5.2% edge, 4/1, Dirt 1 1/8M (our best-performing distance/surface bucket at 33%). It finished in the also-rans. Take Charge Omaha won at $5.56 — the same horse our model had flagged with the 🚨 FALSE FAV signal.

This one hurts for two reasons. First, it was our highest-profile recommendation of the day. Second, the False Favorite flag is supposed to be a fade signal — and the horse we flagged won anyway. That's a direct model failure worth logging. Take Charge Omaha had legitimate class (Dirt route specialist, solid pace figures) and the market clearly knew something we didn't. The FF flag has been reliable over our broader backtest, but today was a counter-example. We're watching.

R3: The Scratch Chaos Race

Race 3 is the hardest to evaluate. Five scratches (Canterbury Lane, Oraia, Jerseys Parade, Gigi's World, Sweet Molly B) turned a 15-horse field into a 10-horse affair by post time. Our top pick COMPETITIVE MARKET finished 4th. The winner was VRONTI (GB) at $7.96 — a horse we had ranked #10 in the original field (rank #8 in the scratch-adjusted field), carrying the 🎓 MDN GRAD badge.

VRONTI is actually a useful data point. Maiden graduates in turf routes are one of the categories where our pace-based model structurally underrates horses — pace figures from maiden races don't translate well to open company, and a physically developing lightly-raced horse can improve rapidly. That's a calibration note for the model going forward.

The positive: SY B finished 2nd (our #2 pick at 5/1) and SUNSHINE DAYDREAM 3rd (our #3). The trifecta was in our top 3 picks. The exacta paid $35.58.

Jockey & Trainer Notes

Flavien Prat went 0-for-2 on our top picks (R3 Competitive Market 4th, R6 Pahoehoe D'Oro also-ran). His KEE backtest number stays ugly: 1/15 when riding our model's top-ranked horse. The pattern is consistent — he typically rides underlaid horses the market has already priced correctly, leaving no value. When Prat is our pick but the edge is negative, fade.

Brad Cox won in R2 with SENIOR OFFICER. First top-pick win of the meet for him after a slow start.

William Walden went 1-for-2 — PASS AND GO (R4) finished 3rd, but CIVIL LIBERTY (R8, after BEIJING scratched) won at 5/2. Walden continues to deliver when the model aligns with his horses.

Distance & Surface: The Day's Lessons

SurfaceDistanceResultNotes
T1M✅ Win (R1) / ❌ (R9)1/2 — scratch chaos hurt R9
D6F✅ Win (R2)1/1 — edge play hit
T1 1/8M❌ (R3)5 scratches, maiden grad won
D1 1/16M🥉 3rd (R4)Pick finished 3rd, 8/1 shot won
T1M🥈 2nd (R5)
D1 1/8M❌ (R6)FF winner beat our edge pick
T5 1/2F🥈 2nd (R7)Creed's Gold ran well at 10/1
D7F✅ Win (R8)Post-scratch, edge pick hit

Our backtest flagged Dirt 7F as a 7.7% hit rate bucket — the worst on the KEE card. BEIJING was scratched from R8 (our original top pick, D 7F), and CIVIL LIBERTY stepped up to fill the top slot. That scratch actually helped us: Civil Liberty was a cleaner edge play at 5/2 and won. Sometimes the scratch removes the right horse.

The Playbook Refinements

What worked: Positive edge as a bet filter (2/2). Top-3 coverage for exotic building (6/9). Identifying score gaps as confidence signals.

What needs work: False Favorite flag failed in R6. Scratch-heavy fields (R3, R9) exposed calibration gaps. Maiden grad turf routers are underrated by pace figures.

Rule update: In any race with 3+ scratches, downgrade confidence on all win singles. Use top-3 for exotics instead.

Overall: a solid day. 33% hit rate, 67% top-3, edge system positive. The two misses (R6 and R9) both have clear explanations — a false fav that overcame its flag, and a scratch-reshuffled field. Neither is random noise. Both are model calibration notes we'll act on.

Next KEE card drops Tuesday, April 14.

My Tickets

Two Pick 5s on the day. One consolation cash, one loss.

LegRaceSelectionsWinnerResult
🎟️ Ticket 1 — $0.50 Pick 5 (R1–R5) · $48.00 · Consolation $11.14 (-$36.86)
Leg 1R15, 8, 10, 11Use Me (IRE) — PP8
Leg 2R22Senior Officer — PP2
Leg 3R34, 7Vronti (GB) — PP8❌ missed
Leg 4R43, 7, 10Flash of Chaos — PP10
Leg 5R52, 6, 8, 11How About Now — PP2
🎟️ Ticket 2 — $0.50 Pick 5 (R5–R9) · $30.00 · Lost
Leg 1R52, 6, 8, 11How About Now — PP2
Leg 2R64Take Charge Omaha — PP1❌ missed
Leg 3R71 (SCR → replacement), 7In Our Time — PP7✅ scratch replacement hit
Leg 4R88Civil Liberty — PP8
Leg 5R94, 11, 12Capitol Hill — PP5❌ missed

Ticket 1 went 4/5 — Vronti (GB) at PP8 in R3 was the killer, a rank #10 maiden grad we didn't have. The consolation came back $11.14 on a $48 ticket. Painful. Ticket 2 was undone by Take Charge Omaha in R6 (had PP4, winner was PP1) and Capitol Hill in R9 (had 4/11/12, winner was PP5). Net on the day: -$66.86. The model was right on the winners — the tickets just needed Vronti and Capitol Hill.

↑ All posts

KEE Apr 12: Full Card Picks, Jockey/Trainer Backtest & Distance-Surface Breakdown

Nine races at Keeneland today — a mix of turf routes, dirt sprints, and a couple of dirt routes that represent the model's strongest recent surface. Here's the full WagerCast breakdown: top picks by selection score and edge, plus the jockey, trainer, and distance/surface data from the past two weeks of the meet so you know where the real edge is.

The Card at a Glance

RacePickMLScoreEdgeSurfaceDistanceFlags
R1USE ME (IRE)5/115.51-3.9%T1M
R2SENIOR OFFICER1/119.65+3.4%D6FGap +1.37
R3COMPETITIVE MARKET3/116.97-8.9%T1 1/8M
R4PASS AND GO3/114.89-4.5%D1 1/16M
R5MUNNINGS TALKS7/215.67-6.6%T1MGap +0.70
R6PAHOEHOE D'ORO4/115.05+4.7%D1 1/8MGap +0.38
R7CREED'S GOLD10/115.21-7.0%T5 1/2FGap +0.37
R8BEIJING4/116.43-10.3%D7F⚠️ Danger dist
R9IRON MAN CAL3/116.52-0.7%T1MTiny gap (0.03)

Two horses show positive model edge today: SENIOR OFFICER in Race 2 and PAHOEHOE D'ORO in Race 6. Both are on dirt routes — exactly the segment where WagerCast has performed best this meet. Those are the bets worth circling.

The Top Two Value Plays

R2 — SENIOR OFFICER (even money, D 6F)

Highest selection score on today's entire card at 19.65, biggest score gap (+1.37 over the field), and a +3.4% positive edge — meaning the model thinks he's about 3-4 points underpriced against the morning line. Running at even money might feel like a laydown, but an even-money horse with legitimate positive edge is rare. The model is saying the market hasn't caught up yet. The concern: trainer Brad Cox is 0-for-3 at KEE this meet when our model tops a race. That's a flag worth noting, but the horse's own pace profile and edge are too clean to fade entirely.

R6 — PAHOEHOE D'ORO (4/1, D 1 1/8M)

The better value play of the two. Edge of +4.7% at 4/1 means the model believes this horse has a meaningful probability advantage over what the morning line implies. The dirt route at 1 1/8M is our best-performing distance/surface combination this meet (33.3% top-pick win rate — more on that below). Trainer Philip D'Amato doesn't have a big KEE track record in our data, but there's no red flag either. Clean setup, good price.

Positive edge plays today: R2 SENIOR OFFICER (+3.4%) and R6 PAHOEHOE D'ORO (+4.7%). Both on dirt. Both worth a look. R8 BEIJING is the highest-scoring dirt horse but has a -10.3% edge and sits in the model's worst-performing distance bucket (D 7F). Pass on BEIJING win singles.

Jockey Backtest — Keeneland 2026 Spring Meet

We ran every KEE race from April 3–11 (56 races, 10 wins = 17.9% overall hit rate) and measured how each jockey performed when riding our model's top-ranked horse. The results separate the jockeys who deliver when the model is hot from those who consistently fade.

JockeyRides as Top PickWinsWin%Today's Ride
Machado Luan2150%
Hernandez Jr Brian J3133.3%
Gaffalione Tyler7228.6%R1 USE ME (IRE)
Ortiz Jr Irad8225.0%R2, R5, R8
Velazquez John R4125.0%
Prat Flavien1317.7%R3, R6
Ortiz Jose L400%R4
Saez Luis600%

The Flavien Prat number is the strangest in the dataset. He's the highest-volume top-rider at KEE with 13 rides as our model's top pick — and only 1 win (7.7%). What's happening? Prat typically rides the favorites, which means he often pilots horses the market has already bid down below their true value. The model recognizes the pace edge but the price is already gone. When Prat is our top pick, it's often a horse the public agrees with — and public consensus favorites don't hit at 25%+.

Tyler Gaffalione is the standout at 28.6% — best among the high-volume riders. He's on USE ME (IRE) in Race 1 today. Trainer Walsh is a concern (see below), but Gaffalione has been delivering when the model agrees with him.

Irad Ortiz Jr. at 25% is solid — he's on three races today (R2, R5, R8). Note that BEIJING in R8 sits in the model's worst-performing distance bucket, so that's not a clean Ortiz spot despite his numbers.

Trainer Backtest — Keeneland 2026 Spring Meet

TrainerRaces as Top PickWinsWin%Today's Horse(s)
Ward Wesley A3266.7%
Pletcher Todd A2150%
Lynch Brian A3133.3%
McCarthy Michael W3133.3%
Walden William3133.3%R4 PASS AND GO, R8 BEIJING
Asmussen Steven M200%
Brisset Rodolphe200%
Brown Chad C300%R3 COMPETITIVE MARKET
Cox Brad H300%R2 SENIOR OFFICER
Harty Eoin G200%
McPeek Kenneth G200%
Walsh Brendan P400%R1 USE ME (IRE), R5 MUNNINGS TALKS

William Walden is the biggest positive signal today — 33.3% win rate with our model at KEE, and he saddles two horses today: PASS AND GO (R4) and BEIJING (R8). The Walden x Ortiz Jr. combination (both R4 and R8) is worth watching even if we're fading BEIJING's distance spot.

The red flags are harder to ignore. Brendan Walsh is 0-for-4 as our top pick trainer at KEE. He has USE ME (IRE) in R1 and MUNNINGS TALKS in R5 today — both horses we'd otherwise like based on score. The trainer fade is real and forces these into play-with-caution territory rather than win singles.

Brad Cox is 0-for-3, which makes the SENIOR OFFICER situation more interesting. The model loves the horse. The trainer data says something's off. The edge says bet. Our lean: box SENIOR OFFICER in exactas rather than hammering the win pool.

Chad Brown at 0-for-3 is the clearest fade. COMPETITIVE MARKET leads Race 3 by score (16.97) but with a modest edge of -8.9% and the Brown red flag — this is a good race for an upset from SY B (score 15.66, +1.7% edge, 5/1).

Distance & Surface Backtest — Keeneland 2026 Spring Meet

This is where things get genuinely useful. We tracked every KEE race this meet and measured the model's top-pick win rate broken down by distance and surface. The spreads are significant.

SurfaceDistanceRacesWinsWin%Signal
Dirt1 1/16M8337.5%⭐ Best
Dirt1 1/8M3133.3%✅ Strong
Dirt6F4125.0%Neutral
Turf1M5120.0%Neutral
Turf1 1/16M11218.2%Neutral
Dirt7F1317.7%🚩 Fade
Dirt6 1/2F500%🚩 Cold
Turf5 1/2F400%🚩 Cold
Dirt Route (≥1M) Win%
34.5%
Dirt Sprint Win%
9.7%
Turf Route Win%
19.0%
Turf Sprint Win%
0%

The headline finding: WagerCast's model is built for dirt routes at Keeneland. Eleven wins from 11 qualifying races would be 100% — we went 4 for 11, a 36% hit rate that's nearly 4x random. The pace model captures the energy distribution over distance better than the sprint game, where raw speed and gate luck dominate.

Dirt 7F is the landmine. Thirteen races into the meet, our top pick has won exactly once (7.7%). That's actually below random for a top pick. Something about the 7F distance specifically doesn't suit our pace model — likely because 7F at KEE attracts a chaotic mix of true sprinters stretching out and routers cutting back, making pace profiles noisy. BEIJING (R8, D 7F) is a model fade on this basis alone, despite a high score.

Turf sprints (5 1/2F) are 0-for-4. CREED'S GOLD (R7) runs in exactly this spot. Score 15.21, gap of 0.37, but negative edge (-7%) and in the model's coldest bucket. Use in exotics, not win singles.

Today's Playbook

Best bet: R6 PAHOEHOE D'ORO — +4.7% edge, D 1 1/8M (33% hit rate), clean trainer, 4/1 price
Value look: R2 SENIOR OFFICER — top score on card (19.65), +3.4% edge, best gap — use in exactas given Cox trainer flag
Alt angle R3: SY B over COMPETITIVE MARKET — Brown 0/3 KEE, SY B has +1.7% edge at 5/1
PASS: R8 BEIJING (D 7F = 7.7% hit rate), R7 CREED'S GOLD win singles (turf sprint = 0%)
Watch: Walden x Ortiz Jr. exotics in R4 (PASS AND GO) — trainer +33% at KEE

The data edge at Keeneland is clearly on dirt routes. Two of today's nine races fit that profile with positive model edge. That's a good day for focused betting — not a spray-and-pray card.

We'll post results tonight once the card is complete.

↑ All posts

Apr 11 Recap: 44% Hit Rate at Keeneland, a +44% ROI Edge Filter, and What Went Wrong

Yesterday was one of WagerCast's better single-day results since we started tracking — and also one of the more instructive. Strong at the tracks we expected, ugly at the ones we didn't, and the edge system drew a sharp line between value and noise. Let's break it all down.

The Scorecard

We had scored picks for 56 races across six tracks: Keeneland, Aqueduct, Gulfstream, Oaklawn, Laurel, and Tampa Bay Downs. A random pick finds the winner ~10% of the time. We more than doubled that overall and nearly quintupled it at Keeneland.

TrackRacesTop-1Top-3T1%T3%
KEE94544%56%
AQU83738%88%
OP123625%50%
LRL92422%44%
GP101510%50%
TAM8020%25%
All56132923%52%

Keeneland: The Model's Home Track

KEE was the story of the day. Four top-1 wins from nine scored races — every winner had a pace score above 12, and every top-1 win came with high model conviction:

RaceWinnerOur RankPace ScoreMLPace
R1WEST COAST DREAM#112.496/1Fast
R3EYE DEE KAY#113.588/5Fast
R7NOBLE CONFESSOR#112.813/1Fast
R11WEST END KID#116.169/2Fast

No squeakers, no flukes. The model ranked them first and they won.

The misses are just as telling. R9 (Jenny Wiley G1) and R10 (Lexington G3) were both graded stakes — exactly the kind of race where pace modeling loses edge to pedigree, fitness, and class dynamics the model can't fully see. EXPENSIVE QUEEN finished ranked #10 of 10 in our system and won the G1. TRENDSETTER went off at 20/1 ranked #7. Grade stakes are spread bets, not win singles. Confirmed again.

The Edge System Draws a Line

The value model isn't just about picking winners — it's about identifying when the morning line is wrong. Here's what happened when we filtered by minimum edge threshold yesterday:

Edge FilterBetsWin%ROI
Any positive edge5618%-31%
≥5% edge1844%+2%
≥8% edge743%+3%
≥10% edge560%+44% 🔥

The pattern is clear: drift from the high-conviction zone and returns erode fast. The five plays at ≥10% edge:

HorseTrackEdgeFair%ScoreResult
NO MO MUFFINSLRL R112%62%15.6✅ Won
GRAYWINGAQU R511%44%12.4✅ Won
MUNNINGS CHALLENGEOP R910%56%15.8✅ Won
AUTHENTIC STRIKEKEE R612%46%14.9❌ Lost
ILLMATICAQU R615%57%11.7❌ Lost

The two losses are worth studying. AUTHENTIC STRIKE had every signal aligned — 12% edge, 46% fair probability, 14.9 pace score, Slow pace setup. ORIGINAL SIN (8/1, our #3) just ran the better race. ILLMATIC had the highest edge of anyone on the card at 15%, with a 57% fair win probability, and lost as the 7/5 favorite. Racing result, not a modeling failure.

The golden combo that went 3/3 today: Edge ≥10% + Fair probability ≥40% + Pace score ≥12. When all three lights are green, the model is confident for a reason.

Jockey & Trainer Angles

Tyler Gaffalione had a quietly strong day at KEE — 3 wins from 10 mounts (30%), including the upset ORIGINAL SIN at 8/1 in R6 and WEST END KID at 9/2 in R11. That's a notable reversal from his fade signal through the first week and a half of the meet (1-for-39 across Apr 3–10). Worth watching whether this is a correction or a one-day aberration.

Brendan P. Walsh went 2-for-4 at KEE — both wins came with the model ranking the horses highly. When Walsh runners show up with high pace scores, they're converting. Make a note.

Kazushi Kimura was the wildcard — two KEE winners (MAGICAL FACTOR 15/1, TRENDSETTER 20/1) both buried well outside our top 3 in Fast-pace races. Grade stakes chaos, but it's a data point to track.

Across all tracks, Todd Pletcher went 3-for-5 (60%) — the best trainer performance of the day. His runners included NOBLE CONFESSOR (our #1 at KEE R7) and two others. The rule holds: when Pletcher horses align with strong pace scores, bet them.

On the fade side: Prat Flavien went 0-for-8 at KEE. Alvarado Junior 0-for-4 after being one of the stronger dirt jockeys through the meet's first two weeks. One bad day doesn't erase the trend, but worth flagging.

What Went Wrong: Gulfstream and Tampa

GP gave us five misses, all Fast-pace races, with winners buried at ranks 4–7. Every losing winner at GP had a pace score between 1.85 and 8.99 — well below typical winners. Either GP's pace profile isn't calibrating cleanly right now, or Fast-pace races there are simply too noisy to model reliably at this point in the meet. We're watching.

Tampa Bay Downs went 0-for-7 in scored races. Every winner ranked 4th or worse. TAM is a short-field, cheap-claiming track where pace shapes are compressed — the model can't find separation. WIN singles at TAM are off the table until we see a reason to bring them back.

The Slow Pace Signal: Still the Most Reliable Finding

Slow Pace — Top-1%
26%
Slow Pace — Top-3%
59%
Fast Pace — Top-1%
21%
Fast Pace — Top-3%
45%

Slow pace has now outperformed Fast in every data window we've run: the two-week KEE backtest, today's full 56-race sample. When WagerCast flags Slow pace, respect it.

The Playbook Going Forward

WIN singles: Edge ≥10% + Fair% ≥40% + Pace score ≥12 + Slow pace shape
Exotics: Top 3 picks in Fast-pace races, spread in graded stakes
Avoid: GP Fast-pace races (for now), TAM win singles, graded stakes singles

23% top-1 hit rate across 56 races. Random gets 10%. The ≥10% edge filter delivered +44% ROI on a single afternoon. The models are working — the discipline is knowing which filter to apply.

We'll be back with the KEE Apr 12 card breakdown later today.

↑ All posts

Why We Switched to Edge-Based Betting (And What the Data Says)

We built WagerCast on a solid handicapping foundation — pace analysis, class evaluation, connections, workouts. The model was good. Top pick won 24.8% of races across 2,300+ starts. Better than a coin flip. Better than most tout sheets.

But we kept asking the same question: good at picking winners, but are we finding value?

There's a difference. A 4/5 favorite wins 55% of the time and still loses you money long-term if you bet it blindly. A 12/1 shot wins 8% of the time and can be highly profitable if the real probability is 15%. The win rate isn't the point — the edge is the point.

So we ran an experiment. We built a dual logistic regression model trained on 700+ races, and instead of ranking horses by our score, we started asking a different question: where does our predicted win probability exceed what the morning line is implying?

That's the edge. If the morning line says a horse has a 20% implied chance of winning, but our model says 31%, that's an 11-point edge. The market is undervaluing that horse — and you can bet it with mathematical confidence.

What the backtest showed

We ran a walk-forward validation on 717 races — meaning the model was trained on past data and tested on future races it had never seen, which is the only honest way to validate.

Edge ThresholdBetsWin RateROI
2%+56224.4%+2.3%
5%+26728.8%+11.8%
8%+11535.7%+23.0%
10%+7237.5%+12.4%

The 8%+ tier is the headline: 35.7% win rate and +23% ROI over 115 bets. That's not noise. That's signal.

It works across all price tiers

What surprised us most: the model found value at every price point.

Odds TierBetsWin RateROI
≤2/1 (chalk)11845.8%+6.8%
5/2–4/115534.8%+22.9%
9/2–8/16320.6%+26.2%

The mid-range (5/2–8/1) is where the model shines brightest. These are horses the market treats as legitimate contenders but slightly misprices — exactly where inefficiencies live.

The longshot problem (and our solution)

Longshots are different. At 8/1+, the morning line implied probability is a less reliable market signal — there's less information baked in. So we built a second model for longshots: same features, but no market signal. It has to find value from fundamentals alone.

The result is our PRIME alert system. Horses scoring 80+ on our longshot composite (speed vs. field, consistency, hot jockey, class drop, pace rank) win at 9.9% with an average ML of 11.8:1. On flat win bets, they're near break-even — but the real value is in exotics. PRIME longshots underneath your top edge picks in exactas and trifectas change the payout math dramatically.

Why this changes how you use WagerCast

The old model told you who was most likely to win. The new model tells you who is most likely to win relative to what the market is paying.

That's a meaningful distinction. You'll see races where our top edge horse is ranked lower by raw pace numbers — because the market has over-bet the "obvious" pick and underpriced something with real form. You'll see chalk at negative edge (bet at your own risk) and longshots at +15% edge (take a serious look).

The thesis: Filter by 5%+ edge. Bet those horses. Track your results. The data backs it up.

WagerCast is a value betting probability model. Past backtest performance does not guarantee future results.

↑ All posts

Chasing the Zone: When the Data Humbles You

There's a concept in pace handicapping called the Optimum %Early. The idea is simple: every track has a sweet spot — a range of early-pace energy distribution that winners tend to fall into. Too much early speed and you tire. Too little and you never get into the race. The winners cluster in the middle, and that cluster is the zone.

Tonight I spent a few hours trying to turn that concept into a betting edge. Here's what I found — the good, the frustrating, and the thing that actually works.

Starting Point: A Broken Flag

The site has had a 🚨 False Fav badge for a while. The idea was to flag morning-line favorites whose pace profile was a mismatch for the track — take the public's money and fade them.

Except I never actually backtested whether the flag worked. Tonight I did.

The original logic fired when our model's top-ranked horse happened to be the ML favorite AND had a below-zone %Early figure. Sounds reasonable. Except those horses won at 33.6%. That's better than the 22.3% baseline. The flag was marking horses to fade that were literally winning a third of the time.

Completely backwards. The flag was finding good horses with slight pace quirks and telling you to bet against them.

Fixed it. The new logic: fire when the public's favorite (not our top pick) has a below-zone pace profile AND our model has already ranked them lower. That's the actual false favorite — the crowd loves it, the track history says the pace doesn't fit, and our model independently disagrees.

Backtest on the corrected flag? −0.7% win rate difference vs. normal favorites. Basically nothing. The signal exists but it's noise-level at our current sample size. I'm keeping it on the site as experimental — it's not hurting anything and the concept is sound — but I'm not building a betting strategy around it.

The Zone Itself: Better as a Negative Filter

While I was in there, I dug deeper into what zones actually predict.

For all horses at 4/1 or longer — value plays where you're actually getting paid for being right:

The zone doesn't tell you who's going to win. But it does tell you who's more likely to not win. Below-zone longshots hit −55% ROI. That's a real edge — just in the direction of eliminating horses, not selecting them.

The 4/1–7/1 midfield range showed the clearest gap: in-zone horses at 11.8% win rate vs. below-zone at 8.9%, with a +15.8% ROI difference. Real money, real signal.

The Part That Actually Works: Zone + Late Pace

Then I asked a different question. What if you stack the zone condition with something else?

Sustainability (the ability to maintain pace through the stretch) combined with zone fit: barely moved the needle. +0%.

LP — late pace, the final fraction speed — combined with zone fit: +14.6% ROI improvement over baseline.

CombinationWin%ROI
All 4/1+ horses7.1%−38.0%
Zone fit only7.5%−34.5%
Zone + top-25% LP9.1%−23.4%

The logic makes sense in hindsight. A horse that runs the right early pace profile for the track and still has a strong final fraction is doing something genuinely special. It's not burning out early. It's not just coasting to the finish. It's threading the needle — right amount of early energy, real kick at the end.

That combination is now a flag on the site. The 🎯 Zone Play badge (purple, you'll see it on the race cards) fires when a 4/1+ horse hits both criteria: %Early in the zone for that track/surface/distance, and LP in the top 25% for that race type.

1,565 horses flagged in our historical data. 9.1% win rate. Still negative ROI standalone — horse racing almost always is — but +14.6% better than betting value horses blindly.

What I Tried That Didn't Work

In the interest of honesty:

Gating the ⚡ Upset flag on zone fit: Below-zone horses with upset signals (hot connections, track specialist, trouble trip) won at 13.6%above the 12.4% average. Their specific signals override the pace mismatch. The zone gate made results worse. Reverted.

Zone + sustainability as a combo: Sustainability is already baked into the scoring through the power calculation. It's correlated with LP but not as direct. Adding it on top of zone + LP diluted the signal slightly (9.1% → 8.7%).

The Takeaway

Zones are real. The track does reward certain pace profiles, and the historical data confirms it clearly once you look at enough races.

But zones alone don't isolate winners. They isolate pace fit — and pace fit is a necessary but not sufficient condition. Stack it with something that measures what the horse does in the second half of the race, and you get a signal worth paying attention to.

We now have 37 track-specific zones (plus 4 surface/distance fallbacks) computed automatically from historical winners, updating as new results come in. Every horse card on the site shows zone context in the narrative. Value horses get the full breakdown. The best ones get the badge.

More to come.


↑ All posts

What 1,896 Races Taught Me About Building a Handicapping Model

Most people who build something like this don't show you the failures. They show you the final win rate and skip the part where they tried twelve things that made it worse.

This is the part where I show you the failures.

What Backtesting Actually Is

Every morning, WagerCast ranks every horse in every race using a Selection Score — a composite number built from pace figures, jockey and trainer stats, class, recent form, workouts, and a handful of other signals. The top-ranked horse is our pick.

Backtesting is simple: we collect the actual race winners after the fact, join them against our rankings, and ask — how often was the winner the horse we ranked #1?

No hindsight. No cherry-picking. Every race we have data for goes into the number.

Right now, after 1,896 races across 14 tracks:

24.7%
Top pick wins
the race
42.8%
Winner in
our top 2
57.9%
Winner in
our top 3
1,896
Races · 14 tracks
v8.1 model

In a typical 10-horse field, random chance gives you a 10% win rate. We're running at 24.7%. The model is doing real work.

How the Model Got Here: v7 → v8 → v8.1

The current version didn't start here. It went through several rounds of testing, failing, adjusting, and occasionally making things worse before getting better.

Version 7 (971 races): Top-1 at 24.2%, Top-3 at 57.0%. The baseline. A solid foundation but several scoring components weren't weighted right.

Version 8 (1,368 races): Top-3 improved to 58.6%. The big changes:

Version 8.1 (1,896 races): Top-1 improved to 24.7% — a +1.1% gain that is statistically significant (p=0.034).

The key change: sprint FPS filtering. For sprint races, the model was mixing in route past performances when calculating speed figures. Route races have different timing call points (4F/6F) than sprints (2F/4F). Mixing them inflated the sprint averages in ways that confused the rankings. Now sprint FPS uses only sprint past performances. One methodology fix, one meaningful improvement.

The Things That Didn't Work

This is the part most people skip. I'm not skipping it.

Tactical Score — we built a full scoring component based on running style: pressers, stalkers, closers. The population-level signal was real. When we added it to the Selection Score, all hit rates dropped. Logistic regression confirmed a negative coefficient. Removed from scoring entirely, still displayed on cards as context.

Distance transition penalties — horses switching distances have distinct pace profiles. Route Presser, Sprint Closer, Sprint Fader. Population data showed real differences in win rates. Adding them to scores added noise. Removed from scoring, kept as narrative flags.

Sprint Fader penalty — directionally correct but flagged 16% of all route entrants. Too broad. Removed.

Neural network experiment — we trained a shallow neural network on 18 raw features and cross-validated it against the Selection Score. Result: NN top-3 was 48.2%, Selection Score was 60.5%. The hand-tuned model won by 12+ points. The neural net needs roughly 2,500+ races to potentially compete. We'll revisit when we get there.

8f reclassified as Route — a mile sounds like a route. Tested it. Top-1 dropped 0.9%. The 2F/4F timing structure at 8f is identical to sprints. Reverted.

What the Regression Says

Running logistic regression on all scoring components gives us the relative importance of each factor in predicting winners:

FactorImportance
Power Score (pace velocity + sustainability)21.0%
Class Bonus17.3%
Jockey Bonus15.0%

Power Score topping the list makes sense — it's the core of the model. Class and jockey being #2 and #3 surprised me when I started building this. The crowd underrates class movement and overrates raw speed figures.

The Neural Net Finding That Stuck With Me

Feature importance from the neural net ranked factors in this order: JockeyWinPct, TrainerWinPct, J/T combination win rate, V3 (velocity), TE (total energy).

What had weak or no signal: today's class label, average class rating, trouble trip score, workout count.

That last one is counterintuitive. Workout count doesn't predict winners. Workout quality — the fps of those workouts, the spacing — does, and that's already baked into the Workout Bonus. The raw count is noise.

Where This Goes Next

Three things on the roadmap with real theoretical backing:

The model is at 24.7% top-1 win rate on nearly 1,900 races. The backtest is live on the site at wagercast.xyz. Every day's results are updated automatically and folded in.

Building in public means the numbers update whether they go up or down.


↑ All posts

Saturday Recap: Gulfstream Park & Oaklawn — How WagerCast Called It

Saturday was a 14-race card at both Gulfstream Park and Oaklawn Park. Here's a race-by-race look at how the model performed — what hit, what missed, and what the results actually taught us about the system.

🏇 Gulfstream Park — 3 for 14 (21%)

Three solid hits, a Florida Derby near-miss by a tenth of a point, and a Grade 3 win from our highest-scored horse of the day.

R2 — SOVEREIGN LAW (8/1) ✅
Our top-ranked horse in a maiden field, Selection Score 14.55. The public dismissed him at 8/1; the pace profile didn't. He wired the field. This is exactly the type of play the BET filter is built around — dominant score, clear gap over the field, right price.

R3 — IMMORTALISED (FR) (3/1) ✅
Hit — with an asterisk. We had a 🚨 False Favorite flag on this horse, meaning his energy distribution was below the GP turf zone for 7½ furlongs. He won anyway. That's a counterexample worth documenting honestly: the False Fav flag is a warning signal, not a veto. One race doesn't reverse the data, but it keeps us calibrated.

R13 — FAR BRIDGE (8/5) ✅ — Pan American S. (G3)
Our highest Selection Score of the entire day: 16.41. Identified as a 🔥 Fast Pace race — two energy-forward horses set up a contested pace scenario over 1½ miles on turf. In those conditions, the horse with the most sustainable speed wins going away. FAR BRIDGE did exactly that. Best result of the day.

Misses Worth Understanding

R4 — Appleton S. (G3) — SPIRIT OF ST LOUIS ❌ (QUATROCENTO won, 3/1, rank 4)
The top five horses in this race were separated by just 2.3 score points. When fields compress that tightly, the model is essentially a coin flip. That's honest variance, not a flaw — compressed fields are genuinely hard to separate.

R5 — ADIOS NOW ❌ (WISTUCKY won, 15/1, rank 4)
Slow Pace race. Our top pick had a +0.5 Pace Shape bonus as a front-runner in a slow setup — exactly the scenario the feature is meant to catch. WISTUCKY won from rank 4, also pace-bonused. Right read on race shape. Wrong horse within it.

R7 — Ghostzapper S. (G3) — FORGED STEEL ❌ (GRANDE won, 1/1, rank 2)
We went 10/1 over even-money. GRANDE beat our pick by 0.90 score points. Tight miss on a Grade 3 — the model had the right race type, the public had the right horse by a hair.

R8 — Orchid S. (G3) — RAMSEY POND ❌ (SULTANA won, 12/1, rank 5)
We led with RAMSEY POND at 20/1 over the 8/5 favorite BELLEZZA, who was flagged 🚨 False Fav and finished off the board. The False Fav call was correct — the wrong outcome was picking the right kind of race and finding the wrong longshot within it. Two longshots in the same Grade 3 is a tough environment.

R9 — GP Oaks (G2) — NASTI Z ❌ (PROM QUEEN won, 9/5, rank 5)
We had NASTI Z at 30/1 as our top-scored filly. PROM QUEEN won at 9/5 from rank 5. Graded stakes with wide-open form are the hardest environment for pace-based scoring. When lightly-raced fillies haven't fully established their pace profiles, the model is working with incomplete information.

R14 — Florida Derby (G1) — NEARLY ❌ (COMMANDMENT won, 5/2, rank 2)
NEARLY scored 14.35. COMMANDMENT scored 14.26. Nine hundredths of a point separated our top pick from the winner of the biggest race on the Gulfstream calendar. The model had the race completely right — winner was sitting rank 2. That's the Florida Derby.

In the five graded stakes at GP on Saturday, we went 1 for 5 (FAR BRIDGE in the Pan American). Graded stakes attract horses whose form is deliberately obscured, managed, and pointed. The pace model works best where public money hasn't already compressed the pricing. We're honest about that.

🏇 Oaklawn Park — 2 for 13 (15%)

A harder day at OP. Several low-differentiation fields and a Grade 1 in the Arkansas Derby made for a rough card — but two results stand out as exactly what the model is supposed to produce.

R1 — ONE WAY OR ANOTHER (2/1) ✅
Slow Pace race, top score, front-runner profile. Clean execution in a small field. Low drama, just the model working.

R10 — B SUDD (20/1) ✅
This is the one to highlight. Our top-ranked horse at 20/1, beating a 10-horse field. The ML favorite MOE EIGHTY EIGHT (8/5) was flagged 🚨 False Fav — and the flag was right. MOE EIGHTY EIGHT got beat. B SUDD paid 61-1. This is the False Fav feature doing exactly what it's supposed to: surface a misalignment between public price and pace profile, so you can look elsewhere for value.

Misses Worth Understanding

R4 — Temperence Hill S. — JOKESTAR ❌ (PARCHMENT PARTY won, 1/1, rank 6)
JOKESTAR was our top-scored horse AND flagged 🚨 False Fav. The flag correctly signaled something was off with JOKESTAR at 8/5. PARCHMENT PARTY won at 1/1 from rank 6 — also flagged FF and carrying an ⚡ upset signal. The fade was right; we just didn't have the winner ranked up.

R5 — NOBLE AFFAIR ❌ (TWO SEVEN O won, 5/2, rank 5)
NOBLE AFFAIR at 1/1, flagged False Fav, didn't win. Back-to-back races at Oaklawn where the flagged ML favorite failed. Two is still a small sample — but it's directionally what the feature is supposed to do.

R11 — Oaklawn Mile S. (G3) — NEOEQUOS ❌ (NU WHAT'S NEW won, 3/1, rank 5)
Similar pattern to the Gulfstream Grade races — graded stakes at OP showed the model's limits in deep, competitive fields where connections are managing horses toward specific targets.

R13 — Arkansas Derby (G1) — LITMUS TEST ❌ (RENEGADE won, 3/2, rank 5)
The biggest race of the day at OP. RENEGADE was the 3/2 public choice and won from rank 5 — but the model had flagged RENEGADE with an ⚡ upset signal, meaning something in the profile registered as disruptive even though the score ranked him fifth. Interesting data point as we continue building out the flag system: the winner was flagged, just not ranked.

The Bigger Takeaways

5/27
Combined GP+OP
top-pick wins
0.09 pts
Florida Derby margin
(our pick vs. winner)
61-1
B SUDD payoff —
False Fav call correct
1/5
Graded stakes hit rate
(FAR BRIDGE, Pan Am G3)

False Fav flags are earning their keep. Across both tracks on Saturday, flagged horses at OP R4, R5, and R10 all failed to win. B SUDD at 20/1 winning while the 8/5 False Fav got beat is the textbook result this feature is designed to surface.

Graded stakes are a different game. We went 1 for 5 in graded races on Saturday. Pace handicapping has less edge when form is managed and fields are elite. That's not a flaw to fix — it's an honest signal about where to focus your action.

Compressed scores = low confidence. Several Saturday misses (Appleton G3, Temperence Hill S.) had top-5 horses within 2–3 score points. That's the model telling you the race is genuinely hard to call. We're working on surfacing that signal more explicitly on the card.

The 32-day backtest sits at 24.8% win rate on 1,747 races, with a +5.1% ROI on BET-filtered spots. One Saturday in late March doesn't move that needle — but it gives us real data to keep building on.

Full cards for today's races are live at wagercast.xyz.


↑ All posts

The %Early Zone: What Brohamer and Sartin Knew That Most Bettors Don't

Speed figures get all the attention. If a horse has the top Beyer coming in, most bettors assume that's the horse to beat. But here's an uncomfortable truth backed by decades of research: most races are won by horses that are NOT the top speed figure horse. The reason? Energy distribution.

Tom Brohamer and Howard Sartin figured this out long before modern data tools existed. Their core insight: every horse has a preferred pattern of how it distributes energy across a race, and every track has an optimal pattern for winners. When those two things don't match, the horse is working against the track — regardless of how fast it ran last time.

Today we built that concept into WagerCast.

What Is %Early?

%Early is a single number that describes how a horse distributes its energy. It's calculated from feet-per-second velocity figures:

Total Energy = Early Pace (EP) + Final Fraction velocity
%Early = EP ÷ Total Energy

A horse with a %Early of 53% expends 53% of its total energy before the second call, leaving 47% for the stretch run. A horse at 50% saves more for late — it's a deeper closer. The typical range runs from about 49% (pure sustainers) to 54%+ (front-runners who empty the tank early).

What makes this more than a curiosity is what Brohamer and Sartin discovered next: each track, surface, and distance combination has an optimal %Early — a sweet spot where winners tend to cluster. They called this "The Zone."

The Zone — Built From Our Own Data

Rather than rely on published figures from other tracks, we computed WagerCast's Zone values directly from our own backtest database — 1,747 verified winners across 16 tracks and 4 surface/distance combinations. For each track, we calculated the median %Early of all winning horses and defined The Zone as:

The asymmetry is intentional. Brohamer's research found that surprise winners tend to come from the high side of The Zone — horses with a little more early pace than the optimum — not from the low side. Horses below the Zone on the low end are working hardest against the track bias.

Our data confirmed this. Looking at top-ranked horses across our full dataset: horses inside The Zone win at 24.4%. Horses whose %Early falls more than 1% below the Zone low win at just 19.3%. That's a meaningful gap — roughly one fewer win per five races.

The False Favorite Signal

The most actionable application of %Early isn't about finding winners — it's about identifying false favorites. Brohamer's research found that favorites whose %Early falls outside The Zone on the low side win less than 14% of the time in non-maiden races — roughly half what you'd expect from a morning-line favorite.

That's a powerful fade signal hiding in plain sight. When the public has hammered a horse down to short odds but its energy distribution is fundamentally mismatched with what the track rewards, the crowd is likely wrong.

Today we added a 🚨 False Fav badge to WagerCast. It fires when three conditions are met simultaneously:

On a typical day, this badge fires on just 2–3 races across the entire national card. It's rare by design. When it shows up, pay attention.

An Important Caveat

We tested whether using %Early as a direct score modifier improved our top-pick win rate. It didn't. Backtesting showed that while below-Zone horses win less often on average, our model had already incorporated pace information well enough that penalizing the score caused more wrong flips than right ones.

This matches exactly what Brohamer wrote: "%Early is not a standalone handicapping factor. It will seldom isolate who to play, but it can be deadly accurate in eliminating false contenders — including false favorites."

So the False Fav badge isn't changing any scores. It's a warning flag layered on top of the model — information for you to weigh, not an automated fade. The Presser, Closer, and Fader distance-transition signals work the same way: they live in the detail section of each card as context, not as score modifiers.

What This Looks Like in Practice

On today's card (March 28), the badge fired on three races: GP R3 (borderline — barely below zone), OP R4 (JOKESTAR 8/5 — 1.2% below zone on a 12f route), and OP R5 (NOBLE AFFAIR 1/1 — 0.6% below zone, also a maiden graduate). Two of three are worth watching closely. In both cases, the public price is short, the bias is working against them, and there's a pace mismatch with what Oaklawn has historically rewarded.

Whether they win or not doesn't validate or invalidate the signal — individual races are noisy. But over hundreds of races, the pattern is real, and now WagerCast surfaces it automatically every day.

What's Next

The %Early Zone opens the door to several other Brohamer concepts we haven't implemented yet — pace shape analysis (how Fast vs. Slow pace scenarios shift the optimal zone), AP rankings for eliminating "One Fraction Wonder" horses, and distance-switch filtering using %Early. Those are on the roadmap.

For now, the Zone data updates automatically every day alongside the rest of WagerCast — pulling from the latest winners and keeping the optimums current as track conditions evolve through the meet.

↑ All posts

New: Class Level Experience — Knowing Whether a Horse Belongs

One of the oldest debates in handicapping is class. Does this horse belong here? Is it dropping down because connections are targeting a soft spot, or is it sliding because it's been getting beaten at a level it couldn't handle? Is this horse stepping up into a situation where it's never competed before?

The Selection Score already accounts for class through a bonus/penalty system in the narrative. But today we added something more nuanced: a Class Level Experience badge on every horse card that shows, at a glance, exactly how much experience that horse has at today's class level — and in which direction they're moving.

How It Works

Every race type maps to a numeric level in a nine-step hierarchy, from maiden claiming at the bottom to stakes at the top:

LevelRace Type
1Maiden Claiming (MCL)
2Maiden Optional Claiming (MOC)
3Maiden Special Weight (MSW)
4Claiming (CLM)
5Starter Optional / Starter (SOC / STR)
6Optional Claiming / Allowance Optional (OCL / AOC)
7Allowance (ALW)
8Handicap (HCP)
9Stakes (STK)

For each horse, we count how many of their recent past performances (PPs) fell at today's level, above it, or below it. For races at the same level, we go one step further and compare purse amounts — a horse running in a $14,000 claimer after a string of $8,000 claimers is in a very different spot than one dropping from $25,000 company.

What the Badges Mean

Four distinct situations now show up on every horse card:

Why This Matters for Analysis

The pace model scores horses on their figures. Class experience answers a different question: can they handle the competition they're about to face? A horse with dominant pace numbers dropping out of stakes company into an allowance field is a very different proposition than a maiden who's never seen a field at this level.

The highest-value plays we look for: a Gold-tier pick that's also a class dropper. Dominant pace figures + proven experience at a higher level = the model and the class angle are pointing in the same direction. Those line up less often than you'd think — but when they do, they're worth pressing.

Conversely, a Red-tier pick with a "First at this level" badge is a red flag in both directions. The pace model already doesn't love it, and now the class data confirms it's untested. Easy fade.

A Note on Contradictions

You may occasionally see the narrative reference a class step-up or drop that doesn't align perfectly with the new badge. The narrative's class component is calculated from a slightly different logic path — comparing the most recent race to today — while the badge counts across all recent PPs using the full race type hierarchy. We're actively reconciling the two systems. When they disagree, the badge is typically showing you the fuller picture.

Both pieces of information are visible on the card so you can weigh them yourself. That's the point — this isn't a black box. The more context you have, the better the decision.


↑ All posts

Building WagerCast: What 1,735 Race Results Actually Taught Us

WagerCast started with a simple frustration: most handicapping tools are either too complex for casual players or too shallow to give serious bettors a real edge. We wanted something in between — a model grounded in real pace theory, validated against actual results, and usable on a phone before post time.

This post is the story of what we built, how we tested it, and what the numbers show after backtesting 1,735 races across 16 tracks over 32 race days.

The Core Idea: Pace Wins Races

Horse racing is fundamentally a pace game. A horse that runs the first fraction in :22 flat is in a very different race than one running :24. The question isn't just who's fast — it's who's fast at the right time, in the right race scenario.

Our model scores every horse using pace figures from their recent races — how they ran at each call — then projects how those figures match the expected pace scenario today. A horse that dominates in slow pace scenarios gets a very different score than one that thrives when the pace heats up.

The output is a Selection Score for each horse. The top-ranked horse is our pick. But the tier that score falls into is where the real signal lives.

The Tier System

Not all top picks carry equal confidence. We use a four-tier system:

What the Backtest Shows

We ran every race with available results from February 14 through March 26, 2026 — 1,735 races across 16 tracks. Here's the headline:

23.3%
Top pick win rate
(all races)
57.2%
Top-3 coverage
(winner in top 3)
32.0%
Win rate on
💰 BET races
1,735
Races backtested
16 tracks · 32 days

A 23.3% overall win rate is competitive — but it doesn't tell the full story. The real insight from the data is that race selection matters more than pick selection. The model performs dramatically better in specific conditions.

The 💰 BET Filter: Where the Edge Lives

One of the most important findings from our backtest: the model has a clear edge in a specific subset of races. We call it the BET filter:

When both conditions are met, we display a 💰 BET badge on the race. In 269 BET-filtered races, the top pick won 32.0% of the time — nearly 9 full percentage points better than the overall rate. That's the difference between mechanical profit and mechanical loss.

The biggest mistake bettors make is treating every race the same. The data shows exactly which races the model is most confident about. Discipline — knowing when to sit out — is half the game.

Track-by-Track Performance

Not all tracks are equal for pace handicapping. Some favor closers, some reward speed, some have tight configurations that produce predictable pace scenarios. Here's the full top-pick breakdown by track from our backtest:

Track Win Rate ROI Races
Charles Town (CT) 31.2% +41.8% 80
Turf Paradise (TUP) 26.6% +12.3% 109
Sam Houston (HOU) 25.7% +13.4% 70
Turfway Park (TP) 22.5% +15.9% 160
Parx (PRX) 24.6% +2.6% 122
Colonial Downs (CNL) 27.8% -12.8% 18
Aqueduct (AQU) 27.1% -11.6% 129
Santa Anita (SA) 23.3% -9.2% 116
Oaklawn Park (OP) 22.2% -11.1% 180
Gulfstream Park (GP) 19.2% -17.7% 182
Fair Grounds (FG) 20.5% -12.4% 171
Tampa Bay (TAM) 22.7% -24.3% 150

Charles Town stands out. CT tops the list at 31.2% with a remarkable +41.8% ROI — the model's best-performing track in our sample. Routes at CT in particular have been outstanding, likely because the tight configuration rewards horses that can sustain pace over a full distance. We'll break CT down in a dedicated post.

Turfway Park, Sam Houston, and Turf Paradise all return positive ROI. On the flip side, Gulfstream and Tampa Bay have been the model's toughest assignments — wide open fields with unpredictable pace scenarios tend to compress our edge.

The Upset Flag System

One of the more interesting discoveries from building this: longshots aren't random. Specific signal combinations fire at a much higher rate than chance. We built four flags into the model to identify them:

A horse ranked 5th or lower in our model with 2+ flags gets an ⚡ Upset badge — worth including in your exotics. One flag gets a 🔍 Watch badge.

In our backtest, Upset-flagged horses (rank 5+, 2+ signals) hit at 13.4% — a meaningful rate for horses that are typically 10/1 or longer. At those prices, a handful of hits pays for a lot of losses. These aren't plays to make straight up, but they're exactly the kind of horses to throw into your Pick 4s and exactas.

Honest About the Limits

We want to be straight with you: the model's overall ROI on a flat $2 win bet across all 1,735 races is -6.6%. That's the reality of horse racing — the takeout rate is brutal, and most mechanical betting strategies bleed over time.

The edge isn't in betting everything the model produces. It's in being selective: the BET filter, the tracks where the model demonstrably has edge (CT, TP, HOU), and using the full card data — tier scores, upset flags, pace narratives — to make smarter exotic bets.

That's what WagerCast is built for. Not a tip sheet. A tool.

What's Next

The model runs daily at wagercast.xyz, covering the featured tracks daily with full pace cards, tier badges, upset flags, and Pick 5/6 sequence tickets.

In upcoming posts we'll go deeper: how the pace projection works, a full breakdown of Charles Town, the Pick ticket optimizer, and what specific race shapes the model handles best.

Racing is hard. The data helps.