Class Profile & Race Fit
Understand where a runner sits in the racing class hierarchy and whether today's race is at their level, above it, or below it.
What Is Class in Racing?
In racing, "class" refers to the quality level of a race. Races are graded into tiers — from maiden races (for horses that have never won) up through benchmark, open, listed, and Group races (the elite level).
A runner's class profile tracks what level they've been competing at and whether they're improving, holding steady, or declining. This matters because:
- •A horse stepping up from low-grade races into a Group race is taking on much tougher competition
- •A horse dropping in class may have an edge over weaker opponents
Class Profile
Each runner includes a classProfile object that summarises their class history (Pro tier only, null on Free):
{
"classProfile": {
"currentRating": 72,
"peakRating": 85,
"highestClassWon": 75,
"optimalRangeMin": 65,
"optimalRangeMax": 85,
"trend": "stable"
}
}currentRatingint (0-100)peakRatingint (0-100)highestClassWonint (0-100)optimalRangeMinintoptimalRangeMaxinttrendstring| rising | Competing at a higher class level than their recent average |
| stable | Racing at a consistent class level |
| dropping | Competing at a lower class level than their recent average |
The 0–100 Rating Scale
Every race class is mapped to a standardised 0–100 rating that works across all three racing codes:
| Rating | Thoroughbred | Harness | Greyhound |
|---|---|---|---|
| 100 | Group 1 | Group 1 | Group 1 |
| 95 | Group 2 | Group 2 | Group 2 |
| 90 | Group 3 | Group 3 | Group 3 |
| 85 | Listed | Listed | Listed |
| 75 | Open / WFA | Open | Open |
| 70 | BM90 | NR 70+ | Grade 1 |
| 58 | Class 1 | — | — |
| 50 | — | — | Grade 5 |
| 30 | Maiden | Maiden | Maiden |
Race Class Fit
While the class profile tells you about the runner's history, raceClassFit answers the question for today: is this runner in the right race, in too deep, or too good for this field?
{
"raceClassFit": {
"raceClassRating": 72,
"classDifference": 0,
"withinOptimalRange": true,
"assessment": "comfort_zone"
}
}raceClassRatingint (0-100)classDifferenceintwithinOptimalRangebooleanassessmentstringAssessment Values
| Assessment | What It Means |
|---|---|
comfort_zone | Race is right at the runner's current level |
slight_rise | Stepping up — tougher race than recent form |
big_rise | Significant class jump — facing much stronger competition |
slight_drop | Dropping in class — should be competitive based on rating |
big_drop | Well above this race's level — strong class edge |
Using These Together
The real value comes from combining classProfile and raceClassFit to surface actionable insights:
Bullish: Dropping in class + within optimal range — runner has a class edge and is in their sweet spot
Watch: Big rise + trend rising — runner is being tested at a higher level but is on an upward trajectory
Caution: Comfort zone + trend dropping — racing at the right level but form is declining
Example Response
A BM78 race (rating 72) with three runners at different class levels:
{
"raceClass": "BM78",
"runners": [
{
"number": 1,
"name": "Class Act",
"classProfile": {
"currentRating": 85,
"peakRating": 90,
"highestClassWon": 85,
"optimalRangeMin": 75,
"optimalRangeMax": 90,
"trend": "dropping"
},
"raceClassFit": {
"raceClassRating": 72,
"classDifference": -13,
"withinOptimalRange": false,
"assessment": "slight_drop"
}
},
{
"number": 4,
"name": "Right Level",
"classProfile": {
"currentRating": 72,
"peakRating": 75,
"highestClassWon": 72,
"optimalRangeMin": 65,
"optimalRangeMax": 78,
"trend": "stable"
},
"raceClassFit": {
"raceClassRating": 72,
"classDifference": 0,
"withinOptimalRange": true,
"assessment": "comfort_zone"
}
},
{
"number": 7,
"name": "Rising Star",
"classProfile": {
"currentRating": 58,
"peakRating": 58,
"highestClassWon": 55,
"optimalRangeMin": 50,
"optimalRangeMax": 60,
"trend": "rising"
},
"raceClassFit": {
"raceClassRating": 72,
"classDifference": 14,
"withinOptimalRange": false,
"assessment": "slight_rise"
}
}
]
}