<100 subscribers
Share Dialog

The Kentucky Derby is notoriously tough to predict. Twenty horses, an unpredictable pace, and a dirt track that can radically shift with a single weather swing. Despite being among the most analyzed events in sports, the Derby remains one of the most challenging to handicap. Yet, that's exactly why it’s so compelling.
This year, instead of chasing perfection, I set out to create a transparent, sophisticated predictive model. My goal wasn’t simply picking a winner; it was building a robust framework capable of logically reasoning through the Derby's chaos.

My ambition was to surpass traditional handicapping by constructing a comprehensive algorithm integrating several critical predictive factors:
Historical Pace & Race Dynamics: Analyzing previous Derby runnings for optimal pace profiles.
Track Bias: Evaluating Churchill Downs under varied conditions.
Jockey and Trainer Success Rates: Performance records at Churchill Downs and in Grade 1 stakes.
Pedigree Analysis: Emphasizing stamina suitability for the demanding Derby distance.
Post Position Trends: Assessing historical advantages or disadvantages.
Workout Sharpness: Evaluating recent workout patterns and fitness levels.
Psychological Factors: Gate composure and crowd response indicators.
Beyond the predictions, this project allowed me to experiment with advanced AI-assisted research, create an intuitive, visually engaging website, and leverage modern SEO and web analytics strategies to maximize organic traffic without relying on paid advertising.

From the start, I designed the prediction model to mirror the unique complexity of the Kentucky Derby. It was never about emphasizing just one factor. Instead, I created a composite approach that integrated speed figures, class, pace dynamics, surface preferences, pedigree stamina, trainer and jockey expertise, recent workouts, and even subtle psychological factors.
Initially, the model assumed dry, fast track conditions, prioritizing past speed and class performances. However, mid-week Derby weather forecasts significantly shifted, predicting wet-fast or sloppy conditions. Additionally, key scratches, including the notable speed horse Rodriguez, altered expected race dynamics.
Given the forecast shift towards a wet-fast track, I significantly boosted the weight of track surface versatility, recognizing how critical proven adaptability to wet conditions would become.
Here’s how the model evolved from initial dry assumptions to final wet conditions:
Factor | Original (Dry) | Final (Wet-Fast/Sloppy) |
|---|---|---|
Past Speed & Class Performance | 40% | 25% 🔻 |
Track Condition & Surface Versatility | 7% | 20% 🔼 |
Pace Scenario & Running Style | 15% | 20% 🔼 |
Jockey/Trainer Performance | 10% | 10% |
Pedigree (Distance & Stamina) | 10% | 10% |
Recent Workouts & Sharpness | 5% | 7% 🔼 |
Post Position | 8% | 5% 🔻 |
These changes ensured the model accurately reflected the evolving Derby landscape.
After carefully adjusting for anticipated wet-fast conditions and late scratches, my finalized model projected the following finishing order among the top contenders:



