# Patent

## Title
System and method for computing athletic performance

## Abstract

A system and method of calculating athlete performance, may include receiving information relating to at least one date of performance of physical activity and generating a proposed training schedule, including one or more training sessions, corresponding to the at least one date of performance of physical activity. Further, the system and method may include receiving information relating to records of the athlete's prior performances, and determining a performance model including predicted athlete performance based on the calculated training schedule and the prior performances.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of the filing date of United States Provisional Patent Application No. 60/920,646 filed Mar.28, 2007, the disclosure of which is hereby incorporated herein by reference.


A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
Computer Program Listing Appendices A and B including code relating to the present invention are submitted herewith and hereby incorporated by reference. The computer program listing appendices are included as two files on a compact disc, the files being named “Performance Model.rbbas.txt” (21 KB) and “Solver.rbbas.txt” (4 KB). The submitted disc, including the stored files in American Standard Code for Information Interchange (ASCII) format, was created on Mar. 27, 2008.
BACKGROUND OF THE INVENTION
Athletes respond to training stimulus with an increase in performance. In 1975, Banister's Training Impulse Score (TRIMPS) evolved into a system relating training volume and intensity according to the algorithm:

TRIMPS=(Exercise duration)×(Average heart rate)×(Heart rate dependent, intensity based weighting factor)

This intensity-based weighting factor is exponential in nature, and was derived by analyzing the plasma lactate response curves of athletes to a standardized exercise protocol. In this system, heavier exercise (as evidenced by a higher average heart rate) is more heavily weighted than easier exercise to account for the different metabolic and exertional requirements of each.
This system was found to be valuable not only as a measurement of training, but as a means to predict future athletic performance utilizing the relationship: Performance=Fitness−Fatigue, where fitness and fatigue may be positive and negative effects of training.
After a bout of training, an athlete becomes both more fit and more tired. Initially, the fatigue gain is greater than the fitness gain. In the days immediately following heavy training, this leads to a decrease in performance. However, fatigue also dissipates more quickly than fitness does. Therefore, after enough rest has been taken, the new level of fitness is unmasked, and this is evidenced by improved performance. This may be expressed mathematically as:

P(t)=k1g(t)−t/τ1−k2h(t)−t/τ2 

In this equation, p(t), g(t) and h(t) denote performance, fitness and fatigue at any time t, respectively. k1 and k2 (k2>k1) are multiplying constants with no direct physiologic correlation other than those athletes with relatively large k2 values take longer to recover from training. The fact that k2 is larger than k1 is indicative of the observation that fatigue resulting from a training bout initially masks fitness improvements gained from that bout, as seen above. As was previously intimated, both fitness and fatigue have exponential decay constants (τ1 and τ2, τ1>τ2), such that fitness persists longer than fatigue.
Performance can be considered to be the sum of the positive and negative influences of all previously undertaken training episodes, each of which is decaying exponentially. This relationship can be described by the convolution integral:




  Performance
  =
  
    
      ∫
      0
      t
    
    ⁢
    
      
        (
        
          
            
              k
              1
            
            ·
            
              e
              
                
                  -
                  
                    (
                    
                      t
                      -
                      u
                    
                    )
                  
                
                /
                τ1
              
            
          
          -
          
            
              k
              2
            
            ·
            
              e
              
                
                  -
                  
                    (
                    
                      t
                      -
                      u
                    
                    )
                  
                
                /
                τ2
              
            
          
        
        )
      
      ·
      
        w
        ⁡
        
          (
          u
          )
        
      
      ·
      
        d
        u
      
    
  




Where (t−u) is equal to the time between training doses and w(u) is the training dose in arbitrary units (i.e. TRIMPS, Training Stress Score (TSS) or any other training measurement that takes into account both the intensity and duration of the exercise undertaken).

