The JCapper Impact Values Table Interface

Author: Jeff Platt

Date Last Modified: 7/19/2009

 

Introduction

The JCapper Impact Values Table Interface was designed as a way for users to create their own unique User Defined Power Rating. The interface enables users to do this by making table entries in a spreadsheet style interface. At the simplest level users name a factor, the weight for that factor, and impact values to be used in calculating a score based on how any given horse stacks up relative to the field in terms of the individual factor defined. Further, the interface allows users to define a behavior for how a factor is evaluated. For most factors, factor behavior can be based on rank, numeric value, and gap. The interface also allows users to set constraints for track, surface, distance, and class descriptor.

 

Warning

I absolutely hate to start a help doc with a headline that says warning. But in this case I have to. The DEFAULT settings in the ImpactValue Table are what drives JPR or JCapper Power Rating. If you play with them without knowing what you are doing you will mess up your JPR. Always maintain a current backup of your JCapper database file. This file can be found at the following location: c:\2004\JCapper.mdb

 

I am going to present a step by step in this write up as to how you would go about making a table entry for CFA rank. The example table entries themselves will be presented in red text.

 

For purposes of this example, I ran a Data Window query broken out by CFA rank. Here are my results:

 

     By: CFA Rank

 

                Rank       Gain       Bet       Roi   Wins  Plays       Pct    Impact

                   1   -5663.70  50984.00    0.8889   6710  25492     .2632    2.1255 

                   2   -6563.60  51300.00    0.8721   4971  25650     .1938    1.5649 

                   3  -10556.80  51908.00    0.7966   3772  25954     .1453    1.1736 

                   4  -12442.50  51888.00    0.7602   2951  25944     .1137    0.9185 

                   5  -13228.30  51592.00    0.7436   2485  25796     .0963    0.7779 

                   6  -13875.30  47038.00    0.7050   1782  23519     .0758    0.6118 

                   7  -13860.50  38756.00    0.6424   1149  19378     .0593    0.4788 

                   8   -9049.10  27586.00    0.6720    712  13793     .0516    0.4168 

                   9   -5613.60  18158.00    0.6908    432   9079     .0476    0.3842 

                  10   -3861.30  10966.00    0.6479    227   5483     .0414    0.3343 

                  11   -2753.70   6044.00    0.5444    101   3022     .0334    0.2699 

                  12   -1350.00   2280.00    0.4079     22   1140     .0193    0.1558 

                  13     114.30    320.00    1.3572      5    160     .0312    0.2523 

                  14     -92.20    100.00    0.0780      1     50     .0200    0.1615 

                  15      -2.00      2.00    0.0000      0      1     .0000    0.0000 

                  16      -6.00      6.00    0.0000      0      3     .0000    0.0000 

                  17       0.00      0.00    0.0000      0      0     .0000    0.0000 

                  18       0.00      0.00    0.0000      0      0     .0000    0.0000 

                  19      -4.00      4.00    0.0000      0      2     .0000    0.0000 

 

Focus your attention on the Impact column on the far right. While you are certainly free to enter values of your own choosing when making Impact Value entries, unless and until your own experience indicates otherwise, I would strongly suggest getting impact values for your own table entries directly from your own Data Window query results.

 

For example, if you were making table entries for CFA where behavior=0 so that the interface would be making calculations based on CFA rank, then your table entry in the IMPACT01 field would be 2.1255, your table entry in the IMPACT02 field would be 1.5649, your table entry in the IMPACT03 field would be 1.1736 and so on.

 

Explanation of ImpactValues Table Fields

 

GroupName – A GroupName is an identifier that you the user give to the group of factors you will be using to drive your power rating calculation. A GroupName can be any combination of letters and numbers up to 50 characters in length. Certain keyboard characters such as the single quote or apostrophe character, because of the way it interacts with Microsoft SQL should be avoided. I strongly recommend sticking to just letters and numbers to be on the safe side. The word DEFAULT in JCapper is reserved for driving the JCapper Power Rating or JPR that ships with the program. Be extremely careful about changing any of the table entries where DEFAULT is the GroupName. If you do you are going to change your JPR.

 

