Data Field : TRIMP - Training impulse

Former Member
Former Member
Hi,
- Workouts can be quantified in many ways – runners and cyclists are always being asked ‘how far did you go today’, or ‘how long were you out for’. Usually they can impress the questioner with a response like ‘I did xx miles’ or I was out for ‘x hours’. But of course simply stating the distance or time takes no account of the speed or intensity, and tells nothing of how hard you found the effort.
- Banister (1991) developed the ‘training impulse’ (TRIMP) as a method to quantify training load. Banisters TRIMP takes into consideration the intensity of exercise as calculated by the heart rate (HR) reserve method and the duration of exercise.
- More information here: http://fellrnr.com/wiki/TRIMP

It would be very interesting for cyclists (and other athletes) to have a data field for garmin edge that reports the Trimp Instant, Trimp / Hour, Trimp accumulated in the activity.
For these last two calculations one author left the code free: https://github.com/victornottat.
I'd even like to adapt these codes to a new single datafield, but I'm a zero in programming.
Can anyone help?
Thank you very much
  • Hey, this is not exactly what you want, but if you know the math formula for your data, I have an IQ data field called AppBuilder that can calculate almost anything you want, so you don't have to code your own app. Taking a quick look at the code you linked, it looks like the author implemented "exponential TRIMP".

    A more sophisticated approach uses Heart Rate Reserve and an exponential scaling factor to account for the fact that higher intensity training as a disproportionately high training impact[SUP][2][/SUP][SUP][3][/SUP][SUP][4][/SUP]. The formula for calculating TRIMP[SUP]exp[/SUP] is
    TRIMP[SUP]exp[/SUP] = sum(D x HR[SUB]r[/SUB] x 0.64e[SUP]y[/SUP])
    Where
    • D is the duration in minutes at a particular Heart Rate
    • HR[SUB]r
    • [/SUB] is the
    Heart Rate as a fraction of Heart Rate Reserve
    • y is the HR[SUB]r
    • [/SUB] multiplied by 1.92 for men and 1.67 for women.

    Referring to the doc for AppBuilder:
    https://forums.garmin.com/forum/deve...eld-appbuilder

    Resting HR = UserRestingHR
    Max HR = UserHRZone5Max
    Heart Rate = HR

    The rest should hopefully be fairly self-explanatory.

    So here's my stab at that formulas for the data you want. Hopefully I didn't make any silly mistakes here.

    (Unfortunately I don't have a constant for e in AppBuilder, but we can approximate with 2.71828. Another thing to note is that the formula is evaluated every second. And SUM only counts data that is gathered while the timer is running, by design, which is what we want in this case.)

    - Total TRIMP (for men; for women, change 1.92 to 1.67):
    SUM(IF (HR gte UserRestingHR, 1/60 * (HR - UserRestingHR) / (UserHRZone5Max-UserRestingHR) * 0.64 * 2.71828 ^ (1.92 * (HR - UserRestingHR) / (UserHRZone5Max-UserRestingHR)), 0))

    - Instant TRIMP (I think):
    IF (HR gte UserRestingHR, 1/60 * (HR - UserRestingHR) / (UserHRZone5Max-UserRestingHR) * 0.64 * 2.71828 ^ (1.92 * (HR - UserRestingHR) / (UserHRZone5Max-UserRestingHR)), null)

    - TRIMP per hour:
    SUM(IF (HR gte UserRestingHR, 1/60 * (HR - UserRestingHR) / (UserHRZone5Max-UserRestingHR) * 0.64 * 2.71828 ^ (1.92 * (HR - UserRestingHR) / (UserHRZone5Max-UserRestingHR)) / (1/3600), 0))

    My formula for TRIMP per hour doesn't take into account moving time like the github code does -- it just counts time that the HR is greater than the resting HR, just as with the calculation for TRIMP (to me this makes slightly more sense, although I haven't spent a whole lot of time thinking about it).

    The main problem is that you really can't combine any of those into a single field, since the output of AppBuilder can only be a single number (for now); you can get away with two numbers if you apply some shenanigans with decimals, but I don't really recommend it.

    But for now you could add 2 or 3 of those as separate datafields (I have 4 clones of AppBuilder, and Edge supports up to 4 IQ data fields), and at least see if you are getting useful data. There's an option to record the results to the FIT file, so you can see the values in Garmin Connect and compare them to whatever values you're getting with your third party sites/plugins/apps.
    https://apps.garmin.com/en-NZ/apps/d...a-9b8485d2fc80