Methods
How VitalForg produces each result
Every flag in VitalForg is labelled with the method that produced it. This page sets out each method, its inputs and its limitations.
VitalForg uses four kinds of method: calculations, fixed rules, statistical comparisons with each athlete’s own baseline, and one machine-learning model. None of them predicts injuries or gives medical advice. Flags highlight changes for qualified staff to review, and staff decide what, if anything, to do.
Calculated
Session load
- Formula
- duration (minutes) × session RPE (CR-10)
- Unit
- arbitrary units (AU)
- Inputs
- session duration and RPE from imported records
Limitations. Depends on athletes reporting RPE consistently. It measures internal load only.
Rule-based
Rapid increase in training load
- Flag when
- acute:chronic workload ratio (ACWR) above 1.5 and weekly load at least 30% higher than the previous week
- Inputs
- daily session load
Limitations. A high ratio can be planned, for example a return from a lay-off. ACWR is not a validated injury predictor.
Statistical
HRV below personal baseline
- Flag when
- 7-day mean ln(RMSSD) more than 1 SD below the athlete’s previous 28 days
- Needs
- at least 4 valid days in the week and 14 in the baseline
- Inputs
- morning HRV readings
Limitations. HRV is affected by sleep, illness, travel, alcohol, measurement timing and posture. It is not a clinical assessment.
Rule-based
Lower jump height than recent tests
- Flag when
- latest countermovement jump more than 5% below the mean of the previous up to 4 tests (needs at least 3)
- Inputs
- jump test results
Limitations. Single tests are sensitive to warm-up, footwear and motivation. Confirm with a repeat test.
Data quality
Incomplete morning sensor data
- Flag when
- fewer than half of the days in a week have a valid HRV reading
- Inputs
- morning HRV readings
Limitations. Missing readings are excluded from calculations, so comparisons for that athlete are less reliable until coverage improves.
Machine learning
Unusual morning pattern
- What it does
- Detects unusual recovery patterns across HRV, resting heart rate, sleep and soreness.
- Model
- Isolation forest (unsupervised anomaly detection), version unusual-morning 1.1: 100 trees, 256-row samples, fixed seed so the same records always give the same result.
- Inputs
- For each morning, how far each athlete’s 3-day average of ln(HRV), resting heart rate, sleep and soreness sits from their own previous 28 days.
- Training
- Trained in the browser on the open workspace’s own records only. Nothing is shared between customers or sent to another service.
- Flag when
- At least 2 mornings in a week score among the most unusual 2% of all mornings in that workspace.
- Staff feedback
- Staff can rate each flag as Useful or Not useful. Once 10 of the model’s flags in a workspace have been rated, the alert level adjusts: the top 1% if fewer than half were useful, the top 3% if at least 80% were useful, otherwise the standard 2%. The model card in the app shows the ratings and the level in use. Ratings stay in that workspace.
- When it does not run
- It needs at least 300 complete mornings with 4 weeks of history. Below that, the model is not trained, the app says so, and the other checks still run.
- Baseline
- Compared with the single-metric HRV rule above.
- Evaluation
- On a synthetic test dataset with 40 planted combined changes, the model flagged 27 (68%) and the HRV rule 4 (10%). It flagged 8 of 1,260 athlete-weeks with no planted change. These results come from synthetic data and do not show accuracy on real athletes.
Limitations. The model finds combinations that are rare for a workspace; it does not know why. Rare is not the same as harmful: travel, a new sensor or a change of routine can cause it. It has not been validated on real athletes, and it is not a diagnosis or an injury prediction.
Explanations
Why this was flagged
Every flag explains why it was raised. VitalForg writes the explanation from the values shown beside it: for the machine-learning model, the markers that were furthest from the athlete’s own normal and how far; for rules and baseline comparisons, the observed value, the baseline and the threshold. The explanation adds no information beyond those values, and it is not a diagnosis.