CDF Chart Format

Home » CDF Chart Format

Comma-Delimited Chart File Format #1.10

Dated: Feb 1, 2022 Version: 1.10

The Post Time Daily Comma Delimited Chart consists of three different
record types (race, horse, and exotic) which together comprise a chart
of racing information. These record types are provided in ONE file.
The first field of each line provides a record_type indicator which
indicates which record type the particular line corresponds to.

All Char fields, whether 1 char or more will be quoted fields. Embedded
quotes will be converted to % symbols in the exported field. The size
of char fields does NOT include the quotation marks.

The size of number fields represents the maximum size in characters we
expect to use for a particular field. Payoff fields, fractional times,
and beaten lengths will always contain two decimal digPost Time Daily
after the decimal point.

The cards will consist of the live thoroughbred races run at a given
track on a particular day. If a race is canceled, there will be no
horse or exotic records. The canceled_flag will be set to 1.

The horse records (for a given race) are currently in official_position
order and are followed by all the horses who were scratched. No
particular order, however, should be assumed. This order could change
at some point in the future.

The file naming conventions for each card are as follows:

YYYYMMDD_CHT_DAY_TTT.TXT

YYYYMMDD is the year month and day concatenated together.

DAY will be either DAY or EVE depending on whether the card is a day or
evening card. An evening card only occurs if a track runs two different
cards of racing on the SAME day. If a track runs only one card of
racing, and the racing happens to be in the evening, it will still have
a DAY designation.

TTT represents the track three letter track code. If the track code is
only two letters, the remaining position will contain an underscore.

As an example, June 21, 2001 at MTH will have a file name of

20010621_CHT_DAY_MTH.TXT

*** Preliminary Definitions ***

#1 – Race Type
Race_type contains one of the following general categories:

“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 claming handicap.
“STK”: Includes stakes, claiming stakes, and optional claiming stakes.
“MATCH”: Includes match races.
“TRAINING”: Includes training races.
#2 – Age
Age fields contain a single digit if they are for a specific age only. Such as 3 for 3-year-olds only.
If the race age restriction is an up restriction like 3 year olds and UP and UP will be appended. An example encoding is 3UP for 3 year old and up.
If the age restriction is for horses of specific years then those years will each be represent by one character. So if race is for 3, 4 and 5 year olds this field will contain 345.
#3 – Track Condition

Value 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
#4 – Wager Type

The following contains a partial list of known wager types. New wager types are constantly being added by the tracks.

Code Description
—- ———–
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


Race record

FieldTypeDescription
1string (1)Record type: will be “R” for race records
2string (4)Version string (currently “1.10”)
3string (3)Track ID
4dateRace date (format: “MM/dd/yy”)
5numberRace number
6string (1)Day/Evening indicator: “D” = Day, “E” = Evening card
7string (3)Country ID: “USA” = United States, “CAN” = Canada
8string (2)Breed type: “TB” = Thoroughbred, “MX” = Mixed
9string (150) Race description/conditions
10numberOfficial indicator: 0 = No, 1 = Yes
11numberCanceled indicator: 0 = No, 1 = Yes
12string (8)Race type:
“MCLM” = Maiden claiming or optional maiden claiming
“MSW” = Maiden special weight
“CLM” = Claiming or optional claiming
“ALW” = Allowance, starter allowance, or allowance optional claiming
“HDCP” = Handicap, starter handicap, claiming handicap or optional claiming handicap
“STK” = Includes stakes, claiming stakes, and optional claiming stakes
“MATCH” = Match race
“TRAINING” = Training race
13numberOptional claiming indicator: 0 = No, 1 = Yes
14numberStarter allowance/handicap indicator: 0 = No, 1 = Yes
15string (1)Restrictions:
“” = None
“S” = Statebreds
“R” = Restricted
16string (3)Age restrictions. A single number is restricted to runners of that specific age only. A value ending in “UP” indicates that age or older. Otherwise, restricted to the ages explicitly listed.
17string (6)Sex restrictions:
“MALE” = Males only
“FEMALE” = Females only
“MIXED” = Not restricted
18numberGraded Stakes level:
0 = Not graded or unknown
1 = Grade 1
2 = Grade 2
3 = Grade 3
19numberRace distance (in feet). E.g., 6 furlongs is 3960 feet
20string (4)Distance units. This will always be “Feet”.
21numberInner track indicator: 0 = No, 1 = Yes
22numberTurf indicator: 0 = No, 1 = Yes
23numberAbout distance indicator: 0 = No, 1 = Yes
24numberSteeplechase: 0 = No, 1 = Yes
25numberHurdle indicator: 0 = No, 1 = Yes
26numberHunt indicator: 0 = No, 1 = Yes
27numberChute start indicator: 0 = No, 1 = Yes
28numberPurse as displayed in the past performance lines (available – reverted amount)
29numberPurse as displayed in program
30numberMinimum claiming price (zero for non-claiming races)
31numberMaximum claiming price (zero for non-claiming races)
32string (6)Track condition:
“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
33stringReserved
34numberFraction 1 (in seconds)
35numberFraction 2 (in seconds)
36numberFraction 3 (in seconds)
37numberFraction 4 (in seconds)
38numberFraction 5 (in seconds)
39numberFinal time (in seconds)
40stringReserved
41stringReserved
42stringReserved
43stringReserved
44stringReserved
45stringReserved
46numberCourse type:
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)
47numberReserved
48numberReserved
49numberReserved
50numberReserved
51numberReserved