When creating your own UPR the very first thing to do is decide what you want to call it. Something like MYTEST01 will work just fine Enter MYTEST01 into the GroupName field and use the tab key to move to the next field.

.

FACTOR - This is a text field used to hold a valid name for the factor to be evaluated. A list of valid factor names is shown below:

 

EARLY SPEED:
AVGE1
BESTE2
CPACE
PACEFIG

PACEFIG_2F_INLAST

PACEFIG_4F_INLAST

TURNTIME
V1

LATE SPEED:
LATEPACEINLAST
LATEPACE3
PAL
STAMINA

SUSTAINED

FIG ABILITY:
AVGBRISFIG

CFA
BRIS3
BRIS10
LASTRACEBRISFIG
LOGICALFIG
PACELINE

TPACE
WEIGHTEDFIG


CLASS:
CLASSCOMPOS

CLSHIFT2
CONSISTENCY
RACESTRENGTH

FORM:
AFR
BASICFITNESS

FORM
FURLONGDAYS                  (numeric value/translate only)
PACEIMPROV

STAMINAIMPROV

WOBRILL
WOSINCE                         (numeric value/translate only)
 

CONNECTIONS:
CANTRUNXFORMATTRIB       (numeric value/translate only)

CLAIMRACES                     (numeric value only/translate only)

CXN
DISTANCESHIFT                 (numeric value only)

EQUIPMENTCHANGE            (numeric value only)

LIFETIMESTARTS               (numeric value only)

MEDICATIONTODAY            (numeric value only)

RIDERWINS

RIDERWINPCT
RIDERSTARTS
TRAINERWINPCT

TRAINERWINS
TRAINERSTARTS

XTHSTARTAFTERLASIX        (numeric value only)

XTHSTATOFCURRENTMEET   (numeric value only)

XTHSTARTOFFOFLAYOFF     (numeric value only)

XTHSTARTFORTRAINER        (numeric value only)

 

 

 
TRACK SPECIFIC:
PCTE
QSPEEDPOINTS
RAILPOSITION                   (numeric value only)
RUNSTYLE                        (numeric value only)


COMPOUND RATINGS:
ALCHEMY

CMI

CPACE

JPR
JPRCLASS
JPRMLPROB

MLOR3
OPTIMIZATION
PMI
PRATING

PRIME
PSCORE

QRATING


MISC:
CANTRUNXFORMATTRIB      (numeric value/translate only)

MORNINGLINE
PCLASS

PEDIGREE
RECACTIVITYDAYS            (numeric value/translate only)
RECACTIVITYWODAYS        (numeric value/translate only)
SECCALLPOSLASTSTART     (numeric value/translate only)
WOSINCE                         (numeric value/translate only)

 


 
Note: Unless specified otherwise, behavior for impact values of all factors can be applied to Rank, Numeric Value, and Gap when creating User Defined Power Rating.

 

Continuing on with the example entry, enter CFA into the Factor field and use the tab key to move to the next field.

 

ACTIVE - This is a True/False field used to indicate whether or not a table entry is active. A value of 0 equates to False and means that the entry itself is not active. A value of negative one equates to True and means that the table entry is active. When a table entry is active it will be used as part of the calculation. When a table entry is not active it will not be used as part of the calculation.

Continuing on with the example entry, enter -1 into the Active field and use the tab key to move to the next field.

 

BEHAVIOR – This is a numeric field used to describe how the interface will behave when it handles a named factor. In JCapper, factors are considered to have Rank, Numeric Value, and Gap. In the Impact Values Table Interface, when you make entries to drive a power rating calculation, these are your three most common behaviors. Valid table entries for behavior are listed below:

 

            Behavior        

            Table Entry   Description

0                    RANK – the interface is expecting a rank in the RANGE fields for the current factor.

1                    NUMERIC VALUE – the interface is expecting a numeric value in the RANGE fields for the current factor.

2                    GAP – the interface is expecting a gap in the RANGE fields for the current factor.