Currently desired is a way for a performance curve to indicate how an athlete will perform on any given day. This is problematic because all of the input data is in arbitrary units. While these units are indicative of both the intensity and duration of exercise undertaken, the number has only indirect real-world correlation. Therefore, the difference between intensity and duration of exercise is not easily expressed as a real-world correlation. Accordingly, a system and method for predicting real-world performance (e.g., athlete power output as measured by laboratory or on-bike equipment for standardized exercise task, distance a ball is thrown, velocity for a standard run or swim) is desired.
SUMMARY OF THE INVENTION
One aspect of the present invention provides a method of calculating athlete performance, comprising receiving information relating to an athlete's goal performance, receiving information relating to a proposed training schedule, including one or more training sessions, to prepare for the goal performance, receiving information relating to records of the athlete's prior performances, and determining a performance model including predicted athlete performance based on the calculated training schedule and the prior performances.
Another aspect of the invention provides a method of determining athlete performance, comprising receiving information relating to a performance goal for physical activity and determining a proposed training schedule relating to the performance goal, wherein the proposed training schedule may include a series of workouts to be performed by the athlete. This method may further comprise determining predicted results of training, including predicted results of the goal performance. Information relating to the athlete's test performance may also be received and compared to the predicted results of training. Based on this comparison, at least one of the training schedule and the performance goal may be revised.
A further aspect of the present invention comprises a method of computing athlete performance, comprising receiving at a processor data relating to an athlete's goal performance and data relating to training for the goal performance, including at least one of future training and past training. A predicted result of the goal performance may be determined based on the data relating to training, and this predicted result may be output to a user.
Yet another aspect of the present invention provides a system for predicting athlete performance, comprising an interface for inputting information relating to a training schedule and recorded training data, a database for storing the information relative to a training schedule, training data, and a processor for computing information related to a predicted athlete performance based on the information relative to a training schedule and recorded training data.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a flowchart illustrating a method of calculating athlete performance according to an aspect of the present invention.
FIG. 2 is a system diagram according to an aspect of the present invention.
FIGS. 3A-3D are screenshots relating to data entry according to an aspect of the present invention.
FIGS. 4A-4B are screenshots relating to training calculations according to an aspect of the present invention.
FIGS. 5A-5B are screenshots relating to quantification of physical exertion according to an aspect of the present invention.
FIGS. 6A-6B are screenshots relating to quantification of physical exertion according to another aspect of the present invention.
FIG. 7 is a screenshot relating to training according to an aspect of the present invention.
FIG. 8 is a screenshot relating to performance according to an aspect of the present invention.



DETAILED DESCRIPTION
FIG. 1 illustrates a method 100 for calculating athlete performance. It should be understood that the steps of the method 100 may be performed in any order, and that various other steps, although not shown in FIG. 1, may be included. Further, some steps of the method may be modified without departing from the meaning of the method 100. Additionally, various steps of the method 100 may be executed on a computing device, such as that described in the system 200 below.
In this method, performance goal information is input to the computing device (step 110) and optionally training history information is also entered (step 120). A training schedule for the athlete is generated (130). As part of this training schedule, a training stress associated with sessions in the training schedule may be calculated. Further, a performance model may be calculated based on the training stress (step 140). Test performance may be measured (step 150) and input to the computing device, where is it is compared with the calculated performance (step 160). If the measured and calculated performances are within a predefined range of one another, the athlete may continue training according to the training schedule (step 165). However, if the calculated and measured stresses are not closely matched, the training schedule may be revised or the model re-calculated to generate a model that more closely represents the athlete's response to training (step 170), whereupon the process would return to step 130 to recalculate the performance model.
In step 110, a user may input performance goal information. Such performance goal information may include information relating to the athlete, the physical activity to be performed by the athlete, the dates of performance of physical activity, the current physical capabilities of the athlete, goal physical capabilities of the athlete, or any combination of these. Further information may also be input as desired by the user.
The information relating to the athlete may be any type of identification data, such as the athlete's name or team name. Alternatively or additionally, the information may relate more closely to the athlete's physical capabilities. For example, the information may include age or sex.
The physical activity to be performed by the athlete may be any athletic situation where the athlete exhibits a response to training stimulus. For example, the physical activity may be a sport such as tennis, or part of a sport, such as running, pitching, etc. Further, the activity may be a factor, such as reaction time (critical to a NASCAR driver).
The dates of performance of physical activity may be one or more select dates, a range of dates, or several ranges of dates relating to different events. For example, the user may input a training start date and a competition date. According to one aspect, the system may recognize from this data that one or more dates between the training start date and the competition date are training dates.
The physical capabilities of the athlete may include information such as current capabilities and/or goal capabilities. For example, a runner may input that he is capable of running a six-minute mile. Alternatively or additionally, the athlete may input that he is aiming to run a five and a half minute mile and then determine (or allow the computing device to determine) a reasonable training program to achieve that goal.
According to one aspect, the user may input training history data in step 120. Such training history data may include measurements of prior performances. For example, the training history may relate to an amount of physical energy exerted by the athlete during the prior performance, a description of the prior performance, and details relating to intensity and duration of the prior performance.
The training history may be factored into generation of training schedules and calculations of performance models. For example, the athlete's approximate fitness level may be determined from the training history, and thus an appropriate training schedule may be generated based on that fitness level. Similarly, the athlete's prior performances may indicate how the athlete recovers from strenuous activity. Such an indication, as well as the indication of fitness level, may be used to calculate how the athlete will perform on future dates if the training schedule is followed. One aspect of the invention enables the user to select appropriate initial model constants according to the athlete's personal history, if formal performance data is not available. For example, a user may consult a lookup table including prior performance data of another athlete with similar physical ability. According to another aspect, a processor may select the initial model constants.
Step 130 involves generating a training schedule. The training schedule may include training sessions and tests to be performed over the training period. The training sessions may be workouts structured in varying intensities and durations. For example, the runner training to run a five and a half minute mile may have a training schedule including running three six and a half minute miles one day, jogging five miles another day, and sprinting twelve 200 meter stretches another day. The tests may be the training session workouts or separate events. For example, the athlete may measure his performance during a workout, as described in further detail below with respect to step 150. Alternatively, the test may be attempting the activity to be performed on competition day. Thus, for example, the runner would attempt to run a five and a half minute mile. According to yet another alternative, the test may be an abbreviated version of the activity to be performed on competition day. So, for example, if the goal activity is running a marathon, the athlete may test his performance during two minutes of running.
According to one aspect, the training schedule may be generated by the user. Thus the user may devise a schedule with a series of structured training sessions and enter such schedule as input to the system. According to another aspect, the training schedule may be generated by the computing device. Thus, for example, the computing device may select a number of days between the training start date and the competition date and enter specified training sessions for those days. The computer generated training schedule may be more effective if increased data is entered. For example, a more effective training schedule may be generated if the user inputs the athlete's sport and a goal performance on the competition date, as opposed to merely inputting the competition date.
According to one aspect, generation of a training schedule in step 130 may include calculating training stress associated with the schedule. Training stress is a quantifier of the athlete's physical exertion during training, and may account for the duration and intensity of the physical training. For example, training stress may be expressed by the equation:

Training Stress=Duration*Intensity*Weighting factor

Duration is the time spent exercising. Intensity is how hard the athlete exercised for that period. The weighting factor accounts for the fact that exercise becomes more difficult as speed is increased, and this increase is nonlinear. For example, running five miles in thirty minutes, as opposed to sixty minutes, is not twice as difficult but many times more difficult.
Initially the training stress calculation may include some approximations. For example, if no training history data has been entered, the intensity factor may vary. Accordingly, an estimated intensity, based on speed or another factor, may be used to calculate the training stress. However, such estimated intensity may not always match the actual intensity of the workout for the athlete, because athletes vary in strength, speed, fitness, etc. Thus, what may be considered a very intense workout for one athlete may be more relaxed to another. If the user desires, the system calculates an exact intensity factor after each workout by analyzing data files, which improves data quality.
According to one aspect, the training stress may be calculated for each training session in the training schedule. According to an alternative embodiment, training stress may be calculated only for particular sessions in the training schedule, or for the training schedule as a whole. Thus, for example, stresses may be calculated only for the most intense workouts as those are most likely to affect athlete conditioning during early stages of training.
In step 140 a performance model may be generated based on the training stress and one or more constants. According to one embodiment, four separate constants may be used: positive impulse, negative impulse, positive time, and negative time. The positive and negative impulse constants relate to positive and negative training effects with each workout. So, for example, the positive training effect may be increased fitness, whereas the negative training effect may be increased fatigue. The positive and negative time constants may relate to a time required for the positive and negative training effects to dissipate, respectively.
As an example:
















Positive impulse:
1



Negative impulse:
5



Positive time:
16



Negative time:
3










Thus, these settings for the constants indicate that for the athlete training causes a fivefold increase in fatigue for every increase in fitness. However, the fitness (positive effect) will last for sixteen days, whereas the fatigue (negative effect) will dissipate much more quickly (three days).
According to another aspect, the calculations may account for variables other than the athlete's levels of fitness or fatigue. For example, the athlete's nutrition and sleep habits may alter the response to training, and the user would observe this as unexpected deviations of measured performances from predicted performances. This information could be input to the system and factored into the calculations to improve future predictions.
The positive and negative training effect constants may be used in the following equation:




  
    Positive
    ⁢
    
      
    
    ⁢
    training
    ⁢
    
      
    
    ⁢
    effect
  
  =
  
    
      ∫
      0
      t
    
    ⁢
    
      (
      
        
          k
          1
        
        ·
        
          w
          ⁡
          
            (
            u
            )
          
        
        ·
        
          e
          
            
              -
              
                (
                
                  t
                  -
                  u
                
                )
              
            
            /
            τ1
          
        
      
      )
    
  








  
    Negative
    ⁢
    
      
    
    ⁢
    training
    ⁢
    
      
    
    ⁢
    effect
  
  =
  
    
      ∫
      0
      t
    
    ⁢
    
      (
      
        
          k
          2
        
        ·
        
          w
          ⁡
          
            (
            u
            )
          
        
        ·
        
          e
          
            
              -
              
                (
                
                  t
                  -
                  u
                
                )
              
            
            /
            τ2
          
        
      
      )
    
  




where τ1 and τ2 are exponential decay constants, where (t−u) is equal to the time between training doses, and w(u) is the training stress in arbitrary units.

