Browse topics

Wellness & Physiology

14 min read·Applies to: Montis AppChatGPT & Claude · Wellness reportOpen in the Montis App

The Wellness dashboard combines objective physiological measurements with subjective wellness information.

It is important to distinguish between:

  1. Dashboard wellness indicators — measurements shown to help you review your current physiological state.

  2. Montis coaching inputs — signals that are used by the reporting engine, Performance Intelligence and Adaptive Decision Engine.

Not every metric displayed on the dashboard is used directly by the coaching engine.


Dashboard Wellness Indicators

The Wellness dashboard currently displays five objective metrics.

Each available metric is evaluated independently against its dashboard reference range.

Autonomic HRV (hrvIsInRange)

  • Dashboard Reference Range: 90% to 115% of the athlete's rolling HRV mean.
  • Basis: [0.90 × HRV Mean, 1.15 × HRV Mean]
  • A value below the lower range may indicate autonomic suppression or increased recovery demand.

Resting Heart Rate (rhrIsInRange)

  • Dashboard Reference Range: ±3 bpm from the athlete's resting HR baseline.
  • Basis: [RHR Mean - 3 bpm, RHR Mean + 3 bpm]
  • An elevated Resting HR can indicate increased physiological stress when interpreted with other recovery signals.

Sleep Quality Score (sleepIsInRange)

  • Dashboard Reference Range: 70 to 95 points
  • Sleep score provides additional recovery context and may contribute to the Montis physiology assessment when available.

Garmin Body Battery (batteryIsInRange)

  • Dashboard Reference Range: 75 to 100 points
  • Body Battery is shown as additional Garmin recovery context.

Body Battery is currently a dashboard indicator and is not a direct input to the Montis coaching engine or Adaptive Decision Engine.

Daily Movement / Steps (stepsIsInRange)

  • Dashboard Reference Range: ≥ 4,000 steps
  • Steps provide general activity and movement context.

Daily steps are currently a dashboard indicator and are not a direct input to the Montis coaching engine or Adaptive Decision Engine.


Dashboard Status

The dashboard status is a summary of the wellness indicators that are available.

For example:

  • 5 of 5 available metrics in range
  • 4 of 4 available metrics in range
  • 3 of 4 available metrics in range

A missing metric should be shown as No Data and excluded from the denominator.

For example, if Body Battery is not recorded and the remaining four metrics are normal:

4 of 4 available metrics in range

rather than:

4 of 5 in range

The dashboard status is an informational wellness summary.

It is not the Montis readiness score, Training State, ADE score, or coaching directive.


How Wellness Is Used by the Montis Coaching Engine

The Montis coaching engine uses a smaller set of wellness signals as part of its deterministic coaching logic.

The principal physiological inputs are:

HRV

HRV is a core autonomic recovery signal.

Montis uses HRV-derived values such as:

  • current HRV relative to baseline;
  • HRV trend;
  • HRV ratio.

These contribute to physiology assessment, Training State and the Adaptive Decision Engine.

Resting Heart Rate

Resting HR is used as a supporting physiological recovery signal.

Montis evaluates change relative to the athlete's baseline rather than using a universal absolute threshold.

Sleep

Sleep score contributes to the physiology assessment when sufficient data is available.

It is interpreted alongside HRV, Resting HR, training load and subjective wellness.

Subjective Wellness

Fatigue, stress and soreness feed the physiology assessment. See Subjective Wellness Markers below.


Wellness Data Windows

Montis does not calculate every wellness metric from the same time period.

The standard wellness dataset provides up to 42 days of recent wellness history. Individual metrics then use shorter or comparative windows inside that dataset depending on what the signal is intended to show.

This separates short-term change from the athlete's recent personal baseline.

Window Purpose Typical use
Latest value Current measurement Latest HRV
Previous reading Very short-term movement Legacy HRV change
7 days Acute/current state Resting HR, recent load, Monotony, Strain
7 vs 28 days Acute versus recent baseline Resting HR delta, load trend
14 days Smooth noisy recovery signals Sleep score, HRV stability
28 days Recent baseline Resting HR and training-load comparisons
42 days Overall wellness reference history HRV mean, HRV ratio, autonomic context
90 days Longer training/performance context Season-level Performance Intelligence rather than normal wellness baselines