3                    TRANSLATE – instead of making a calculation, the interface simply translates the power rating being calculated for the GroupName into the named factor. For example, if you wanted your UPR to be one and the same as Prime Power, you would enter PRIMEPOWER into the factor field, a -1 in the active field and a behavior of 3 in the Behavior field. If this were the only table entry with a match for the UPR GroupName saved in the System Definitions screen, then UPR on the reports and in database builds would be exactly the same as Prime Power.

 

 

 

Continuing on with the example entry, enter 0 into the Behavior field to evaluate by rank. Then use the tab key to move to the next field

 

WEIGHT – This is a numeric field used to hold the weight you are assigning to the factor being evaluated. Think of factor weight as being equivalent to factor importance. The higher the individual factor weight you assign to an individual factor the greater the importance that factor takes on in your overall factor mix.

 

During calculations all factor weights are added together to arrive at a total. Individual factor scores are then adjusted either up or down proportionately based on weight for the individual factor compared against the total of all factor weights. The higher the weight assigned to an individual factor, the more that factor figures into the User Defined Power Rating final result. When you first start making your own power ratings, the amount of weight you assign to different factors will be completely subjective. It took me a while to gain some experience and insight in weighting my factors properly. The best way to learn is through trial and error. Pick subjective weights for your factors. Then build a database. Look at and record your results. Re-weight one or more factors and rebuild the database. See what effect re-weighting had on your results. Repeating this process gives you clues as to whether or not factor weights for individual factors are too high or too low. Eventually you will gain the requisite experience. Once you do, assigning factor weights when creating a power rating becomes somewhat intuitive.

 

After you gain enough experience, you will eventually come to understand factor weights for what they really are: Factor weights really represent how important each individual factor is within the context of solving the total handicapping puzzle.

 

Continuing on with the example entry, enter 60 into the Weight field and use the tab key to move to the next field.

 

TRACK - This is a text field designed to hold three character track codes. Just like JCapper’s Profile Table Interface multiple track codes can be used if they are separated by the dash or minus character. When track codes are entered in the Track field, impact values for the named factor in the Impact Values Table entry are only used when a match is found between the current track and one of the track codes listed in the track field. When the track field is left blank then the interface applies the values in the table entry no matter what the current track happens to be, unless track codes exist in the AvoidTrack field.

Continuing on with the example entry, to have CFA rank apply to all tracks, simply leave the Track field blank and use the tab key to move to the next field.

 

AvoidTrack - This is a text field designed to hold three character track codes. Just like JCapper’s Profile Table Interface multiple track codes can be used if they are separated by the dash or minus character. When track codes are entered in the AvoidTrack field, the current track is compared to the track codes listed in the AvoidTrack field. When a match is found between the two, the impact values entry being evaluated is simply ignored and no calculation is made .When the AvoidTrack field is left blank then the interface does not make an avoid track comparison.

Continuing on with the example entry, to have CFA rank apply to all tracks, simply leave the AvoidTrack field blank and use the tab key to move to the next field.

 

SurfaceCode - This is a text field designed to designate a racing surface. Valid surface descriptions are:

           

            SurfaceCode   Description

*          Any Surface

D*       All Dirt Surfaces

D         Outer Dirt Only

D         Inner Dirt Only

T*        All Turf Surfaces

T          Outer or Main Turf Course

t           Inner Turf Course

 

Continuing on with the example entry, to have CFA rank apply to all surfaces, key a * into the SurfaceCode field and use the tab key to move to the next field.

 

Note about PolyTrack: In JCapper I have decided for the time being not to use a separate surface to describe PolyTrack. Users have the ability to write UDMs and make ImpactValue table entries to require and avoid specific tracks. At the time of this writing the following tracks are running races on artificial surfaces: APX-DMR-HOL-KEE-PID-TPX-WOX. Users wanting to enforce decisions to either require or avoid artificial surfaces can do so by using these (and future) track codes in combination with a surface designation of D*.

 

MINDIST - This is a numeric field used to indicate the minimum distance in furlongs that a table entry applies to.

 

MAXDIST - This is a numeric field used to indicate the maximum distance in furlongs that a table entry applies to.

