Monday, June 7, 2021

FatMaxxer - a new app for real time DFA a1

Updated 6/10/21 and 6/20/21

The last year has seen much change in the field of dynamic HRV during exercise for aerobic threshold determination and intensity regulation.  Between published studies exploring the theory, validation and use in varying populations, the importance of monitoring DFA a1 in real time appears to be of value.  Up to this point we have had one app to do so, HRV logger by Marco Altini.  This was constructed as an add on to an already mature iOS app and was not designed specifically to track a1 during "on road" exercise.  However, another developer has released an Android app called FatMaxxer that was specifically created to calculate DFA a1 every "x" seconds (with 2 min windows) and display this along with HR.  You must use a Polar H10 and android device (no iOS).  The artifact correction method is similar to the HRV logger with either workout mode (5%), a 25% threshold method or an auto mode that adjusts for heart rate.

Download the "app-debug.apk" from the link

Settings recommendations:

  • Artifact threshold of 5% during exercise (25% at rest) - the reason being that both  choices will correct missed beats but only the 5% will correct the dreaded APC (premature beat) which is not uncommon during exertion. 
  • There is now an auto mode feature that I would recommend - it adjusts the 5 or 25% according to HR which makes life much easier (no need to reset the limits for rest or exercise)   See below how it works, watch the [.25] change to [.05]:

  • Recalculation window of 5 to 20 seconds.  The above examples were done with a 5s recalculation on a Samsung S21.  For older phones, 10-20s should be fine.
  • For runners the sound function is ideal.  The app will voice notify over wired or wireless headphones with your HR and a1 - perfect for running, skiing and when you can't look at your phone. 
  • Although no Garmin data field for now - my recommendation is use the voice alerts as a workaround.
  • Notification on so your OS does not force close the app.
  • Screen on if cycling.
  • Except for audio setting, you will need a restart for settings to change  
  • The app now has an auto bluetooth pairing function.  Choose the menu item "search for Polar devices".  Your last or preferred device will also show on the menu.
  • Menu - Rename current logs - if you want to save the .csv with DFA a1/HR or RR file, this is very useful - you can custom name the session before, or during before quitting the app.
  • Menu - Export - you can export the logs (RR or "features" which contains the DFA a1 and HR details.  Having the custom name makes this much easier, since the time coding name can be confusing, especially with many logs.
  • Menu - Delete all logs - after weeks or months, you can delete the logs you don't need. 
  • At the bottom of the settings there is developer mode.  If this is on, the app will not begin recording data on start (until you purposefully connect to the HRM).  This is useful if you want to "replay" an old session.  
  • Replay RR log - a very cool function that imports previous sessions RR data back in redoing the graphs.  You will get a dialog box asking which file to import. 


The app in action:

  • Green = DFA a1 (Purple is the old detending method - see below)
  • Red = HR
  • Yellow = .75 DFA a1 threshold

The axis on the left represents HR and DFA x 100 (so a .75 is 75 on the scale).  The right axis is the Artifact in percent.  The digital display contains artifacts (2 of 280 beats), elapsed time, HR and a nice big DFA a1 in the middle.  RMSSD is also in the digital display.  Files are saved as both RR intervals and timestamped DFA a1, HR, artifacts.

Since we are basing training thresholds on the value of DFA a1, precision is of utmost importance.  Other HRV indexes (SD1, SDNN) rely on looking for a nadir during an exercise ramp for AeT determination.  With a1, we use a value - that's both a blessing and a curse.  The blessing is that we don't need a ramp to failure and could probably estimate from a mixed exercise session.  The curse of course is that we are relying on accuracy of the HRM in getting the RR timing correct and the computation methods of the software.  The process of obtaining the a1 is complex.  The HRV software needs to first "detrend" the data.  This has nothing to do with "detrended fluctuation analysis", AKA "DFA".  The detrending of RR data is done to remove "stationaries".  These are slow changes in beat pattern from other causes.  If they are not removed properly, the DFA a1 will appear more "ordered" than it should be and a bias upward will be seen at very low values (for example a true a1 of .4 may appear as a .6 or higher).  This has been the bugaboo of some of the other software approaches including the initial python related packages.  For instance, Runalyze was somewhat inaccurate before they enhanced their approach to using the "smoothness priors" approach of Kubios.  HRV logger does not use the "smoothness priors" of Kubios fame method either.  The issue is worse for recordings with more stationaries of course - so YMMV.  We saw very good accuracy with HRV logger in the Frontiers study, but in my personal use, it is not there.  After a fair amount of work, Fatmaxxer has been significantly upgraded to use the Kubios method of "smoothness priors".  Despite the calculation load, the speed is not affected even with a re-computation of every 5 seconds.
Lets now take a look at the difference in methods including effects of "detrending".
This was an attempt on my part to see how a1 tracked 15w below then above MLSS:
Comparison of detrending versions:
Old method:

 New method:

Later on that session, an interval just below the AeT (fatigued)
Old method:

New method:

The a1 value matching is far superior with the new detrending method!

I also ran a Bland Altman analysis of the 2 hour session.  There were artifacts and the time matching may be a few seconds off but this gives us a general idea on "agreement".  The graph shows the relative difference at each pair matching.  As an example, let's say at 60 minutes the Kubios value of a1 was .50, if the matching Fatmaxxer value was 20% higher, it would have been .60 - a large difference.

Old version:
New version:
  • Bottom line - old version was 17% higher on average, new version was 4% higher.

Another example
Here is a ramp done from awhile back during the "heat" tests.  
Just showing the new version of detrending:
  • Excellent agreement again.

A final example - a 110% VO2 max power interval outdoors in the heat:
Old method:

New method:

With the Bland Altman graph of the entire 3 hour session:

  • The mean difference was only 2%.
  • Interval segment matching was superb.
Another interesting look at the detrending difference of the original version (purple) vs the new one (green) with an import of an old RR series

  •  The difference becomes more obvious as the a1 drops (and HR rises).
A quick word about the concept of "fatmax" and the aerobic threshold (a full post will be done soon).  This is a concept describing the exercise intensity where the greatest absolute (not relative) amount of fat is being oxidized (burned).  As seen by the diagram below, fat is the predominate fuel at low intensity and decreases as it work load rises.  

However, since total calorie burn is increasing at higher intensity, the absolute amount of fat used increases even though the relative portion drops - up to a point.  That point is the Fatmax.  There is also a Fatmin - the counter point - the least fat burned (in grams).
A recent look at the relationship between Fatmax and the AeT indeed shows that they are well related:

 Interestingly, the Fatmin (or Carbmax!) occurs at the AnT/MLSS/RCP
A couple of comments on these curves:
There was not perfect correlation between Fatmax and the AeT - it's very good, but some may have their Fatmax at intensities other than the AeT (usually below).
Exercise at the MLSS/AnT will consume very large amounts of carbs and oxidize relatively small amounts of fat. 
It would appear that long bouts of intensity at below the AeT would be the optimal strategy for fat burning - long sessions are possible from the training intensity distribution standpoint and fat burn is both relatively and absolutely high.  Although you may get a bit better burn at the AeT, it may impact your training distribution and cause excess fatigue.


  • We have a new choice for real time a1 monitoring that has several major advantages over the HRV Logger.  In fairness the HRV logger was not designed for this use case in mind.
  • Fatmaxxer will recalculate every 5 or more seconds, display both HR, a1 and artifact, along with a moving graph.  This is close to a pocket version of Kubios premium for a smartphone (for a1).
  • Adjustable artifact thresholds.
  • Audio alerts with your a1 and HR are options which may appeal to runners.
  • Accuracy is now nearly indistinguishable from Kubios. This is an impressive accomplishment in a relatively short time.
  • The caveats of artifact limitation (don't trust above 5%) apply.
  • Yes, maximal fat burning occurs near the AeT.  Max carb burning at the AnT.



Heart rate variability during dynamic exercise



  1. I tried to install the app on 2 different phones and it crashes every time after 2-3 seconds and the app just closes itself :(

  2. A couple of comments - use the latest version of the app - bugs are being fixed on a daily basis. Second, are you using a Polar H10? The app doesn't work for the older H7.