The important point is:

42 days is the overall wellness context window. It does not mean every wellness value is a 42-day average.


HRV Calculations

HRV Mean

The HRV mean is calculated from all valid HRV samples available in the wellness window.

Under the standard wellness report this normally represents the athlete's recent 42-day HRV reference mean.

Conceptually:

HRV Mean = mean of valid HRV samples in the wellness window

Latest HRV

Latest HRV is the most recent valid HRV value available.

Latest HRV = most recent valid HRV sample

HRV Ratio

The HRV ratio compares the latest HRV value with the athlete's recent mean.

HRV Ratio = Latest HRV / HRV Mean

Examples:

1.00 = current HRV is equal to recent mean
1.05 = current HRV is 5% above recent mean
0.95 = current HRV is 5% below recent mean

This allows Montis to interpret HRV relative to the athlete's own recent physiology rather than comparing athletes against a universal absolute HRV value.

HRV Trend

Montis currently exposes two related HRV trend values.

The flat hrv_trend value is a short-term change between the two most recent valid HRV readings:

HRV short-term change = latest HRV - previous HRV

The structured hrv.trend_7d value provides a more stable recent trend.

When sufficient data is available it compares the recent seven-day HRV mean with an earlier seven-day mean:

HRV 7-day trend = recent 7-day mean - earlier 7-day mean

For coaching interpretation, the smoothed hrv.trend_7d value is generally more useful than a single day-to-day change.

HRV Stability

HRV stability uses up to the most recent 14 days of HRV data.

It evaluates how variable HRV has been around its recent mean:

HRV Stability = 1 - (standard deviation / mean)

A value closer to 1.0 indicates relatively stable HRV. A lower value indicates greater day-to-day variation.

This is useful because an athlete can have a normal average HRV while showing unusually unstable daily values.


Resting Heart Rate Calculations

Recent Resting HR

The reported Resting HR value is based on the recent 7-day mean where sufficient data is available.

Recent Resting HR = mean of the most recent 7 days

This smooths normal day-to-day variation.

Resting HR Delta

Montis compares the recent seven-day resting HR with the athlete's longer recent baseline.

Resting HR Delta =
7-day mean Resting HR
-
28-day mean Resting HR

For example:

7-day mean  = 41.4 bpm
28-day mean = 41.3 bpm

Resting HR Delta = +0.1 bpm

Interpretation is athlete-relative:

  • around 0 bpm means recent Resting HR is close to baseline;
  • a positive value means Resting HR is elevated relative to baseline;
  • a negative value means Resting HR is below the recent baseline.

The coaching reference bands are approximately:

-2 to +2 bpm   normal / favourable
+2 to +5 bpm   moderate elevation
> +5 bpm       significant elevation

Resting HR is therefore interpreted as a change from the athlete's own baseline, not as a universal absolute value.


Sleep Calculation

Sleep score uses a 14-day average when sufficient valid data is available.

Sleep Score = mean of the most recent 14 valid sleep scores

A 14-day period is used to reduce the effect of a single poor night while remaining responsive to a meaningful change in sleep quality.

The Montis coaching reference bands are:

80-100   favourable
65-79    moderate
<65      low

The dashboard display range and the coaching interpretation thresholds are related but separate concepts.


Wellness Data Coverage

Montis also tracks how complete the available wellness data is.

Coverage is expressed as a proportion of days in the wellness dataset for which each signal is present.

For example:

"coverage": {
  "unit": "proportion",
  "hrv_pct": 0.93,
  "resting_hr_pct": 1.0,
  "sleep_pct": 0.93,
  "subjective_pct": 0.0,
  "total_days": 43
}

This means:

  • HRV was available on approximately 93% of days;
  • Resting HR was available on 100% of days;
  • sleep data was available on approximately 93% of days;
  • no qualifying subjective wellness fields were recorded;
  • 43 wellness records were available in the supplied window.