Continuing on with the example entry, to have CFA rank apply to all distances, key 0 into the MinDist field, hit the Tab key, and key 999 into the MaxDist field.

 

ClassDescriptor - This is a text field designed to identify Class Descriptors. Just like JCapper’s Profile Table Interface multiple Class Descriptors can be used if they are separated by the dash or minus character. When Class Descriptors are entered in this field, impact values for the named factor in the Impact Values Table entry are only used when a match is found between the class descriptor of the current race and one of the class descriptors listed in the ClassDescriptor field. When left blank then the interface applies the values in the table entry no matter what the current Class Descriptor happens to be, unless track codes exist in the AvoidClassDescriptor field.

Continuing on with the example entry, to have CFA rank apply to all class descriptors, simply leave the field blank and use the tab key to move to the next field.

 

AvoidClassDescriptor - This is a text field designed to identify Class Descriptors to be avoided. Just like JCapper’s Profile Table Interface multiple Class Descriptors can be used if they are separated by the dash or minus character. When Class Descriptors are entered in this field, impact values for the named factor in the Impact Values Table entry are not used when a match is found between the class descriptor of the current race and one of the class descriptors listed in the AvoidClassDescriptor field. When left blank the interface does not attempt to make any avoid class descriptor comparisons.

Continuing on with the example entry, to have CFA rank apply to all class descriptors, simply leave the field blank and use the tab key to move to the next field.

 

HIGHSCORE - This field is designed as the place for you to enter the highest impact value to be applied. In the above example where a Data Window query was run and broken out by CFA rank, the highest impact value found was 2.1255. So, for the purposes of our example, 2.1255 would be the correct table entry for the HIGHSCORE field. Note: During the actual calculation process itself, the value read from the HIGHSCORE field is used as a divisor. Impact values from other IMPACT fields are divided into the HIGHSCORE field and multiplied by 100 to arrive at a factor score for each individual horse. In our CFA example, if a given horse ranked third in CFA, then the value from the IMPACT03 field would be read and divided into the value read from the HIGHSCORE field. The result would be that horse’s CFA score.

 

In this case:

 

CFAScore = (1.1736 / 2.1255)  x 100

 

Or

 

CFAScore = 55.2152

 

 

Continuing on with the example entry, simply enter 2.1255 into the HighScore field and use the tab key to move to the next field.

 

 

DEFAULTIMPACT – This numeric field is designed to hold the lowest impact value to be applied. In the above example where a Data Window query was run and broken out by CFA rank, the lowest impact value found (for a significant data chunk) was 0.1558. So, for the purposes of our example, 0.1558 would be the correct table entry for the DEFAULTIMPACT field.

 

How it works: When a range is encountered by the interface that has not been predefined by the user with paired RANGE and IMPACT field table entries, the interface will default to the impact value stored in the DEFAULTIMPACT field and use that for purposes of calculating the factor score.

 

For example, if you were making table entries for CFA where behavior=0 so that the interface would be making calculations based on CFA rank, and you had made entries for paired RANGE and IMPACT fields to handle CFA rank 1-8 only, and during calculation a field of 9 or more horses was encountered, the interface would use the impact value stored in the DEFAULTIMPACT field for purposes of calculating a factor score for any horse with a CFA rank of 9 or higher. Should no entry exist in the DEFAULTIMPACT field, then any horse with a CFA rank greater than 8 would receive a factor score of 0 for CFA.

For the purposes of our example, 0.1558 would be the correct table entry for the DEFAULTIMPACT field.

 

RANGE01 - This field is designed to hold a numeric value used to identify the first range being handled. For example, if you were making table entries for CFA where behavior=0 so that the interface would be making calculations based on CFA rank, then the first range of values to be handled would be where CFA rank=1. The correct table entry for the RANGE01 field would simply be 1.

 

IMPACT01 - This field is designed to hold a numeric impact value for the first range of values to be handled. For example, if you were making table entries for CFA where behavior=0 so that the interface would be making calculations based on CFA rank, then the first range of values to be handled would be where CFA rank=1. The correct table entry for the IMPACT01 field, using the above Data Window output as a source, would be 2.1255.

 

