Full Result Charts File Format
This is Post Time Daily's official specification for comma-delimited chart files (revision 1.10, dated Feb 1, 2022) documenting thoroughbred racing data.
File Naming Convention
Format: YYYYMMDD_CH_DAY_TTT.TXT
| Component | Description |
|---|---|
| YYYYMMDD | Date components concatenated (year, month, day) |
| CH | Constant identifier |
| DAY or EVE | Card type (evening only if track runs two cards same day) |
| TTT | Track code (three-letter code, or two letters plus underscore) |
Example: 20250621_CH_DAY_MTH.TXT
Race Types Reference
| Code | Description |
|---|---|
| MCLM | Includes maiden claiming and optional maiden claiming |
| MSW | Includes maiden special weights |
| CLM | Includes claiming, optional claiming |
| ALW | Includes allowance, starter allowance, and allowance optional claiming |
| HDCP | Includes handicap, starter handicap, claiming handicap and optional claiming handicap |
| STK | Includes stakes, claiming stakes, and optional claiming stakes |
| MATCH | Includes match races |
| TRAINING | Includes training races |
Track Conditions Reference
| Code | Description |
|---|---|
| fst | Fast |
| fr | Frozen |
| gd | Good |
| hy | Heavy |
| my | Muddy |
| sl | Slow |
| std | Standard |
| sly | Sloppy |
| wf | Wet Fast |
| wet | Wet |
| dd | Dead |
| esy | Easy |
| fm | Firm |
| gdtofm | Good to Firm |
| gdtosf | Good to Soft |
| hd | Hard |
| sf | Soft |
| yl | Yielding |
| ?? | Unknown |
Wager Types Reference
| Code | Wager Type |
|---|---|
| 0 | Match Rival |
| 1 | Roulette |
| 2 | Two in the Money |
| 3 | Pick 3 |
| 4 | Pick 4 |
| 5 | Pick 5 |
| 6 | Pick 6 |
| 7 | Pick 7 |
| 8 | Countdown |
| 9 | Pick 9 |
| A | Triactor |
| B | Super Tri |
| C | Classix |
| D | Daily Double |
| E | Exacta |
| F | Perfecta |
| G | Perfector |
| H | Bingo Bet |
| I | Instant Daily Double |
| J | Exactor |
| K | Win Four |
| L | Place Pick All |
| M | Consolation Pick 3 |
| N | Future Wager |
| O | Omni |
| P | Jockey Challenge |
| Q | Quinella |
| R | Triple |
| S | Superfecta |
| T | Trifecta |
| U | Tri Super |
| V | Odd or Even |
| W | Twin Trifecta |
| X | Place Pick 9 |
| Y | Super Bet |
| Z | Consolation Double |
Course Type Classification
| Code | Description |
|---|---|
| 0 | Dirt |
| 1 | Turf |
| 2 | Inner Dirt |
| 3 | Inner Turf |
| 5 | Outer Turf |
| 7 | Downhill Turf |
| 8 | All Weather |
| 33 | Hurdle |
| 65 | Steeplechase |
| 97 | Jumps (or, other) |
Race Record Structure (51 Fields)
| Field | Type | Description |
|---|---|---|
| 1 | string(1) | Record type: will be 'R' for race records |
| 2 | string(4) | Version string (currently '1.10') |
| 3 | string(3) | Track ID |
| 4 | date | Race date (format: 'MM/dd/yy') |
| 5 | number | Race number |
| 6 | string(1) | Day/Evening indicator: 'D' = Day, 'E' = Evening card |
| 7 | string(3) | Country ID: 'USA' = United States, 'CAN' = Canada |
| 8 | string(2) | Breed type: 'TB' = Thoroughbred, 'MX' = Mixed |
| 9 | string(150) | Race description/conditions |
| 10 | number | Official indicator: 0 = No, 1 = Yes |
| 11 | number | Canceled indicator: 0 = No, 1 = Yes |
| 12 | string(8) | Race type categorization |
| 13 | number | Optional claiming indicator: 0 = No, 1 = Yes |
| 14 | number | Starter allowance/handicap indicator: 0 = No, 1 = Yes |
| 15 | string(1) | Restrictions designation |
| 16 | string(3) | Age restrictions notation |
| 17 | string(6) | Sex restrictions: 'MALE', 'FEMALE', or 'MIXED' |
| 18 | number | Graded Stakes level: 0-3 scale |
| 19 | number | Race distance (in feet) |
| 20 | string(4) | Distance units. This will always be 'Feet' |
| 21 | number | Inner track indicator: 0 = No, 1 = Yes |
| 22 | number | Turf indicator: 0 = No, 1 = Yes |
| 23 | number | About distance indicator: 0 = No, 1 = Yes |
| 24 | number | Steeplechase: 0 = No, 1 = Yes |
| 25 | number | Hurdle indicator: 0 = No, 1 = Yes |
| 26 | number | Hunt indicator: 0 = No, 1 = Yes |
| 27 | number | Chute start indicator: 0 = No, 1 = Yes |
| 28 | number | Purse (past performance lines display) |
| 29 | number | Purse (program display) |
| 30 | number | Minimum claiming price |
| 31 | number | Maximum claiming price |
| 32 | string(6) | Track condition code |
| 33 | string | Reserved |
| 34 | number | Fraction 1 (seconds) |
| 35 | number | Fraction 2 (seconds) |
| 36 | number | Fraction 3 (seconds) |
| 37 | number | Fraction 4 (seconds) |
| 38 | number | Fraction 5 (seconds) |
| 39 | number | Final time (seconds) |
| 40 | string | Reserved |
| 41 | string | Reserved |
| 42 | string | Reserved |
| 43 | string | Reserved |
| 44 | string | Reserved |
| 45 | string | Reserved |
| 46 | number | Course type classification (0-97 range) |
| 47 | number | Reserved |
| 48 | number | Reserved |
| 49 | number | Reserved |
| 50 | number | Reserved |
| 51 | number | Reserved |
Horse Record Structure (56 Fields)
| Field | Type | Description |
|---|---|---|
| 1 | string(1) | Record type: will be 'H' for horse records |
| 2 | string(3) | Track ID |
| 3 | date | Race date (format: 'MM/dd/yy') |
| 4 | number | Race number |
| 5 | string(1) | Day/Evening indicator: 'D' = Day, 'E' = Evening card |
| 6 | string(3) | Country ID: 'USA' = United States, 'CAN' = Canada |
| 7 | string(2) | Breed type: 'TB' = Thoroughbred, 'MX' = Mixed |
| 8 | string(40) | Horse's name |
| 9 | string(3) | Program number (blank if scratched) |
| 10 | number | Scratch indicator: 0 = No, 1 = Yes |
| 11 | number | Post position (zero if scratched) |
| 12 | number | Non-betting indicator: 0 = No, 1 = Yes |
| 13 | string(1) | Entry letter (e.g., 'A', 'B', 'C', etc.). Blank if not part of an entry |
| 14 | number | Start position |
| 15 | number | Position 1 |
| 16 | number | Position 2 |
| 17 | number | Position 3 |
| 18 | number | Position 4 |
| 19 | number | Position 5 |
| 20 | number | Finish position |
| 21 | number | Official finish |
| 22 | number | Dead heat indicator: 0 = No, 1 = Yes |
| 23 | number | Disqualified indicator: 0 = No, 1 = Yes |
| 24 | number | Beaten lengths 1 |
| 25 | number | Beaten lengths 2 |
| 26 | number | Beaten lengths 3 |
| 27 | number | Beaten lengths 4 |
| 28 | number | Beaten lengths 5 |
| 29 | number | Finish beaten lengths |
| 30 | number | Tote odds |
| 31 | string(8) | Morning line odds (formatted string) |
| 32 | number | Morning line odds (decimal) |
| 33 | number | Favorite indicator: 0 = No, 1 = Yes |
| 34 | number | Win mutuel |
| 35 | number | Place mutuel |
| 36 | number | Show mutuel |
| 37-46 | string | Reserved |
| 47-56 | number | Reserved |
Exotic Result Record Structure (12 Fields)
| Field | Type | Description |
|---|---|---|
| 1 | string(1) | Record type: will be 'X' for exotic records |
| 2 | string(3) | Track ID |
| 3 | date | Race date (format: 'MM/dd/yy') |
| 4 | number | Race number |
| 5 | string(1) | Day/Evening indicator: 'D' = Day, 'E' = Evening card |
| 6 | string(3) | Country ID: 'USA' = United States, 'CAN' = Canada |
| 7 | string(2) | Wager type code |
| 8 | string(30) | Winning combination(s). May contain 'ALL' or '/' characters |
| 9 | number | Number of correct combinations (e.g., hitting 5 of 6 races) |
| 10 | number | Payoff amount |
| 11 | number | Carryover amount |
| 12 | number | Base wager amount (e.g., 2.00 for $2 bet, 0.50 for $0.50 bet) |
Technical Notes
- Character fields are quoted; embedded quotes convert to percent symbols
- Payoff, fraction, and length fields contain two decimal places
- Canceled races show no horse or exotic records; canceled_flag set to 1
- Horse records ordered by official finish position, then scratched horses
- Wager combinations may include "ALL" notation or "/" for shared positions
Last updated: February 1, 2022
Copyright 2025 by Scratchsoft, Inc.