Coverage is used to describe data quality and confidence. Missing data is not silently treated as a normal physiological value.


Training Load Context Inside Wellness

The wellness output can also contain:

CTL
ATL
TSB

These are not 42-day wellness averages.

They represent the athlete's current training-load state and are included so physiological signals can be interpreted alongside current training pressure.

The relationship is:

TSB = CTL - ATL

Conceptually:

  • CTL represents longer-term training load / fitness context;
  • ATL represents shorter-term training load / fatigue context;
  • TSB represents the balance between the two.

Montis therefore combines:

recent wellness physiology
+
current training-load state

rather than treating CTL, ATL or TSB as wellness measurements themselves.


Recovery Markers

Several training-load markers may be displayed alongside wellness because they help explain the physiological context.

Stress Tolerance

Stress Tolerance compares the recent seven-day training load with the athlete's CTL-based capacity.

Stress Tolerance =
7-day training load
/
(CTL × 7)

A value around 1.0 means recent weekly load is broadly aligned with the athlete's current CTL-derived capacity.

Lower values indicate relatively lighter loading. Higher values indicate greater training stress relative to current capacity.

Monotony

Monotony measures how similar the daily training load has been across the most recent seven days.

Monotony =
mean daily training load
/
standard deviation of daily training load

Rest days and zero-load days are included in the seven-day series.

A high value means training load has been relatively similar from day to day. A lower value reflects greater variation between hard, easy and rest days.

Strain

Strain combines total recent training load with Monotony.

Strain =
7-day training load
×
Monotony

This means two athletes can complete the same weekly TSS but have different Strain if one distributes the load much more uniformly across the week.

Fatigue Trend

Fatigue Trend compares recent training load with the athlete's recent load baseline.

When at least 28 days of load history are available:

Fatigue Trend % =
(7-day mean load - 28-day mean load)
/
28-day mean load
× 100

A positive value means the recent seven-day load is above the 28-day baseline.

A negative value means the recent seven-day load is below the baseline.

If 28 days are not available but at least 14 days exist, Montis uses a shorter EWMA-based fallback rather than pretending a full 28-day reference exists.


How the Signals Are Combined

Montis does not make a coaching decision from a single wellness metric.

The physiology layer combines available signals such as:

  • HRV ratio and trend;
  • Resting HR change;
  • Sleep;
  • subjective fatigue, stress and soreness;
  • CTL, ATL and TSB / load pressure.

These contribute to the resolved Physiology State.

The Physiology State is a deterministic interpretation of the available recovery signals. It is not another average or proprietary readiness score.

For example, a FRESH / STABLE state requires a favourable combination of signals such as:

  • HRV ratio at or above the favourable range;
  • Resting HR close to baseline;
  • acceptable sleep;
  • neutral or positive TSB;
  • no high subjective fatigue or stress signal.

A WATCH, STRAINED or SUPPRESSED state requires different combinations of the same inputs.

Performance Intelligence then evaluates how recent training load is being absorbed.

The Adaptive Decision Engine combines these resolved states with:

  • current training load;
  • forecast load;
  • adaptation state;
  • event context;
  • phase governance.

This produces the final Montis coaching directive.

The Physiology State is deliberately limited to the wellness physiology layer. It does not override Training Load Pattern, Performance Intelligence, ADE, phase governance or final Training Guidance.


Dashboard Status vs Coaching Decision

These are deliberately different.

The Wellness dashboard answers:

"Are any of my current wellness measurements unusual?"

The Montis Intelligence Stack answers:

"What do those recovery signals mean in the context of my training?"

The Adaptive Decision Engine answers:

"What should I do next?"

A green Wellness dashboard does not automatically mean hard training is recommended.

Likewise, one dashboard metric being out of range does not automatically cause Montis to prescribe recovery.


Objective vs Subjective Signals

Montis can identify useful combinations of physiological and subjective data.