Each range field has a corresponding impact field. Together they act as a pair. There are 20 such pairs within the interface. The RANGE01 and IMPACT01 fields correspond to each other and act as a pair. Use the RANGE01 field to identify the range being handled when the interface applies the impact value read from the IMPACT01 field.

 

 

RANGE02 - This field is designed to hold a numeric value used to identify the second range being handled. For example, if you were making table entries for CFA where behavior=0 so that the interface would be making calculations based on CFA rank, then the second range of values to be handled would be where CFA rank=2. The correct table entry for the RANGE02 field would simply be 2.

 

IMPACT02 - This field is designed to hold a numeric impact value for the second range of values to be handled. For example, if you were making table entries for CFA where behavior=0 so that the interface would be making calculations based on CFA rank, then the second range of values to be handled would be where CFA rank=2. The correct table entry for the IMPACT02 field, using the above Data Window output as a source, would be 1.5649.

 

Each range field has a corresponding impact field. Together they act as a pair. There are 20 such pairs within the interface. The RANGE02 and IMPACT02 fields correspond to each other and act as a pair. Use the RANGE02 field to identify the range being handled when the interface applies the impact value read from the IMPACT02 field.

 

 

RANGE03 - This field is designed to hold a numeric value used to identify the third range being handled. For example, if you were making table entries for CFA where behavior=0 so that the interface would be making calculations based on CFA rank, then the third range of values to be handled would be where CFA rank=3. The correct table entry for the RANGE03 field would simply be 3.

 

IMPACT03 - This field is designed to hold a numeric impact value for the third range of values to be handled. For example, if you were making table entries for CFA where behavior=0 so that the interface would be making calculations based on CFA rank, then the third range of values to be handled would be where CFA rank=3. The correct table entry for the IMPACT03 field, using the above Data Window output as a source, would be 1.1736.

 

Each range field has a corresponding impact field. Together they act as a pair. There are 20 such pairs within the interface. The RANGE03 and IMPACT03 fields correspond to each other and act as a pair. Use the RANGE03 field to identify the range being handled when the interface applies the impact value read from the IMPACT03 field.

 

 

RANGE04 - This field is designed to hold a numeric value used to identify the fourth range being handled. For example, if you were making table entries for CFA where behavior=0 so that the interface would be making calculations based on CFA rank, then the fourth range of values to be handled would be where CFA rank=4. The correct table entry for the RANGE04 field would simply be 4.

 

IMPACT04 - This field is designed to hold a numeric impact value for the fourth range of values to be handled. For example, if you were making table entries for CFA where behavior=0 so that the interface would be making calculations based on CFA rank, then the fourth range of values to be handled would be where CFA rank=4. The correct table entry for the IMPACT04 field, using the above Data Window output as a source, would be 0.9185.

 

Each range field has a corresponding impact field. Together they act as a pair. There are 20 such pairs within the interface. The RANGE04 and IMPACT04 fields correspond to each other and act as a pair. Use the RANGE04 field to identify the range being handled when the interface applies the impact value read from the IMPACT04 field.

 

In the interests of keeping the text of this Help Doc somewhat brief, I have spelled out explicit instructions for making table entries for the first four pairs of RANGE and IMPACT fields only. There are 20 such pairs in the interface. All of them behave in the exact same manner. RANGE05 corresponds to IMPACT05. RANGE06 corresponds to IMPACT06. RANGE07 corresponds to IMPACT07. RANGE08 corresponds to IMPACT08. And so on… until the 20th range is encountered. Then RANGE20 corresponds to IMPACT20.

 

Field Depth - One of the subjects I have discussed at length with other handicapping software authors is how deep into the field you want to go with your impact values. Field size at most tracks is on the decline. Ten and twelve horse fields are rare. A few authors I have spoken with advocate that you really only need to go about 8 deep into the field when creating power ratings. They argue that it really doesn’t help you much to try and differentiate between the 9th ranked horse for a factor and the 11th ranked horse for a factor. I do not share that opinion. My research indicates that the deeper you go into each field with your impact value table entries, provided you have enough data to work with, the more accurate your power rating is going to be. JCapper’s Impact Value Table Interface allows you to define impact values 20 places deep into the field.

 

