How to Guide - ImReady4 app, for HRV guided training

You don’t need to create it, you can use a shared one.
Click on ‘Add Calendar Entry’ (the + icon), then Wellness data, Fields and then on the Looking glass.
Search for ‘advice’ and add the field.

1 Like

On your calendar (activities page), you can view Wellness info, eg. resting HR. Click on that value, or any other, and it will open the wellness table/window. Click on Fields (bottom left) and select Training Advice (the ? icon explains how it works). Once ticked, it will show up on the Wellness window.

1 Like

.NET (C#) Migration of ImReady4 (just score calculation at the moment): GitHub - Creastoff/ImReady4.Net: .Net Translation Of ImReady4 (MATLAB/Octave)

Wrote with hopes of making HRV slightly more accessible.

Personal anecdote:
I have been using EliteHRV & ImReady4 in tandem for a few months. I suspect that EliteHRV’s baseline period is too short (supposedly 10 days), I have had much more training success with ImReady4 (30 days?).

Additionally, I recently had surgery (IM nail removal from femur), you should be able to identify when I had the surgery and when I started to over do it (major knee swelling) post surgery.

Not sure regarding EliteHRV but I’mReady4 uses 30d avg as a center point in the Advice chart. The second chart with trends has that same 30d avg as the yellow band (what’s called ‘Normal’) and the dash line is the 7 day baseline (Recent Trend). That second chart is actually an implementation of the HRV4Training method. When your 7d baseline (dashed line) remains in the Normal range (yellow band), there’s nothing significantly wrong. One day with a low HRV value should not immediately make you change a lot. It can simply be an acute issue that resolves within 24hr. If on the other hand your 7d baseline drifts outside of the Normal band, there’s more going on and you need to take adequate action (rest/recover/get healthy again if caused by sickness). iThlete, which is the original source for the Advice chart, only uses the 30d avg and has no recent trend/7d avg.
Both methods show the same things:

  • where is todays result. The location of the dot on the advice chart or the bar height in the trend chart
  • what’s my recent trend. The dashed line that connects the last 7 dots in the first and the dashed line compared to the normal band in the second
  • The CV (coefficient of variation) as the spread of the dots in one and the variation of the bar heights in the other

There’s a custom chart in Intervals that shows the HRV4Training method where CV is also plotted. The advantage of that one is that it shows really long term trends. HRV is seasonal and is known to decrease with age.
I’mReady4 already has a combination of iThlete and HRV4Training.
From your linked article, Elite seems to use a 10d baseline and an all-time average as normal range. That choice is probably making it a bit ‘less reactive’, which isn’t necessarily wrong. Can’t elaborate on that because I haven’t tried it.
I will check out your implementation. Thanks for making this even more accessible with a .net app.
If you have questions regarding the used algorithms, just ask. I started this whole thing as an Excell implementation but I welcome any other initiative that makes it more user-friendly.

I originally used Whoop back in 2019/2020 but stopped - didn’t seem all that useful, and the strap didn’t even work properly for me a lot of the time. In the past year or two I started looking at HRV monitoring again, I looked at a few apps including HRV4Training however decided on EliteHRV. Though again it didn’t seem to reflect at all how I am feeling and provides far too broad of a recommendation (0-10).

Thankfully I stuck with it for long enough that I was able to find ImReady4 and get started with a baseline already in place.

Now, what I prefer about ImReady4 is that I can just take action from one of only 4 results in the Training Advice field. And now that I understand the charts I can do my own interpretation. I am going to add HRV4Training readings to the end of my routine.

I would love to create a free (accessible) app that will be able to take measurements (direct from device) and generate the same information as ImReady4, with an optional push to Intervals. But this is quite a lot of work, especially for a self-decidedly backend developer, and life is going to get in the way.

Add your subjective scores (assume this what you mean by HRV4T readings) before you measure your HRV. This way the HRV reading won’t influence your subjective thinking

HRV4Training is another app, similar to EliteHRV: https://www.hrv4training.com/

I will just be recording and comparing the advice it provides against ImReady4.

Ah! I understand. The two are next to near identical. As far as I can recall they use the same timespan for both normalised and baseline values. EliteHRV uses a 10 day normalised so often gives different recommendations than ithlete

I’ve done a quick (for me) summary of my previous 2 years of data.
I’ve taken the days where HRV suggested LIT or Rest and then the decision I took.

On the days it suggested rest, only 31 days of 732 (4%), I did work out: all listed as good days.
For the LIT days:

  • I rested for 29 days (30% of LIT suggested days).
  • Only 6 hard workouts were done,but these were:
  • 1 race - a bunch finish (83% intensity). Imagine deciding to not race because HRV & ImReady4 suggested LIT, yet I felt good. It could have been anxiety before the race.
  • A 20-min FTP test (+19 W increase)
  • 3 threshold workouts (3x8m and 4x11m)
  • 1 workout at VO2max power (6x2m)

edit: the 545 Proceed as “planned” suggestion also include “planned” rest days (154 days, 28.3% of the time). The original post doesn’t imply that I only rest 4% of the 2 years.

1 Like

That’s a classic one. Simply the excitement for such an event will result in a HRV value that is historically low. My advice: take the measurement but refrain from looking at the result if you can resist the urge. Never, ever let that result influence your decision on participating or not. Even if you don’t feel very well, just start the event. There is 95% chance that you will feel like superman after 30-45minutes. On the condition that you were correctly prepared for it off course. It’s pure mental conditioning.

1 Like
  • Download and install the ImReady4 app.
  • Create an account and set up your profile.
  • Connect your HRV monitor to the app.
  • Select “HRV Guided Training” from the main menu.
  • Choose your training goal and duration.
  • Follow the on-screen instructions for breathing exercises.
  • Review your results and track progress over time.

Can you provide the sheet template and API call (if not embedded) that you used to generate this data?

Use Excel’s Power Query, which allows exporting the activities.csv and wellness.csv data. The link to the topic discussed is shown below.

From there I pull RPE, the ride type, Intensity, and the feedback from ImReady4 for each day. From there, it’s a few Excel formulae to join cells together, eg. ImReady4 and Ride Type. I have asked David for more (missing) fields to be included in the activities download, eg. Feel.

The file I am using is my own, but here are the formulae for each line to pull from the Excel file download. Once you have the data, a pivot table can help play with the columns. Or a slicer if you know how to use data in a table format.

Each formula is in column A, B, C, D, E, F, G, H, T and U.

  • =today()
  • =ROUND(VLOOKUP(A13,wellness[#All],45,FALSE),0)
  • =IF(B13=4,HIT,IF(B13=3,Planned,IF(B13=2,LIT,IF(B13=1,Rest))))
  • =IFERROR(ROUND(VLOOKUP($A13,‘API activities’!$B$3:$CJ$4003,HLOOKUP(D$12,‘API activities’!$G$1:$CJ$2,2,FALSE)-1,FALSE),1),0)
  • =IFERROR(ROUND(VLOOKUP($A13,‘API activities’!$B$3:$CJ$4003,HLOOKUP(E$12,‘API activities’!$G$1:$CJ$2,2,FALSE)-1,FALSE),0),0)
  • Not currently available on theactivities.csv download or through the Excel Power Query import
  • =IFERROR(ROUND(VLOOKUP($A13,‘API activities’!$B$3:$CJ$4003,HLOOKUP(G$12,‘API activities’!$G$1:$CJ$2,2,FALSE)-1,FALSE),2),0)
  • =IFERROR(VLOOKUP($A13,‘API activities’!$B$3:$CJ$4003,HLOOKUP(H$12,‘API activities’!$G$1:$CJ$2,2,FALSE)-1,FALSE),Rest)
  • =IF(C13=Planned,Y,IF(IF(C13=LIT,D13)=0,N,IF(IF(C13=LIT,E13)<=5,Y,IF(IF(C13=Rest,E13)<=5,Y,IF(C13=HIT,Y,IF(IF(C13=LIT,E13)>5,N))))))
  • =IF(AND(C13=LIT,T13=N),H13,C13& - &H13)
2 Likes

This turned up last week on Mrco’s blog:

1 Like

I’ve been using ImReady4 for a few years, and I’ve found it pretty useful for pushing me to make a call for adjusting training intensity following a hard day (for example).
Lately I’ve noticed that it has been recommending ‘HIT’ on the day after a hard day, which seems a little unusual. For example, yesterday I rode 24 miles out to do a 10 mile TT, did my best time for several years, then rode 24 miles home again. So quite a hard day for me (in my my 60s). And today ImReady4 has recommended ‘HIT’. I would have expected ‘LIT’ or ‘Planned’. It’s done this several times over the last few weeks, for example on mornings after a particularly tough interval session. The recommendations for the second morning after the intense training day is ‘LIT’ in these cases.
As far as I can see, I’m using the latest script, but I’m just wondering if something in there is causing me to have a recommendation that’s 24h out? How would I track this down?
Just for reference, I usually get up around 5am, measure resting HR, use HRV4Training to assess HRV, and run ImReady4 shortly after that. HRV4Training said to train as planned, TrainerRoad suggests a Rest day - I would normally do an easy spin on a morning like this.

The recommendation isn’t 24 hours out. It’s just how your body has responded to the training.
If your HR and HRV are within normal ranges the day following a difficult session I am not entirely sure how you’d expect the app to give you an ‘LIT’ recommendation. It can only analyse and recommend based on the data inputted.
The algorithm hasn’t changed.

Yes, of course I realise there hasn’t been a change in the script. I was actually wondering whether it is possible that something had changed in the data I’m feeding it from intervals - maybe date related.
I’ve had a number of interruptions to my training since early spring (though I kept measuring rHR and HRV), so this is something that I’ve only recently noticed. And it’s an interesting pattern - that the day after a hard day I get ‘HIT’ (but actually take it easy) and the day after that, ‘LIT’ or "REST’.
The other alternative was that HRV isn’t necessarily a useful measure. I act on my perceived readiness for training intensity more than the recommendations coming via ImReady4, TR or HRV4Training.

You’re correct to listen to your own body over any objective data or readiness scores etc
HRV is a very useful metric. It allows you monitor response to stressor but acute changes don’t necessarily need to be acted upon immediately. Analysis of HRV on a medium to long term basis can be hugely insightful.
I have often noticed my HRV take a dip 48hrs lost a long or difficult training session. This usually corresponds with how I’m feeling though.
Don’t over think HIT or LIT readiness scores. They are mathematical guesstimates of a physiological system and can never be correct all the time.
If you’re getting a HIT readiness score but feel terrible, listen to your body and not the HRV app

Hello Lenny.

Forgive me for writing here but I think it will be quicker to contact you than via CIQ :wink:

I have a question, is there any chance for you to add Fenix8 in the manifest (I think?) of your app?
It is known, at the moment your app cannot be installed in F8 :frowning:

greetings