To obtain a performance value for one or more days, a matrix may be generated, with separate columns for fitness and fatigue populated on a daily basis. The difference between the columns for each day may be that day's performance value.
This arbitrary performance prediction is transformed into a percentile scale. For this step it may be assumed that the minimum test performance is equal to the minimum predicted performance value and the maximum test performance value is equal to the maximum predicted performance value.

PPP=((PP+((|MinPP|)+(SCALEFACTOR)/(|MinPP↑+(SCALEFACTOR)+(MaxPP)))

Where:

    
    
        PPP=Predicted Performance Percentile
        PP=Predicted Performance
        
            |MinPP|=Absolute value of the minimum predicted performance
        
        
        SCALEFACTOR=a numerical quantity that is iteratively varied in order to improve the fit between model predictions and real-world test values
        MaxPP=Maximum predicted performance
    
    


The test performance data is expressed as a percentage of maximum measured test performance.

    
    
        TP/MaxTP=TPP
    
    


Where:

    
    
        TPP=Test Performance Percentile
    
    


The PPP and TPP values are then compared through a 2 step process. In the first step, the model constants k1, k2,τ1 and τ2 are adjusted until the sum of the squares of the differences between the predicted performance percentile value and test percentile data are minimized and the best fit obtained. In the second step, the SCALEFACTOR is iteratively varied until a final, lowest possible sum of squares is achieved.
Because athletes typically test and train on the same day, a problem of how finely to iteratively evaluate the equation may be encountered. To simplify the situation, it may be assumed that the test performance on any day t should be approximately equal to the predicted performance at midnight on the day before, i.e. day t−1.
The percentiles are then converted to real world values for the athlete and coach to review by multiplying both the predicted and actual percentile values by the maximum measured test performance.
Although the absolute values of k1 and k2 are in part dependant on the scaling method used and the sport, the ratio of the two remains relatively constant between sports, i.e. 1:2, 1:4 etc.
According to one aspect of the present invention, multiple constant values may be tested to determine the best prediction of training stress to performance. These predictions may be periodically double-checked against actual values, and adjusted accordingly.
According to another aspect, the constants initially used in the step of calculating performance may be approximations based on prior data from other athletes. A statistical analysis, such as comparing the sum of the squares, of an athlete's tested performance and predicted performance may be used to determine whether and how constants are changed. Any number of optimization techniques, such as the brute force method, the “hill climb” method, or other solving algorithms such as simplex, levenberg-marquardt, etc. may be used to determine the constants. The brute force method may be preferable where combinations of all possible/physiologically plausible combinations of constants are tested, because other optimization techniques may result in the algorithm narrowing in on a “local” best fit, rather than the “global” best fit for the equations. The brute force method ensures that the peculiarities of different optimizations algorithms are removed from the process.
In step 150, test performance may be measured. The measurements may be taken using a meter, such as a power meter, a heart rate meter, a stop watch, or the like. According to one aspect, the meter may also determine a quantitative value for the training stress exerted in the test performance. However, according to another aspect, the measurements from the meter may be input to the computing device 210 with other indicia to calculate the training stress. Examples of such measurements and calculations are described in further detail below with respect to FIGS. 4A-4B.
The measured test performance may be entered as input and compared with the calculated performance in step 160. If the measured and calculated performance values are accurately matched (e.g., differ only within a predefined range of values), the training schedule and performance model may remain unchanged. Thus, the athlete may continue training according to the schedule (step 165). Even in this instance, however, it may be beneficial for the athlete to continue to measure test performance periodically to ensure that the accuracy of the performance model is maintained.
If the measured test performance and calculated performance are not within a predefined range of one another, the training schedule may be reevaluated (step 170). Alternatively or additionally, revised calculations may be performed. For example, the constants may be varied and a new or revised performance model may be generated.
According to one aspect, the user may make one or more modifications to the training schedule as deemed necessary to achieve the goal performance. For example, if an athlete fails to complete the training session for a particular day, this may affect the goal performance depending on the proximity of the competition date. Alternatively, the competition date may be changed for any number of reasons, and thus a revised training schedule generated.
According to another aspect, the performance model calculations in step 140 may assume no initial performance ability. However, according to another aspect, an initial performance factor may be considered: This factor is a static additive term, whereas performance capacity, in contrast, is always changing.
According to one aspect, an initial performance capacity that decays exponentially according to the positive training effect constants may be inserted. In other words, the initial performance capacity disappears as the new performance capacity builds with training. This makes the initial days of predicted performance more accurate. Accordingly:



  
    Initial
    ⁢
    
      
    
    ⁢
    performance
    ⁢
    
      
    
    ⁢
    factor
    ⁢
    
      :
    
  




  
    
      ∫
      0
      t
    
    ⁢
    
      (
      
        
          k
          ⁢
          
            
          
          ⁢
          
            1
            ·
            InitPerf
            ·
            e
          
        
        -
        
          
            (
            
              t
              -
              u
            
            )
          
          /
          τ1
        
      
      )
    
  



Where:

InitPerf=Initial Performance Ability

This factor may or may not be used, depending upon the preference of the user and/or how much historical training data is available for analysis.
As shown in FIG. 2, a system 200 in accordance with one aspect of the invention comprises a user input 260 and a display device 270 connected to a computing device 210. The computing device 210 contains a processor 240, memory 220, an input/output (“I/O”) port 250, and other components typically present in general purpose computers.
Memory 220 stores information accessible by processor 240 including instructions 230 for execution by the processor 240 and data 225 which is retrieved, manipulated or stored by the processor 240. The memory 220 may be of any type capable of storing information accessible by the processor, such as a hard-drive, ROM, RAM, CD-ROM, write-capable, read-only, or the like.
The instructions 230 may comprise any set of instructions to be executed directly (such as machine code) or indirectly (such as scripts) by the processor 240. In that regard, the terms “instructions,” “steps” and “programs” may be used interchangeably herein.
Data 225 may be retrieved, stored or modified by processor 240 in accordance with the instructions 230. The data 225 may be stored as a collection of data. For instance, although the invention is not limited by any particular data structure, the data 225 may be stored in computer registers, in a relational database as a table having a plurality of different fields and records, as an XML. The data 225 may also be formatted in any computer readable format such as, but not limited to, binary values, ASCII or EBCDIC (Extended Binary-Coded Decimal Interchange Code). Moreover, any information sufficient to identify the relevant data may be stored, such as descriptive text, proprietary codes, pointers, or information which is used by a function to calculate the relevant data.
The computing device 210 may comprise any device capable of processing instructions and transmitting data to and from humans, including wireless phones, personal digital assistants, palm computers, laptop computers, some mp3 players, etc.
Further, although the processor 240 and memory 220 are functionally illustrated in FIG. 2 within the same block, it will be understood by those of ordinary skill in the art that the processor 240 and memory 220 may actually comprise multiple processors and memories that may or may not be stored within the same physical housing. For example, some or all of the instructions 230 and data 225 may be stored on removable CD-ROM and others within a read-only computer chip. Some or all of the instructions 230 and data 225 may be stored in a location physically remote from, yet still accessible by, the processor 240. Similarly, the processor 240 may actually comprise a collection of processors which may or may not operate in parallel.
The input/output port 250 may include any type of data port, such as a universal serial bus (USB) drive, CD/DVD drive, zip drive, SD/MMC card reader, etc. Further, the input/output port may be compatible with any type of user interface, such as a keyboard, mouse, game pad, touch-sensitive screen, microphone, etc.
The display 270 may be any type of device capable of communicating data to a user. For example, the display 270 may be a liquid-crystal display (LCD) screen, a plasma screen, etc. The display 270 may provide various types of information to the user, such as predicted performance models, training schedules, and any other type of output data.
According to one aspect, the display 270 and/or the input/output port 250 may provide a graphical user interface (GUI) for the user to enter and receive information. For example, the display 270 may depict a series of prompts requesting information from the user. In response to these prompts, the user may enter data by, for example, selecting an item from a drop-down menu, entering information in predefined data fields, or linking information from a separate application or device.
As shown in FIG. 2, the system 200 may also include a performance measurement device 260. Such device may be used, for example, to measure the athlete's test performance. Although the performance measurement device 260 is shown as a global positioning system (“GPS”), any variety of devices may be used. For example, the device 260 may be a heart rate monitor, a stopwatch, or a power meter.
According to one embodiment, the performance measurement device 260 may include a processing unit capable of obtaining the training metric. Accordingly, such data may be directly uploaded to the computing device 210 via accessing a drive (USB, CD) of the computing device 210 or via direct communication link (infrared, cable, wireless Internet).
As mentioned above, the system 200 may be used to perform one or more steps of the method 100. For example, the user may enter the performance goal information or any other information using a keyboard, mouse, touch-screen, or any other device. Similarly, the user may also enter commands relating to the computation of performance models, etc.
Such data and command entry may be facilitated by via a graphical user interface (GUI). For example, FIGS. 3A-3D show dialogue boxes used for inputting various types of information.
FIG. 3A provides dialogue box 310, which may be displayed to a user wishing to enter athlete information. Accordingly, as shown, data entry field are provided for the athlete's name, sport, and training start date. As illustrated, the data entry fields may be any type of input selection device, such as a drop-down menu, a free-text entry field, or the like. Further data input fields may also be provided in the dialogue box 310 or accompanying dialogue boxes.
FIG. 3B provides a dialogue box 330 for inputting a user-generated training schedule. The dialogue box 330 provides a scroll-down list including a series of dates 332. These dates 332 may begin at a previously entered training start date or any other date desired by the user. Corresponding to the list of dates 332 is a list of training sessions, or “doses” 334. The user may enter information for these doses by clicking on a cell corresponding to a particular date and entering the training dose information in field 336. The training dose information may be any quantitative value, including power, heart rate, or most preferably training stress. Alternatively or additionally, the training dose information may include a description of each training session, such as distance to swim and time to complete swim. From this information the processor 240 may calculate the training dose.
FIG. 3C illustrates an example of a completed training schedule 350. As shown, the schedule indicates the athlete, the sport, the training start date, the training dates, the corresponding training doses, and values measured during test performances. It should be understood that further information may also be included in the training schedule, and that the information may be displayed in any format.
FIG. 3D provides a dialogue box 370 for inputting performance test data. Such data may include the date on which the test was performed (field 372) and the value measured during the performance (field 374). Similarly to the other dialogue boxes, the data input fields may be any of a variety of types and may enable input of more or less information. According to one aspect, the performance test data may also include an option for deleting a test date, such as input button 376. For example, if a test was not completed on a planned test date, the test date may be deleted.
The input provided by the user in steps 110 and 120 may be stored in memory 220. The processor 240 may then calculate the performance model. For exemplary program code relating to determining the performance model, please refer to Computer Program Listing Appendix B. This program code may be executed by the processor 240 to determine an athlete's predicted performance based on the athlete's training data, including at least one of past training data and future training data, and one or more constants. An exemplary program code for determining these constants is shown in Computer Program Listing Appendix A. Accordingly, the processor 240 may process the various input data according to the instructions provided in these Appendices. Graphical illustrations of the performance model may also be provided to the user via the display 270, as will be explained in further detail below with respect to FIG. 8.
The step if measuring test performance may be performed using measurement device 260. These measurements may then be input to the computing device 210.
According to another embodiment, the performance measurements may be entered into the computing device as raw data (either through direct communication link or user intervention), and the training metric may be calculated by the processor 240. For example, FIG. 4A shows a dialogue box 410 for inputting power meter data. As shown, files stored in the power measurement device 260 may be uploaded to the computing system 210. Accordingly, a listing 415 of these uploaded files may appear in the dialogue box. Data entry fields for inputting a threshold power and athlete data (e.g., mass) may also be provided. Alternatively, the requisite information for calculating training stress may be derived from the uploaded files and/or previously entered information.
According to an even further embodiment, the training metric may be obtained by entering athlete and training information into predefined data fields, and calculating the metric using the computing device 210. For example, as shown in FIG. 4B, a dialogue box 450 includes numerous data entry fields 455-485 relating to measured performance information. These fields may include the sport (455), the athlete's weight (460) and height (465), and the dynamics of the workout (e.g., run over hills or on flat surface, distance run, time in which completed run). Using this data, the power output by the athlete and the training stress exerted may be calculated by the processor 240.
The measurement obtained by the measurement device 260 may be used in combination with other data or computations to derive a training metric. The training metric is a tool for calculating training stress. Examples of such training metrics include SwimScoreTM, BikeScoreTM, and Gravity Ordered Velocity Stress Score (GOVSSTM).
SwimScoreTM, owned by PhysFarm Training Systems, LLC, is a metric which permits the calculation of a swimmer's training stress based on pace, rather than heart rate or other factors. It takes into account both the intensity and the duration of the effort.
An illustrated example of SwimScore is shown in FIGS. 5A-5B. According to this aspect, the metric implements a GUI as well as a timing device, such as a stopwatch. Data relating to the athlete and the athlete's performance measurements may be entered into dialogue box 510. For example, the athlete's weight may be entered into “Mass” field 512. The calculated test power, for example calculated using a method similar to that described with respect to FIG. 4B, may be entered into the “Test Power” field 514. Other information such as time taken to complete the threshold test may be entered into data fields 516 and 518. Workout description field 520 may receive information relating to the training session completed by the athlete. Such information may include the distance of each interval, the time the interval took in minutes and seconds, the interval of rest taken, and the number of repetitions. This information may be used to determine various performance indicia, such as the total distance trained, average power, xPower, relative intensity, and the SwimScore.
The average power is the mean power measured over the course of the workout. The xPower is the exponentially weighted and intensity-adjusted power. It indicates how the workout “felt” to the athlete by more heavily weighting the hard efforts than the easy efforts.
Relative intensity is the ratio of the xPower to the threshold power. A relative intensity of 1 is indicative of a swim that is more or less equivalent to your threshold test swim.
The SwimScore provides a quantitative value for the training stress incurred during the training. For reference, 100 SwimScore points may be equal to the test time at threshold power.
SwimScore may also provide a graphical view of the athlete's workout, as shown in FIG. 5B. Graph 550 plots data from the athlete's workout, with time (in minutes) as the x-axis and power (watts) as the y-axis. A first curve 560 is equal to the athlete's power output, and a second curve 570 is equal to the training stress for that workout. As indicated by the second curve 570, the training stress is low for the beginning of each interval. The athlete begins to “feel” the workout approximately 30 seconds into the interval. This “feeling” is physiologic strain (the reaction of the athlete's body) to the stress (the rate of work or power output).
BikeScoreTM, owned by PhysFarm Training System, LLC, is a metric which permits the calculation of an athlete's training stress based upon the athletic power output during a cycling workout and Functional Threshold Power (FTP). The FTP is power output in a 1 hour maximal test or 40k time trial.
BikeScore uses a math-intensive process that exponentially weights the average power generated to account for the fact that the body responds to many stimuli and has many processes that are better approximated using exponential functions.
An illustrated example of BikeScore is shown in FIGS. 6A-6B. According to this aspect, BikeScoreTM implements a GUI as well as a power meter. Data relating to the athlete and the athlete's performance measurements may be entered into dialogue box 610. For example, the athlete's weight may be entered into “Mass” field 612, while the athlete's measurements from the power meter are uploaded to “Input Data File” field 616. This data file could be obtained from any commercially available power meter/power measurement device such as the Saris PowerTap®, the SRM® power meter, and the Ergomo®. Threshold power, i.e., the best power held by the athlete for one hour, may also be measured using the power meter and input to the “Critical Power” field 618. This information may be used to determine various performance indicia, such as the time and distance trained, average power, xPower, relative intensity, and the BikeScore.
The average power is the mean power measured over the course of the workout. The xPower is the exponentially weighted and intensity-adjusted power. It indicates how the workout “felt” to the athlete. In a long, flat time trial where there was not much variation in power, the average power and xPower may come out almost identically, and thus either would be a good description of how hard the effort was. However, in a ride over many hills with long periods of very high power output and long periods of coasting downhill, there may be a significant difference between average power and xPower, because the average is depressed by the coasting periods. In this case, XPOWER is a better descriptor of how the workout “felt”, because it more heavily weights the work periods than the rest period.
Relative intensity is the ratio of the xPower to the threshold power. A relative intensity of 1 is indicative of a ride that is more or less equivalent to your threshold test ride.
BikeScore provides a quantitative value for the training stress incurred during the training session. 100 points is equal to one hour at threshold power.
As shown in FIG. 6B, BikeScoreTM may also provide a graphical display of the athlete's physical output during the training session. For example, graph 650 plots the power measured for the training session (first curve 660) and the training stress incurred by the athlete (second curve 670). This graph 650 also provides the average power 665 and the average training stress 675.
GOVSSTM, owned by PhysFarm Training Systems, LLC, uses velocity and altitude change data as obtained from a GPS to derive a number indicative of both the duration and intensity of the exercise undertaken. It works in essentially the same way as the above metrics. However, it calculates the power output of the athlete using the athlete's physical characteristics, the quality of the running surface, and the slope of the running surface and speed of running, which are obtained from a GPS data file. This power data can then be manipulated, weighted for intensity, etc. This works well for running athletes. It has also been adapted for use in cross country skiing.
The display may provide visual output for various types of data. For example, as shown in FIG. 7, a training screen 700 is provided. This training screen 700 indicates trends in the athlete's training, wherein such trends may be expressed in any number of ways. As shown in FIG. 7, the user or athlete may view training records by distance (graph 710), time (graph 720), training stress (graph 730), and/or power (graph 740). Also displayed may be corresponding training schedule 750, including training dates 752, training doses 754, and tested performance measurements 756. It should be understood by those of skill in the art that the training screen 700 and the graphs 710-740 may portray training according to other variables as well. Further, although graphs 710-740 show trends in training already performed, predicted training trends may also be provided.
As shown in FIG. 8, the display 270 may also provide output related to performance. For example, as shown in FIG. 8, performance screen 800 includes a training schedule 850 along with graphs portraying an overview of the performance calculations (graph 810), an effect of training in the days leading up to the competition date (graph 820), the athlete's predicted performance (graph 830), and the athlete's training (graph 840).
The overview graph 810 may portray positive training effects (line 812), negative training effects (line 814), and the athlete's predicted performance (line 816) over the course of the training schedule.
The effect curve graph 820 essentially asks the question, “If day zero is race day, will training X days before the race have a positive or negative effect on that race, and how positive and negative will that effect be?” For this athlete, we can see that benefits to race performance increase approximately 45 days before the race, peak about 19 days before the race, and then fall sharply. Thus, a taper in heavy training should begin sometime soon after this peak (e.g., between days 18-15).
The predicted performance graph 830 provides actual performance tests (black dots) plotted against the model predictions (curve 836). The measurements and predictions in the performance graph 830 are expressed in watts, although any variety of metrics may be used. The user may decipher whether the training schedule 850 is appropriate for the athlete based on whether the black dots align with the predicted performance curve 836. If these indicia are not relatively aligned, the training schedule 850 and/or performance prediction 836 may be revised.
Although the method 100 and system 200 have been described above with respect to human athletes, the method 100 and system 200 may also be used to calculate training data and performance predictions for other beings, such as for horses participating in equine sports.
Although the invention herein has been described with reference to particular embodiments, it is to be understood that these embodiments are merely illustrative of the principles and applications of the present invention. It is therefore to be understood that numerous modifications may be made to the illustrative embodiments and that other arrangements may be devised without departing from the spirit and scope of the present invention as defined by the appended claims.

## Claims

1. A computer-implemented method of calculating athlete performance, comprising:
receiving at the processor information relating to records of the athlete's prior training sessions and prior performances;
calculating, using the processor, training stresses associated with each of the prior training sessions, wherein the training stress accounts for a duration and intensity of the training session;
calculating, using the processor, a positive training effect and a negative training effect associated with each of the prior training sessions according to the equations:


t



Positive training effect=∫(k1·w(u)·e−(t·u)/τ1)



0



t



Negative training effect=∫(k2·w(u)·e−(t·u)/τ2)



0


wherein k1 and k2 are constants, τ1 and τ2 are exponential decay constants, (t-u) is a time between training sessions, and w(u) is the training stress for that prior training session;
deriving a past performance value for each prior training session, wherein the past performance value equals the positive training effect minus the negative training effect;
calculating, using the processor, a predicted positive training effect and a predicted negative training effect for at least one time in the future;
deriving a predicted performance value for the at least one time in the future by subtracting the predicted negative training effect from the predicted positive training effect;
converting the predicted performance value into a percentile (PPP) by computing:


PPP=(((PP+((|MinPP|)+(SCALEFACTOR)/(|MinPP|+(SCALEFACTOR)+(MaxPP)))


wherein PP is the predicted performance value for the at least one time in the future, |MinPP| is the absolute value of a lowest predicted performance value, SCALEFACTOR is a constant, and MaxPP is a highest predicted performance value.

2. The method of computing physical performance according to claim 1, wherein a brute force method or other optimization routine is used to determine the constants.

3. A system for predicting athlete performance, comprising:
an interface for inputting information relating to records of the athlete's prior training sessions and prior performances;
a processor; and
a memory storing the information relating to the records of the athlete's prior training sessions and prior performances and instructions executable by the processor for computing a predicted athlete performance based on the information relating to the prior training data, the instructions comprising:
calculating training stresses associated with each of the prior training sessions, wherein the training stress accounts for a duration and intensity of the training session,
calculating a positive training effect and a negative training effect associated with each of the prior training sessions according to the equations:


t



Positive training effect=∫(k1·w(u)·e−(t·u)/τ1)



0



t



Negative training effect=∫(k2·w(u)·e−(t·u)/τ2)



0


wherein k1 and k2 are constants, τ1 and τ2 are exponential decay constants, (t-u) is a time between training sessions, and w(u) is the training stress for that prior training session;
deriving a past performance value for each prior training session, wherein the past performance value equals the positive training effect minus the negative training effect;
calculating, using the processor, a predicted positive training effect and a predicted negative training effect for at least one time in the future;
deriving a predicted performance value for the at least one time in the future by subtracting the predicted negative training effect from the predicted positive training effect;
converting the predicted performance value into a percentile (PPP) by computing:


PPP=(((PP+((|MinPP|)+(SCALEFACTOR)/(|MinPP|+(SCALEFACTOR)+(MaxPP)))


wherein PP is the predicted performance value for the at least one time in the future, |MinPP| is the absolute value of a lowest predicted performance value, SCALEFACTOR is a constant, and MaxPP is a highest predicted performance value;
receiving at the processor information related to at least one test athlete performance.

4. The system for predicting athlete performance according to claim 3, further comprising a display for outputting the predicted performance percentile.

5. The system for predicting athlete performance according to claim 3, wherein the interface for inputting information comprises a power meter electrically coupled to the processor.

6. The method of claim 1, further comprising:
receiving at the processor information related to at least one test athlete performance;
converting the information related to the at least one test athlete performance into a percentile (TPP) using the equation:


TPP =TP/MaxTP


wherein TP is the test performance and MaxTP is a highest prior performance; and
modifying PPP by:
adjusting k1, k2, τ1, and τ2 until a sum of squares of a difference between PPP and TPP is minimized; and
iteratively varying SCALEFACTOR until a lowest possible sum of squares is achieved.