Making Parimutuel Odds With Fibonacci Numbers

Donald A. Swanson

This work describes a subjective method of constructing an odds line from the analysis of a thoroughbred horse race. It uses generic symbols matched up with Fibonacci numbers to solve the problem of computational stabilization and the favorite-longshot bias. Symbols are chosen by the handicapper to represent the race analysis. Fibonacci numbers are used to convert symbol combinations into weighted percentages.

1. Symbols

The leftmost column in figure 1 shows the seven symbols used in the method. There are three one-part symbols and four two-part symbols. The left side symbol part is the "base" (+, N, Ø). The right side symbol parts (+, -) "modify" the base. Word descriptions are names for the symbols. Each symbol is matched up with a Fibonacci number. Symbols are hand-written with a forward slash "/" as a separator, for example: N- / ++ / Ø+. Memorize the symbols and word descriptions by writing them down a few times.

Figure 1.
Symbol Word Description Weight Number
++ double plus 21 7
+ plus 13 6
N+ neutral plus 8 5
N neutral 5 4
N- neutral minus 3 3
Ø+ doubtful plus 2 2
Ø doubtful 1 1

2. Analysis Perspectives

Absolute Analysis - Evaluates a single horse in isolation or against todays race conditions. Symbol selection starts with consideration of +, N, Ø before moving up or down to the appropriate symbol. The handicapper should mentally move toward N when uncertain.

Relative Analysis - Compares two or more horses against each other. In figure 1 rightmost column the symbols are numbered 1 to 7. The difference between the symbols is the degree of certainty that one horse will outperform the other(s). The range is 0 to 6 degrees. Symbol selection starts with consideration of N versus N before expanding outward. For example: speed ratings of 90 and 92 for two horses might get N, N or N, N+ or N-, N+ with degrees of certainty zero, one, and two. If the speed ratings are 90 and 98 then the two horses might get Ø, +. If the speed ratings are 90, 92, 98 then the three horses might get Ø, Ø+, + with total degrees 1 + 4 = 5.

Figure 2.
Symbol Word Description
+N positive neutral
-N negative neutral
positive doubtful

Reverse Read Analysis - Reversing the symbols with differing parts can be helpful in situations with unknowns or application of historical "angles". A developing horse might be taking a large rise or drop in class or trying a new distance or surface. Symbol selection starts with consideration of base positive or negative. Analysis of available information for todays race will determine whether a positive reverse read should be modified neutral or doubtful.

3. Contender Set Percentage (cp) - Factor Symbols

The relative analysis of contenders versus non-contenders is + versus Ø.

Four win contenders in an eight horse field (4 / 8).
+ / + / + / + / Ø / Ø / Ø / Ø
13 + 13 + 13 + 13 + 1 + 1 + 1 + 1 = 52 + 4 = 56
cp = 52 / 56 = .929

nc - number of contenders
fs - field size

cp = (13 * nc) / ((13 * nc) + (fs - nc))

Races with two or more contenders use three factors arranged from left to right in order of importance. Factors can be two-part compounded, for example: class-speed, form-age, or distance-pedigree. Factor names are written in abbreviated form with a separator slash, for example: cls-sp / fm-age / dst-ped.

The N symbol can be extended to NN making the neutral base symbols N+, NN, N-. The factor symbols are the right side symbol parts (+, N, -) matched up with Fibonacci numbers 8, 5, 3 respectively. Figure 3 shows the six factor symbol combinations and word descriptions which must be memorized. Symbol combinations are written plain without the separator slash.

Figure 3.
Symbols Word Description
N  N  N neutral
+  N  N one plus
N  N  - one minus
+  N  - one plus one minus
+  -  - one plus two minus
+  +  - two plus one minus

Symbol combination selection usually starts with consideration of the "one plus" subset: (+ N N), (+ N -), (+ - -).

Factors can also be doubled, for example: speed, speed, distance-pedigree. There are two rules for selecting symbol combinations with doubled factors:

  1. The symbol representing the doubled factor must be the highest weighted one in the combination.
  2. The symbol must be duplicated.

The doubled factor subset: (N N N), (N N -), (+ + -).

4. Example Race Calculation

Two win contenders in an eight horse field (2 / 8).

cp = (13 * 2) / ((13 * 2) + (8 - 2)) = .813

The three factors chosen are class, form-surface, distance.
The (+ N -) combination generally works well.

8 + 5 + 3 = 16                   // factor weight sum
f1pct = (8 / 16) * .813 = .407   // (weight/sum) * cp
f2pct = (5 / 16) * .813 = .254 
f3pct = (3 / 16) * .813 = .152

Each contender gets three symbols one for each factor as shown in figure 4 center column.

Figure 4.
2 / 8 cls / fm-sf / dst +  N  -
Horse Symbols Weights
#1 +  /  N  /  N 13 / 5 / 5
#2 N- /  N+  / + 3 / 8 / 13
13 + 3 = 16                // factor 1 sum
(13 / 16)  * .407 = .331   // #1 (weight/sum) * f1pct  
(3 / 16) * .407 = .076     // #2