Work with each set of RANGE and IMPACT fields as a separate pair. Continuing on with the example entry, enter 1 into the Range01 field. Then tab to the Impact01 field and enter the impact value for the top ranked CFA horse, which in this case turns out to be 2.1255. Then tab to the Range02 field and enter 2 and use the tab key to move to the Impact02 field where you will enter the impact value for the second ranked CFA horse, which in this case turns out to be 1.5649. Keep working with subsequent pairs of IMPACT and RANGE fields until you have gone deep enough into the field. Simply leave those fields to the left of where you stopped going into the field blank.

 

NOTES – This is a memo/text field designed for you to write notes to yourself. This field has a very character limit. Feel free to do as lengthy a write covering what you are doing as you need to.

 

 

 

 

System Settings/System Definitions

On the System Definitions screen you will find a UPR GroupName drop down. When you open that drop down up you will see all of the individual GroupName entries that exist in the ImpactValues table. When you select a new GroupName in the drop down and click the Save button that GroupName becomes the GroupName that drives your UPR or User Defined Power Rating.

For purposes of our example, on the System Definitions screen, open the UPR GroupName drop down and select MYTEST01 your UPR GroupName. Then click the SAVE button. Your JPR will not be affected unless you have changed your DEFAULT table entries. But now your UPR will be driven by whatever active ImpactValue table entries you have where the GroupName is MYTEST01.

 

 

 

 

 

Behaviors (JCapper Platinum only)

 

The following new behaviors are currently under construction as part of UPR Tools in JCapper Platinum – ETA sometime during the summer of 2009:

            Behavior        

            Table Entry   Description

 

4                    RIDER – the interface will allow you to select rider names just as you would any valid factor.

 

5                    TRAINER - the interface will allow you to select trainer names just as you would any valid factor.

 

 

6                    OWNER - the interface will allow you to select owner names just as you would any valid factor.

 

 

The following new behaviors were recently added to the interface as part of UPR Tools in JCapper Platinum:

            Behavior        

            Table Entry   Description

 

7                    BASE – Use this behavior to make the interface start out the UPR or UserFactor calculation with a high number that the result of other entries for the same GroupName can be subtracted from. The converse is also true. You can also use this behavior to define a really small number that the result of other entries can be added to. To use 7 BASE as a behavior, you’ll need to select a GroupName, define one factor as a trigger (it doesn’t matter which factor so long as the factor you use is a valid factor), define a factor weight (1 is recommended), define a surface (*), define min and max distance (0 and 999 works well), and then a High Score (1000) and a Default Impact (1000 as well.) Quick example: Suppose you want to start out the UPR calculation with a base of 1000 and have subsequent entry results be subtracted from that base. Key 7 into the Behavior field, key 1000 into both the High Score and Default Impact fields, use 1 for Weight, define surface and distance as you see fit, and use CPACE as your trigger factor. When you run a Calc Races or a Build Database, the calculation result for the set of entries within your GroupName having a 7 BASE behavior is simply 1000 no matter what the horse’s CPACE happens to be. To see a demonstration of this in action watch the second UPR Tools Video.

 

8                    ADDITION based on factor rank – Use this behavior to make the interface ADD whatever values are recorded in the range and impact fields for each set of matched pair entries. Example: Factor is CPace, value for Range01 is 1, and value for Impact01 is 10. When the interface makes the UPR or UserFactor calculation for the GroupName being processed, 10 points are added for any horse with a CPace rank =1. Another example: Factor is CPace, value for Range02 is 2, and value for Impact02 is 9. When the interface makes the UPR or UserFactor calculation for the GroupName being processed, 9 points are added for any horse with a CPace rank =2. To see a demonstration of this in action watch the second UPR Tools Video.

 

