Detailed Topic Index

Monday, December 28, 2020

Real time Aerobic thresholds and polarized training with HRV Logger

Update 3/23/22 - As discussed in this post, alternate preprocessing methods other than the type used in Kubios (detrending method - smoothness priors) may lead to DFA a1 results that are different than seen with Kubios software.  HRV logger does use an alternate method.  Therefore, results may not agree well with published studies.  If possible, a secondary check using Runalyze, AIenduance or Fatmaxxer is recommended.

 Part 1 - Review of HRV Logger

Part 3 - Active Recovery with HRV Logger 

The road from research to practical implementation is sometimes difficult.  However, in this post we will see that our ideas about using DFA a1 as a measure of the transition through the aerobic threshold (AT) can be done in real time, without a PC, without Kubios software and most importantly be accomplished during a simple low intensity training session.  The same test conditions were present as with my HRV Logger review.  Although some recommend using the "workout" mode for artifact correction, my initial DFA a1 values were suppressed with low intensity warmups using this setting.  I switched back to the 20% mode for the testing.

Ramp Procedures 

The first ramp was my usual 130 to 230 watt span but done over 10 minutes (not 20).  This was suggested to keep the time commitment short.  The other added benefit (if it works) is that time spent over the AT is minimized.

The second ramp was done about 10 minutes after the first.  It consisted of 3 intervals done without trainer guidance, to simulate outdoor riding.  The wattage varied somewhat but the average power was 155, 190 and 214 watts each for 5 minutes.

Whole ride results:


The ramps are circled in blue.  In the middle is a 3 minute x 110% VO2 max interval and towards the end are 2 x Wingate 30s intervals.  The green line is the average HR for each 2 minute window, black is DFA a1 via Kubios and red is DFA a1 from HRV logger.

  • Both ramps appear relatively linear (first > second) with fair agreement between Kubios and Logger.  Since the HRV Logger only displays a value every 2 minutes, we lose some fine granularity.


Ramp comparison for HR

To calculate the HRVT, one of our methods is to plot the linear drop of DFA a1 against the HR rise.  Below is a graph of Kubios (every 5 sec) vs HRV Logger (every 2 min):

  • The results were essentially the same, despite the lack of points in the Logger.


Next was a 3 interval constant power session, 155, 190 and 214 watts.


  • I called this a "simulated road ramp" because anyone can do this on the road.  
  • Here we see DFA a1 drops below .75 at 214 watts, but was well above it at 190 watts.  Therefore the HRVT was somewhere in between.  If a finer degree of resolution was needed, additional intervals around 200 watts could have been done.
  • One could also look at the HR for equivalent threshold values.


How did this look in real time?  

As I was doing the ramp, my eyes were glued to my ipad mini.

After passing 200 watts (my usual HRVT), the Logger showed that the DFA a1 did drop below .75 for the first time:

  • The first ramp is on the left (I labeled the 200 watt point where DFA a1 is about .71).
  • The "road ramp", with 3 constant power intervals is on the right.  Note that DFA a1 was above .75 until the last section (214 watts).

There were no APCs according to my also worn Movesense ECG (which if present could have lead to abnormal DFA a1 values from faulty artifact correction :


Real time Polarized training

Training intensity distribution is very important to both know and implement.  I'm a fan of the polarized approach, which is especially important in older athletes.  One of my usual practices is to do a 3 or 5 minute near max interval at or just above VO2 max power.  We know that this HIT interval is at zone 3 (any max interval below 20 min should be zone 3).  The question is, what happens to your "internal intensity load" measures post interval.  For instance, below is a look at lactate after one of the above HIT intervals

  • After the 3 minute max, the lactate was over 10 mmol (with suppressed DFA a1 on the bottom panel).  Toward the end, I did 500w for 1 minute, then just easy pedaling for about 15 minutes.
  • Despite that active recovery, the lactate was still 4.2 at the session end and it was associated with a suppressed DFA a1 (yellow circle below).
  • This is why we say that DFA a1 is a marker of internal load rather than external.  The bike power (external load) was well into my zone 1 but the lactate and DFA a1 (both internal load markers) showed a higher intensity state.

Back to real time DFA a1...

With the above example in mind, several implications are possible.  After the HIT interval is over, do we use the internal or external load measures to compute our polarized (or even pyramidal) ratios?  Does the post HIT lactate or DFA a1 indication of intensity affect the next interval quality?  Without sufficient recovery, you won't be able to achieve full HIT power nor interval duration.  The following are a couple of observations post HIT.

Post 110% VO2 max:


  • As in my lactate example above, the DFA a1 stays down post interval in both the Logger and Kubios.  I watched this for awhile and finally dialed down the effort after 10 minutes (even though I was not really tired).

Post 30s Wingate x 2:


In a similar fashion, the DFA a1 was down after the HIT intervals (even though the HR was not high and power was well below the AT).  Only at the end of the entire ride did the DFA a1 rise.

The entire session on the Logger:

  •  Two ramps, two HIT and the post HIT suppression noted.



  • The ability to follow DFA a1 in real time has great value.  Not only can you obtain your personal aerobic threshold, but you are able to do so immediately without a PC, Kubios or Excel software.
  • Observation of real time DFA a1 is an ideal way to enforce polarized training - simply by making sure that your values stay above .75.
  • Recovery post HIT.  Persistent DFA a1 suppression may be associated with residual high levels of internal load (lactate).  This may or may not be desirable.  On one hand if you wanted to enhance lactate disposal, keeping the DFA a1 down by being guided with the real time display may be helpful.  Conversely, if a true recovery segment is desired, allowing DFA a1 to rise above .75 could be helpful.
  • HRV Logger derived DFA a1 appears to strongly correspond to values derived from Kubios.  Although this is N=1 data, it appears a promising modality for athletic monitoring and training.

DFA a1 and exercise intensity FAQ 


  1. Great post. Would you recommend a margin of error (say .8 instead of .75) for someone using a Polar H7?

    1. That's certainly a reasonable idea. Especially when you want to train in zone 1.

  2. Why you wouldn't use shorter interval in HRV Logger? Wouldn't that be more accurate when e.g. running outside your pace varies compared to biking on a trainer?

  3. I'm not sure I follow - ? shorter constant power interval? If so, yes that would usually be fine but since HRV logger only puts out data every 2 min, we need a few points to have confidence that the reading is stable and consistent. You can do shorter intervals and use Fatmaxxer or Runalyze or AI Endurance

    1. Sorry, my bad.

      I can choose a recording interval between 30s 1 min and 2 min in HRV Logger iOS version but with HRV Logger I cannot overlap recording windows.

      So, if I run, say, in rolling terrain, should I still use 2 min interval or is it ok to use shorter measurement window? The more general question is if I should use shorter window when my training load (and HR) fluctuates more than e.g. on a steady bike trainer workout.

      Also, I can do post analysis after session but this use case is purely real-time :)

    2. HRV logger was written for resting HRV, and the a1 was an add on. With all respect to Marco, it is not the best app for this now. The window width is fixed to equal both the measurement window and the recalculation time. So you are stuck with every 2 min output since we MUST have a 2 min measurement window. In the other app options, we have our 2 min measurement but a re computation every 5s (adjustable). If you only have an ios device, upload the RR to Runalyze to get the granular data. See my post on Runalyze best practices.