5 + 8 = 13                 // factor 2 sum
(5 / 13) * .254 = .098     // #1 (weight/sum) * f2pct                  
(8 / 13)  * .254 = .156    // #2

5 + 13 = 18                // factor 3 sum
(5 / 18) * .152 = .042     // #1 (weight/sum) * f3pct
(13 / 18) * .152 = .110    // #2

Sum the three percentages for each contender.

.331 + .098 + .042 = .471  // #1 
.076 + .156 + .110 = .342  // #2

Sort the final percentages in descending order before converting into odds.

odds = (1 / pct) - 1

(1 / .471) - 1 = 1.123    // #1
(1 / .342) - 1 = 1.924    // #2  

Select the increment for rounding off.

if odds < 1 then inc = 10
elseif odds < 2 then inc = 5
elseif odds < 5 then inc = 2
else inc = 1
odds = (int((odds * inc) + .5)) / inc

(int((1.123 * 5) + .5)) / 5 = 1.2  // #1
(int((1.924 * 5) + .5)) / 5 = 2    // #2
Figure 5.
2 / 8 cls / fm-sf / dst +  N  -
#1 +  /  N  /  N .471 6 / 5
#2 N- /  N+  / + .342 2 / 1

References

  1. Cramer M. (1987) The Odds On Your Side: The Logic Of Racetrack Investing, Cynthia Publishing Company
  2. McNeill D. & Freiberger P. (1993) Fuzzy Logic: The Discovery Of A Revolutionary Computer Technology And How It Is Changing Our World, Simon & Schuster
  3. Mitchell D. (1988) Winning Thoroughbred Strategies: With The Right Strategy, You Can Think Like An Investor, Not A Gambler!, William Morrow & Company
  4. Quinn J. (1987) Class Of The Field: New Performance Ratings For Thoroughbreds, William Morrow & Company
  5. Quirin W.L. (1979) Winning At The Races: Computer Discoveries In Thoroughbred Handicapping, William Morrow & Company
  6. Scott W.L. (1984) How Will Your Horse Run Today?, Amicus Press
  7. Scott W.L. (1989) Total Victory At The Track: The Promise And The Performance, Liberty Publishing Company

Appendix 1. Objective Factors For Calculating Odds

Scaling Percentage To Symbol Numbers 1 To 7.

pct - percentage from 0 to 1
conv - converted into a 1 to 7 number

conv = int((((pct * 100) + 16.667) / 16.667) + .5)

Win / Place Percentage.

nc - number of entrants or contenders
st() - number of starts this year plus last year
wp() - number of wins and places this year plus last year
wt() - Fibonacci numbers 1,2,3,5,8,13,21

for i = 1 to nc
  wp(i) = wp(i) / st(i)
  conv = int((((wp(i) * 100) + 16.667) / 16.667) + .5)
  wp(i) = wt(conv)
next i

Earnings Per Start.

en() - earnings this year plus last year
(earnings are rounded to the nearest thousand)
high - highest value found

cap = 180    // eps limited to USD-180k
high = 0
for i = 1 to nc
  en(i) = en(i) / st(i)
  if en(i) > cap then en(i) = cap          
  if en(i) > high then high = en(i)
next i
for i = 1 to nc
  en(i) = en(i) / high
  conv = int((((en(i) * 100) + 16.667) / 16.667) + .5)
  en(i) = wt(conv)
next i

Recent Representative Speed Rating.

scale - scaling increment
sr() - speed rating

scale = 2.0
high = 0
for i = 1 to nc
  if sr(i) > high then high = sr(i)
next i
offset = (high / scale) - 7         
for i = 1 to nc
  sr(i) = int(((sr(i) / scale) - offset) + .5)
  if sr(i) < 1 then sr(i) = 1
  sr(i) = wt(sr(i))
next i

Appendix 2. Converting Percentages Into Truncated Fractional Odds

This ABC function named "truncate" converts a percentage value (pct) into fractional odds. The truncate increment (inc) starts at 20 which rounds down to the nearest 1 / 20th. If one of the tests are true then the numerator and denominator are calculated in the return statement. If all of the tests are false then the increment is cut in half.

HOW TO RETURN truncate pct:
   PUT (1 / pct) - 1 IN odds
   PUT 20, 0 IN inc, dn
   WHILE dn = 0:
      PUT (floor(odds * inc)) / inc IN odds
      SELECT:
         odds mod 1 = 0:
            PUT 1 IN dn
         odds < 5 AND odds mod .5 = 0:
            PUT .5 IN dn
         odds < 2 AND odds mod .2 = 0:
            PUT .2 IN dn
         odds < 1 AND odds mod .1 = 0:
            PUT .1 IN dn
         odds < 1 AND odds mod .25 = 0:
            PUT .25 IN dn
         odds < .25:
            PUT .05 IN dn
         ELSE:
            PUT floor(inc / 2) IN inc
   RETURN odds / dn, 1 / dn

das60358@comcast.net
Huntsville, Alabama USA
Copyright © 2011-2014 Donald A. Swanson
Warning: contents of this site are subject to revision. Use at your own risk.