The Derby provided an exciting finish, with Sovereignty storming home as a deep closer, benefiting from the wet-fast surface and a hot pace.
1st Place:
Horse: Sovereignty (#18)
Model Rank/Score: 6th (8.6)
Notes: Top closer with strong mud pedigree. Model underestimated slightly but saw competitiveness.
2nd Place:
Horse: Journalism (#8)
Model Rank/Score: 5th (8.8)
Notes: Strong pace and class match. Model accurately captured performance.
3rd Place:
Horse: Baeza (#21, late AE entry)
Model Rank/Score: 8th (8.3)
Notes: Entered as a longshot; exceeded model's expectations significantly.
4th Place:
Horse: Final Gambit (#3)
Model Rank/Score: 7th (8.4)
Notes: Deep closer, highlighted for synthetic-to-dirt adaptability. Strong, accurate model call.
5th Place:
Horse: Owen Almighty (#20)
Model Rank/Score: 15th (7.4)
Notes: Exceeded expectations significantly; stamina and trip not foreseen by model.
6th Place:
Horse: Burnham Square (#9)
Model Rank/Score: 3rd (9.0)
Notes: Ran well despite traffic issues, validating solid model ranking.
7th Place:
Horse: Sandman (#17)
Model Rank/Score: 4th (8.8)
Notes: Finished as model predicted; respected for stamina.
8th Place:
Horse: East Avenue (#12)
Model Rank/Score: 16th (7.2)
Notes: Slight surprise holding late position after favorable trip.
9th Place:
Horse: Chunk of Gold (#19)
Model Rank/Score: 13th (7.7)
Notes: Fringe contender; finish aligned closely with model prediction.
10th Place:
Horse: Tiztastic (#14)
Model Rank/Score: 9th (8.2)
Notes: Finished about as the model anticipated; solid accuracy.
11th Place:
Horse: Coal Battle (#16)
Model Rank/Score: 12th (7.8)
Notes: Neutral performance; held position as predicted.
12th Place:
Horse: Luxor Cafe (#7)
Model Rank/Score: 1st (9.2)
Notes: Major disappointment as top model pick; hampered by poor break and traffic.
13th Place:
Horse: Neoequos (#2)
Model Rank/Score: 18th (6.8)
Notes: Model accurately forecasted fading from pace.
14th Place:
Horse: Publisher (#13)
Model Rank/Score: 11th (7.9)
Notes: Struggled with sloppy track conditions, validating model concerns.
15th Place:
Horse: Citizen Bull (#1)
Model Rank/Score: 2nd (9.1)
Notes: Early pace pressure caused burnout; significant miss by model.
16th Place:
Horse: American Promise (#5)
Model Rank/Score: 14th (7.5)
Notes: Early movement followed by pace collapse; correctly ranked outside top contenders.
17th Place:
Horse: Render Judgment (#15)
Model Rank/Score: 10th (8.1)
Notes: Minimal impact; model correctly placed mid-pack.
18th Place:
Horse: Flying Mohawk (#11)
Model Rank/Score: 17th (7.0)
Notes: Model accurately identified as unlikely contender.
19th Place:
Horse: Admire Daytona (#6)
Model Rank/Score: 19th (6.4)
Notes: Finished last as predicted; international shipper did not perform.
Pace Scenario & Running Style: Model correctly anticipated a hot early pace and boosted closers. Sovereignty, Baeza, Final Gambit, and Journalism all benefited. The model called this dynamic accurately.
Surface Versatility: The adjusted weighting for wet-track preference correctly elevated Sovereignty, Baeza, and others with proven slop aptitude.
Form and Stamina Read: The model deprioritized speed-reliant types (e.g., American Promise, Neoequos) and gave due respect to distance-capable horses like Sandman and Final Gambit.
Model Coverage: The model correctly flagged 6 of the top 7 finishers within its top 10.
Luxor Cafe (12th): Model’s #1 pick. Trouble at the start and traffic late; didn’t finish with punch. Perhaps overrated off limited U.S. data and international form.
Citizen Bull (15th): Ranked #2, collapsed after a pace duel. In hindsight, the model may have overestimated his tactical versatility and underweighted pace pressure vulnerability.
Baeza (3rd): Was given credit, but perhaps not enough. Late AE entrant may have deserved deeper modeling consideration.
Owen Almighty (5th): Outran expectations. Model saw him as a longshot; he nearly hit the board. His prep figures may not have reflected upside.

Looking ahead, key adjustments areas may include:
Accounting more heavily for gate behavior, particularly for international or lightly raced horses.
Increasing scoring flexibility for closers under confirmed fast pace scenarios.
Strengthening pace duel assessments to better evaluate speed-dependent contenders.
Fully integrating alternative entries earlier in the modeling process, ensuring accurate evaluation.
Overall, this was a strong debut for our Derby modeling effort—transparent, adaptive, and anchored in sound logic. With some refinements, I'm ready to build something even sharper for the 2025 Preakness Stakes.
The model needed a powerful and intuitive delivery platform. I built the derbyday.fun site using a modern, responsive frontend stack:
Frontend: React, TypeScript, Tailwind CSS, Shadcn UI.
Backend & Data Management: Supabase integration for efficient data handling and reference management.
The user interface was thoughtfully designed to translate complex analytics into intuitive, easy-to-digest visuals:
Responsive Race Chart Visualizations: Allowing users to quickly interpret predictive insights.
Mobile-Optimized UI: Custom tooltips and interactive elements tailored for seamless touch-device interactions.
Derby-Themed Visual Consistency: Creating a visually engaging, cohesive aesthetic using a thematic color palette.

The site leveraged SEO best practices, including optimized content structure, keyword-rich page descriptions, and streamlined social sharing capabilities. Additionally, I integrated Fathom Analytics to monitor engagement and enhance visibility organically.

The website generated impressive engagement within a four-day span, purely through organic traffic and social sharing strategies:
Visitors: 3,100+
Page views: 5,200+
Average Visit Duration: 6 minutes, 29 seconds
Peak Traffic: 184 visitors/hour just before race start.
Deepen jockey/trainer pace strategy modeling.
Expanding analysis of behavioral factors.
Implement automated scripts for updating odds, scratches, and weather forecasts, streamlining data management.
Scale from single race analysis to a full card (all races on a given race day) analysis.
This project also highlighted an intriguing product-market fit. Horse racing can be intimidating due to its complexity. By presenting analytical insights in an approachable, visually engaging format, this project showed how complex data could be simplified, potentially attracting new fans to the sport. Making horse racing analytics more accessible and engaging will be a core part of future iterations
While inherent unpredictability ensures no model achieves perfection, this endeavor was deeply rewarding. It showcased the immense potential in combining cutting-edge AI techniques, rigorous analytics, thoughtful UX/UI, and modern web best practices. Although derbyday.fun didn’t pick the exact winner, it successfully created clarity amidst complexity and delivered engaging experiences.
I’m already applying these lessons to the upcoming Preakness Stakes, confident each iteration will enhance insight, sharpen predictions, and elevate user experience.
Ultimately, this project reinforced that bringing clarity and accessibility to horse racing analytics can significantly impact fan engagement, possibly attracting a broader audience to the sport.
Then again, sometimes simply choosing your favorite horse name or lucky saddle-cloth color ends up being the winning strategy. That’s horse racing!
Want to be first to know when the Preakness Stakes predictions go live? Sign up at derbyday.fun to get notified.
The Ai-generated imagery related to the Kentucky Derby was created with Chat GPT 4o and Venice.ai.
Psychological Factors |
3% |
3% |
Tyler Mason | @tmase.eth
1 comment
Handicapping the Kentucky Derby is notoriously difficult. I took on the challenge anyway, exploring AI tools to build a predictive model paired with an intuitive UX/UI. The project attracted over 3k organic visitors in about 4 days, and along the way I noticed significant potential in simplifying complex insights for horse racing’s more casual fanbase. Full recap here 👇 https://blog.tmase.xyz/modeling-the-mayhem-inside-the-prediction-model-i-built-for-the-kentucky-derby