A computer-implemented method of calculating a recovery score for a subject, the method comprising: obtaining a pair of heartrate values, a first of the values, HR rest, representing the heartrate of the subject in a resting position and a second of the values, HR stand, representing the heartrate of the subject in a standing position; characterised in that the method further comprises: inputting the pair of heartrate values into a probability density function f ( HR rest, HR stand) which uses the difference between the value of ( HR stand - HR rest) and a non-zero constant, μ, that represents a desired value of the difference between the standing and resting heart rates, to generate a recovery score for the subject, wherein f ( HR rest, HR stand) is of the form: f HR rest HR stand = S × A σ × B HR stand − HR rest − μ σ 2, wherein A and B are non-zero constants, wherein μ is a non-zero constant that represents a desired value of the difference between the standing and resting heart rates, and acts as a location parameter that translates the peak of the curve of the distribution generated by the probability density function to a location representing an optimum recovery score for the subject, wherein S is a non-zero scaling constant, and wherein σ is a non-zero scaling constant that defines the width of the curve of the distribution generated by the probability density function; and outputting the generated recovery score. obtaining a pair of heartrate values, a first of the values, HR rest, representing the heartrate of the subject in a resting position and a second of the values, HR stand, representing the heartrate of the subject in a standing position; characterised in that the method further comprises: inputting the pair of heartrate values into a probability density function f ( HR rest, HR stand) which uses the difference between the value of ( HR stand - HR rest) and a non-zero constant, μ, that represents a desired value of the difference between the standing and resting heart rates, to generate a recovery score for the subject, wherein f ( HR rest, HR stand) is of the form: f HR rest HR stand = S × A σ × B HR stand − HR rest − μ σ 2, wherein A and B are non-zero constants, wherein μ is a non-zero constant that represents a desired value of the difference between the standing and resting heart rates, and acts as a location parameter that translates the peak of the curve of the distribution generated by the probability density function to a location representing an optimum recovery score for the subject, wherein S is a non-zero scaling constant, and wherein σ is a non-zero scaling constant that defines the width of the curve of the distribution generated by the probability density function; and outputting the generated recovery score. inputting the pair of heartrate values into a probability density function f ( HR rest, HR stand) which uses the difference between the value of ( HR stand - HR rest) and a non-zero constant, μ, that represents a desired value of the difference between the standing and resting heart rates, to generate a recovery score for the subject, wherein f ( HR rest, HR stand) is of the form: f HR rest HR stand = S × A σ × B HR stand − HR rest − μ σ 2, wherein A and B are non-zero constants, wherein μ is a non-zero constant that represents a desired value of the difference between the standing and resting heart rates, and acts as a location parameter that translates the peak of the curve of the distribution generated by the probability density function to a location representing an optimum recovery score for the subject, wherein S is a non-zero scaling constant, and wherein σ is a non-zero scaling constant that defines the width of the curve of the distribution generated by the probability density function; and outputting the generated recovery score.