Examples include:

  • Suppressed HRV + elevated Resting HR: may indicate increased autonomic or systemic stress.
  • Stable HRV + high subjective fatigue: may indicate that perceived recovery is lagging behind objective autonomic markers.

These combinations are interpreted alongside training load rather than used as standalone diagnoses.


Subjective Wellness Markers

Subjective markers are the scores you give yourself each day in Intervals.icu: how tired, stressed or sore you feel, and so on. Montis reads them, turns each number into a plain label, and shows them next to your HRV, resting HR and sleep.

Log your scores

  1. In Intervals.icu, open today's wellness entry on your calendar.
  2. Set the scores you want to track. You don't need all of them.
  3. If a field you want isn't in the entry, add it in your Intervals.icu wellness settings.

You can also use the Montis Wellness app (wellness.montis.icu). Its daily check-in writes the same scores to Intervals.icu for you. Intervals.icu stays the source of truth.

Readiness often comes from a wearable rather than from you.

The markers and their labels

Montis rounds each score to the nearest whole number, then shows its label.

Marker 1 2 3 4 5
Fatigue low avg high extreme
Stress low avg high extreme
Soreness low avg high extreme
Mood great good ok grumpy
Motivation extreme high avg low
Injury none niggle poor injured
Hydration good ok poor bad
Readiness very poor excellent

Readiness uses a 1 to 5 scale. A score outside a marker's scale gets no label.

Today's entry only

The markers show today's entry: the last value logged for your current day. They are not an average of the last 42 days.

  • If you haven't logged anything today, the markers don't appear.
  • Yesterday's scores don't carry over.

Where you see them

  • Micro horizon → PHYSIOLOGY card: a Subjective Markers row of badges, for example FATIGUE: AVG.
  • Sidebar → Wellness (the Physiology Drill-Down): a Subjective Markers panel under Recovery Markers. It appears only when you have logged markers today.
  • Weekly report and Wellness report, in the app and through the Montis connector in ChatGPT and Claude. The AI Coach uses your scores in its explanation and says so when they are missing.

What they change

  • Fatigue, stress and soreness feed the physiology assessment. A high score can move your Physiology Response to watch.
  • Mood, motivation, injury, hydration and readiness are shown and passed to the AI Coach as context. They don't change any Montis state or score.
  • The Physiology Response does not override Training Load Pattern, the Adaptive Decision Engine (ADE) or Training Guidance.

The numbers come from the Montis engine. The AI Coach explains them and is told not to recalculate them.


Injury and Illness

Montis recognises injury and illness, but it does not yet change your training decision because of them.

How to record them

  • Injury marker. Set Injury in today's wellness entry (1 none to 4 injured). The Montis Wellness app shows an injury alert when you score above 1.
  • Sick or injured days. Add a Sick or Injured entry to your Intervals.icu calendar. Through the Montis connector in ChatGPT and Claude, you can also ask the AI to add one for you.

Where you see them

  • The Calendar — Future Forecast shows multi-day entries as coloured bars across the days.
Colour Meaning
Red Injured
Orange Sick
Sky blue Holiday
  • The injury score appears with your other subjective markers.

What they don't do yet

  • The Adaptive Decision Engine does not read the injury marker or Sick and Injured calendar entries. Its directive comes from training load, forecast fatigue and your race events.
  • Sick and Injured entries have no planned training load.
  • When the AI Coach plans workouts, it is told to respect Sick and Injured entries and not to plan training over them. That is guidance for the AI, not a Montis engine rule.

You decide. If you are ill or injured, rest and follow medical advice. A Montis directive to train does not take your injury into account.


Best Practices

  1. Record HRV under consistent conditions where possible.

  2. Consistency is more useful than comparing absolute HRV values between athletes.

  3. Log your subjective scores on the day. Montis only shows today's entry.

  4. Treat dashboard reference ranges as context, not as a replacement for the Montis coaching decision.

  5. Look at trends and combinations of signals rather than reacting to a single unusual day.

  6. Check wellness data coverage when interpreting a result. A stable result based on consistent data is more useful than one based on only a few observations.