9                    SUBTRACTION based on factor rank – Use this behavior to make the interface SUBTRACT whatever values are recorded in the range and impact fields for each set of matched pair entries. Example: Factor is CPace, value for Range01 is 1, and value for Impact01 is -10. When the interface makes the UPR or UserFactor calculation for the GroupName being processed, 10 points are subtracted for any horse with a CPace rank =1. Another example: Factor is CPace, value for Range02 is 2, and value for Impact02 is -9. When the interface makes the UPR or UserFactor calculation for the GroupName being processed, 9 points are subtracted for any horse with a CPace rank =2. To see a demonstration of this in action watch the second UPR Tools Video.

 

10                ADDITION based on factor numeric value – Use this behavior to make the interface ADD whatever values are recorded in the range and impact fields for each set of matched pair entries. Example: Factor is CPace, value for Range01 is 100, and value for Impact01 is 10. When the interface makes the UPR or UserFactor calculation for the GroupName being processed, 10 points are added for any horse with a CPace numeric value >= 100. Another example: Factor is CPace, value for Range02 is 120, and value for Impact02 is 9. When the interface makes the UPR or UserFactor calculation for the GroupName being processed, 9 points are added for any horse with a CPace numeric value >= 120. To see a demonstration of this in action watch the third UPR Tools Video.

 

11                SUBTRACTION based on factor numeric value – Use this behavior to make the interface SUBTRACT whatever values are recorded in the range and impact fields for each set of matched pair entries. Example: Factor is CPace, value for Range01 is 100, and value for Impact01 is -10. When the interface makes the UPR or UserFactor calculation for the GroupName being processed, 10 points are subtracted for any horse with a CPace numeric value >= 100. Another example: Factor is CPace, value for Range02 is 120, and value for Impact02 is -9. When the interface makes the UPR or UserFactor calculation for the GroupName being processed, 9 points are subtracted for any horse with a CPace numeric value >= 120. To see a demonstration of this in action watch the third UPR Tools Video

 

12                ADDITION based on factor gap – Use this behavior to make the interface ADD whatever values are recorded in the range and impact fields for each set of matched pair entries. Example: Factor is CPace, value for Range01 is -15, and value for Impact01 is 10. When the interface makes the UPR or UserFactor calculation for the GroupName being processed, 10 points are added for any horse within 15 points of the top CPace horse for the race. Another example: Factor is CPace, value for Range02 is -10, and value for Impact02 is 9. When the interface makes the UPR or UserFactor calculation for the GroupName being processed, 9 points are added for any horse within 10 points of the top CPace horse in the race. To see a demonstration of this in action watch the third UPR Tools Video.

 

13                SUBTRACTION based on factor gap – Use this behavior to make the interface SUBTRACT whatever values are recorded in the range and impact fields for each set of matched pair entries. Example: Factor is CPace, value for Range01 is -15, and value for Impact01 is -10. When the interface makes the UPR or UserFactor calculation for the GroupName being processed, 10 points are subtracted for any horse within 15 points of the top CPace horse for the race. Another example: Factor is CPace, value for Range02 is -10, and value for Impact02 is -9. When the interface makes the UPR or UserFactor calculation for the GroupName being processed, 9 points are subtracted for any horse within 10 points of the top CPace horse in the race. To see a demonstration of this in action watch the third UPR Tools Video.

 

14                AVGERAGE – Use this behavior to create UPR and UserFactors that result from averaging the numeric values of selected JCapper factors.

 

Example: Let’s say you want to create UserFactor1 equal to the average of CPace numeric value and CompoundLate numeric value. The formula looks something like this:

 

            UserFactor1 = ( CPace  + CompoundLate ) / 2

 

Here’s how: Create two separate entries in the ImpactValues Table. Use USERFACTOR1 as the GroupName for each entry. Use 14 as the behavior for each entry. Set desired constraints for surface and distance for each entry (Surface and distance should be the same for both entries.)  Use 1 as the Weight for each entry. (Although at this point it should be obvious that you can make your UserFactor into a weighted average by giving the entry for each factor a different factor weight.) Use CPACE as the factor name for one entry and COMPOUNDLATE as the factor name for the other. Finally, always use 0 as the High Score and Default Impact whenever you use 14 AVG as your behavior.

 

Use as many of the UPR “grab-able” factors in the program as you like. Weight them any way you see fit. It should be obvious that a little imagination combined with some solid R&D can go a long way here.