Detailed Topic Index

Sunday, September 12, 2021

Rapid HRVT graphing and interpretation

One of the most important questions we can answer with DFA a1 observation is where is our aerobic threshold?  To do so, either constant power intervals or an incremental ramp (not to failure) is needed.  Over the months, I've been asked by athletes and coaches to look over data and weigh in on an interpretation.  What I'd like to do in this post is give a brief approach on how to do this yourself and then present the data in an attractive Excel graph.  To keep this both simple and quick, I recommend using Runalyze as your source of data.  Why?  They use a similar DFA a1 computation method as Kubios, can output a1, HR and power in fine increments (every 5s recalculation) and according to my testing, provide accurate results.  Although we can plot DFA a1 over time (and work out the time vs power or HR), the following approach is easier and will provide comparable results.  I also discussed some general graphing and analysis tips in a set of older posts, here we will just review the HRVT.

Why not use Runalyze HRVT data?  The Runalyze graph uses all data points and even if you just recorded the ramp, we don't want to plot the beginning, stable a1 values (the top of the reverse S shaped curve) or the bottom unchanging nadir values (bottom of the S).

Step 1 - do a ramp in either Zwift or equivalent, with a start power well below your easy pace.  The rate of rise can be from 5 to 30w/min but at the higher rates, power at the HRVT will not be accurate.  If you are interested in cycling power, do a 5 to 10w/min ramp rise.

What about constant power intervals?  Yes, these can be very helpful, but their best use case is with real time monitoring (Fatmaxxer).  For example, cycling at a fixed power for 5-6 minutes may allow one to get an idea at what power level DFA a1 drops to below .75.  We really don't need Excel plotting to do that.

Step 2 - have Runalyze process the file.  The default time for the re computation window is every 60s, we need to change that to every 5s:

Set the window overlap to 115 sec (yeah, it's not intuitive).  Keep the window length and artifact correction as is.  Click Submit.

Then you will see this:

It contains all our needed data.

Step 3 - Click export CSV (in green).  Save the file and open it with Excel

I highlighted the important columns including time (duration end), DFA a1 (alpha), pArtifacts (%artifacts), heart rate and power.

Before you do anything else, save the file as an xlsx:

If this is not done, none of our graphics will be saved.

Step 4 - locate and inspect the data:

We don't want to plot the entire session or even the entire ramp.  What we are looking for is the near linear section from an a1 of 1.0 to about .5 (or less).  Too many repeats of similar a1 values at the start or end will throw off the linear plot.

For example, here is where I'm going to start the plot (line in yellow):

You can see that the alpha column will start with values of about 1 and then drift down.

Ending with these (last plot line in yellow):

As you scan through the data between the start and end plot, make sure the % artifact is reasonable - below 3% (will show as .03 in the column) would be best.  In this case they were zero to 1%.

Step 5 - Selecting the data to graph:

We are going to take a few shortcuts and perform a couple of tricks here to make life simpler.  Since we first want to graph HR vs a1, lets isolate just those two data columns.  Click on the start cell of HR to select it, scroll down to the end HR cell and click with the shift key held down to select that entire batch.  Choose copy.  


Add a new page (bottom of window) and paste those values into A2, to leave room for a heading:

I pasted into the second row of the new page (HR plot, in green) and in the top of the column, then put a label of HR (green also)

Repeat for alpha 1 column:

Now we have this:

Step 6 - HR vs DFA a1 graph and HRVT estimation.  

Click and drag the cursor over columns A and B (not A1 to B1, use the actual top of the columns)

With both columns selected, go to Menu - Insert - Charts and pick "scatter" on the top left of the choice list:

Excel will then automatically place a graph of HR vs a1 on the page.

Step 7 - improving the looks of the plot and getting the HRVT HR

I moved and enlarged the graph area by dragging and resize.

Let's add some axis titles and trendlines:

Select the graph, hit the plus sign then check both axis title and trendline boxes.  I re-titled the graph, axis labels already

Right click the trendline (dotted) and add the R squared and equation if desired.  You can also go to the paint can icon and change the line style/color.

Format the Y axis (a1) - We want an appropriate range and increments of 0.25 with a line at a1=.75.

In green highlights, the min (.25), max (1.25) Bounds and major Units (.25) are listed.  This will make it easier to see where the HRVT falls without resorting to equations.

Format the HR axis:

The min, max Bounds and major Units are set (green)

  • The HRVT HR is about 137 bpm.

Step 8 - HRVT power: 

In this case we will essentially follow the same steps but substitute Watts for HR - Two columns, Watts and DFA a1, plot both and adjust the axis.

I also went into "text options" for each graph component to darken the fonts

  • HRVT power was 204 watts.

To export any graph as a picture, just right click the graph and choose "save as picture"

There you have it!

Yes, if you are an expert at Excel you certainly don't need this, but for those who who aren't and would like a nicer looking, more accurate HRVT plot, this may be helpful.

One more tip - once you have a graph customized the way you want, you can "copy" the "format" to another unfinished graph (in another day's session on a different xlsx).

Step 1 - Control C (copy) the formatted graph

Step 2 - Click once on the unformatted graph to select it.


Step 3 - Go to the "Home" tab, upper left corner is "Paste" - select "Paste Special"

Step 4 - Choose "Format only"

Press "OK"

Note - You may need to right click on the X axis to reset the "Bounds" if the HR or power has changed.

Heart rate variability during dynamic exercise


  1. You have mentioned in other posts about Runalyzer that it sometimes starts the upper end of the trend line "too late" (i.e. retains too many of the flat upper left portion of the sigmoid-like curve.)

    Have you tried the Excel (and Libreoffice) "Autofilter" feature to limit the contributions of observations outside the quasi-linear heart-rate increase?

    I mention this because if you filter the offenders out with Autofilter the regression diagram equation will change. You can sometimes get much improved R-sq values this way. In the data above I doubt that would work. But I have a very defective ramp attempt that gave at least ONE believable, perhaps even usable BPM at .75 DFA a1 with this method.

    My beginning Wattage was too high, and the course not conducive to steady wattage. Despite that, the ramp section WAS clearly identifiable, and could be isolated and plotted from Runalyzer data using Autofilter.

    Hope you find the hint useful. I sure have found YOUR blog to be useful!


    Dave Adams

  2. Thanks Dave. Runalyze has a new option where you can set the start, end of your ramp. This is incredibly useful and should make the threshold process quicker, more accurate and easier than it was. See their Twitter or bog posts for details

    1. Great tip! Tried it right away!

      I figured out a fairly simple way to get the desired trend line in the graphic context of the whole file AND get the on-chart regression AND the workbook regression parameters based on my selection of hi and lo BPM and/or Wattage values. I found that more intuitive than the segment numbers in Runalyze.
      VERY gratifying to confirm my values from the workbook against Runalyze with the segment filters.
      And the workbook can give the possible VT2 BPM and wattage values as well.
      Please let me know how to send it if you would like a copy. I'll clean it up and send it along.

      Dave Adams

  3. If you want to put a link here to Google drive or drop box that would be great for anyone interested. Thanks.