I like WHOOP Strain.
That is probably the easiest way to start this, because the rest of the post may sound like I am complaining about it.
I am not. Strain is useful. It gives a quick answer to a question that used to be surprisingly annoying: how hard did my body work today?
The problem is that the answer looks more complete than it is.
A single number has that effect. If WHOOP says the day was 17.2, your brain wants to treat 17.2 as the training load. Not a view of training load. Not a cardiovascular proxy. The thing itself.
That is where it gets messy.
Strain is mostly an internal load signal
In training, there is a useful split between external load and internal load.
External load is what you did.
Five kilometers at a certain pace. A squat session with 100 kg for 5 sets. A ride with a specific power output. A long walk through Lisbon because the car was parked in the wrong neighborhood (hypothetically, obviously).
Internal load is how your body responded.
Heart rate. Perceived exertion. HRV changes. Fatigue. Soreness. The fact that the same workout can feel easy on Monday and weirdly horrible on Friday.
WHOOP Strain sits mostly on the internal side. It is built around cardiovascular effort: how elevated your heart rate was, and for how long, relative to your own physiology.
That is why it can be very good for running, cycling, football, long hikes, hard conditioning, or any day where heart rate tells most of the story.
It is also why it can miss parts of the story.
Lifting is the obvious example
A heavy strength session can be brutal without producing a huge cardiovascular score.
If I do heavy squats, long rests, and low reps, my heart rate may spike and come down. The session might not look insane from a pure heart-rate perspective.
But my legs know.
My joints know.
Tomorrow morning probably knows.
This is the gap WHOOP has been trying to close with Muscular Load and Strength Trainer. Their own explanation is useful: muscular load is meant to capture stress on muscles, bones, joints, and soft tissue, not just cardiovascular effort.
That distinction matters.
A 45-minute run and a 45-minute lifting session can both be hard, but they are not hard in the same way. One might push the cardiovascular system continuously. The other might create mechanical tension, local fatigue, and delayed soreness that does not show up cleanly in heart rate.
If the dashboard only sees strain, it may treat the lifting day like an easy day.
Then recovery looks mysterious.
Life stress can look like training
The opposite also happens.
Some days produce strain without what I would call training.
Bad sleep, heat, dehydration, travel, alcohol, caffeine, stress, a long day of walking, or just being slightly sick can keep heart rate elevated. WHOOP will see that as physiological load, because it is physiological load.
But it is not training in the useful sense.
This is where people get annoyed with wearables, but I think the device is often doing something reasonable. If your heart rate is elevated all day because you slept badly and are running on coffee, your body is under load.
The mistake is interpreting that number as fitness work.
A high-strain day is not automatically a productive training day.
Sometimes it means you trained hard.
Sometimes it means the day trained you.
The number needs neighbors
This is the main reason I do not want VitalTrends to show strain alone.
Strain becomes more useful when it sits next to other things:
- sleep duration and sleep efficiency
- HRV and resting heart rate the next morning
- actual workouts from Apple Health or WHOOP
- strength exercises, sets, reps, and load from Hevy
- body weight trend from Withings
- travel days and time-zone changes
- subjective notes, if I bothered to write them down (rare, but beautiful when it happens)
A high strain day followed by stable HRV and good sleep is one story.
A moderate strain day followed by crushed HRV, elevated resting heart rate, and bad sleep is another.
A low strain day after heavy deadlifts is not the same as a low strain day spent on the sofa.
The score did not lie. It just answered a narrower question.
Session RPE is still underrated
There is a funny thing in sports science: one of the simplest training-load tools is still one of the most useful.
Session RPE is basically: how hard did the session feel, multiplied by duration.
It is not fancy. It does not require a ring, strap, model, or subscription. But reviews of training-load monitoring still take it seriously because perceived exertion captures something heart rate alone cannot.
That does not mean RPE is perfect. People misremember. Ego gets involved. A workout feels different depending on mood, sleep, heat, and who is watching.
But that is also the point.
Training load is not only what the sensor saw. It is also what the athlete experienced.
The best dashboard probably needs both: sensor data and enough human context to stop the sensor from becoming a weird little dictator.
What I want from strain
I do not want strain to tell me whether I am good or bad.
I want it to help answer better questions:
- Was today hard because I trained, or because recovery was poor?
- Did strength work create fatigue that the cardiovascular score undercounted?
- Did an easy run become expensive because I slept badly?
- Did travel inflate my strain before I noticed I was tired?
- Is weekly load climbing faster than recovery can keep up?
That last question is impossible to answer from a single day, which is why tracking your recovery score long-term matters more than any individual reading.
This is also where the single-app view breaks down.
WHOOP can do a good job inside WHOOP. Oura can do a good job inside Oura. Apple Health can store a huge amount of activity data. Hevy can know exactly what happened in the gym.
But the interesting answer usually lives between them.
The useful interpretation
For now, this is how I think about strain:
Strain is a good cardiovascular load signal.
It is a partial training-load signal.
It is a bad moral score.
It is not the same as muscle damage, progression, readiness, productivity, or whether the workout was worth it.
That sounds obvious written out, but it is easy to forget when the app gives you one clean number and a color.
The number is useful. The context is the product.
That is the whole point of building this thing: not to replace WHOOP Strain, but to put it beside enough other data that it becomes easier to understand what the day actually cost.