Horse record

FieldTypeDescription
1string (1)Record type: will be “H” for exotic records
2string (3)Track ID
3dateRace date (format: “MM/dd/yy”)
4numberRace number
5string (1)Day/Evening indicator: “D” = Day, “E” = Evening card
6string (3)Country ID: “USA” = United States, “CAN” = Canada
7string (2)Breed type: “TB” = Thoroughbred, “MX” = Mixed
8string (40)Horse’s name
9string (3)Program number (blank if scratched)
10numberScratch indicator: 0 = No, 1 = Yes
11numberPost position (zero if scratched)
12numberNon-betting indicator: 0 = No, 1 = Yes
13string (1)Entry letter (e.g., “A”, “B”, “C”, etc.). Blank if not part of an entry.
14numberStart position
15numberPosition 1
16numberPosition 2
17numberPosition 3
18numberPosition 4
19numberPosition 5
20numberFinish Position
21numberOfficial Finish
22numberDead heat indicator: 0 = No, 1 = Yes
23numberDisqualified indicator: 0 = No, 1 = Yes
24numberBeaten lengths 1 (if leading, the lengths ahead, else the lengths behind leader)
25numberBeaten lengths 2 (if leading, the lengths ahead, else the lengths behind leader)
26numberBeaten lengths 3 (if leading, the lengths ahead, else the lengths behind leader)
27numberBeaten lengths 4 (if leading, the lengths ahead, else the lengths behind leader)
28numberBeaten lengths 5 (if leading, the lengths ahead, else the lengths behind leader)
29numberFinish Beaten lengths (if leading, the lengths ahead, else the lengths behind leader)
30numberTote odds
31string (8)Morning line odds (formatted string)
32numberMorning line odds (decimal)
33numberFavorite indicator: 0 = No, 1 = Yes
34numberWin mutuel
35numberPlace mutuel
36numberShow mutuel
37stringReserved
38stringReserved
39stringReserved
40stringReserved
41stringReserved
42stringReserved
43stringReserved
44stringReserved
45stringReserved
46stringReserved
47numberReserved
48numberReserved
49numberReserved
50numberReserved
51numberReserved
52numberReserved
53numberReserved
54numberReserved
55numberReserved
56numberReserved

Exotic Result record

FieldTypeDescription
1string (1)Record type: will be “X” for exotic records
2string (3)Track ID
3dateRace date (format: “MM/dd/yy”)
4numberRace number
5string (1)Day/Evening indicator: “D” = Day, “E” = Evening card
6string (3)Country ID: “USA” = United States, “CAN” = Canada
7string (2)Wager type: see below for list of possible values

NOTE: the possible values for this field is constantly changing as tracks invent new wagering options.
8string (30) Winning combination(s)

NOTE: May contain the word “ALL” as part of the wager numbers, as in “1-3-ALL” if all positions were paid in the third leg of a pick 3 or the show position for a triple.  May also contain ‘/’ characters when position is shared by more than one horse.  For example in a Pick 3 where the middle races pays to two different numbers you might see “3-5/7-4”.
9numberNumber of correct combinations. E.g., for Pick 6s, a number of 5 here would indicate that this result was for those hitting 5 of 6 races.
10numberPayoff amount
11numberCarryover amount
12numberBase wager amount (e.g., 2.00 for a $2 bet, 0.50 for a $0.50 bet, etc.). The payoff amount listed above is based on this base wager value.