Drop your HRV exports here
Welltory CSV or an ECGDex export (CSV / JSON) · imports are additive — drop many files or nights at once and they stack into one multi-day table (exact duplicates are skipped). Your history is saved in this browser between visits; use Clear saved history to wipe it. All processing is local — no data leaves your device
📱 Android: if a file is grayed out, tap the ⋮ menu → "Show all files"
👤 User Profile — personalizes all formulas & norms
Import a Welltory CSV or an ECGDex export to analyze 85+ HRV metrics from your ANS data.
Import your HRV data to begin
Reads the Welltory CSV format (SDNN, rMSSD, HF/LF/VLF, Stress, Energy, and all ANS fields) and ECGDex exports (CSV / JSON). Imports are additive — add more nights anytime and they accumulate.
rMSSD (Parasympathetic Tone)
ln(rMSSD) — gold standard for daily readiness
HRV Score & SDNN
Primary readiness indicators
SNS vs PSNS Balance
Sympatho-vagal autonomic load
LF/HF Ratio
Sympathovagal balance. Optimal 0.5–2.0 (morning rest)
Baevsky Stress Index
AMo50² / (2 × Mode × MxDMn) — classic autonomic load. Normal <150
Vagal Efficiency (rMSSD/HR)
HR-corrected parasympathetic output. Optimal >0.45
DFA α1 Proxy
⚠ No validated formula — derived from SD1/SD2. Directional trend only, not absolute DFA α1.
DFA α1 Proxy (overview)
⚠ No validated formula — derived from SD1/SD2. Directional trend only, not absolute DFA α1.
Stress vs Energy (HRV)
Divergence gap = autonomic dysregulation signal
Baevsky Stress Index (SI)
AMo50² / (2 × Mode × MxDMn) — classic autonomic load. Normal <150, stress >200
CV (Coefficient of Variation)
SDNN / MeanRR × 100 — HR-normalized HRV
RMSSD/SDNN Ratio
Parasympathetic fraction of total HRV. Optimal 0.5–0.9
MxDMn / MeanRR Ratio
Normalized heart period variability range
Stress–Energy Divergence
|Stress − Energy| gap. Large gap = dysregulation flag
ln(rMSSD) — HRV4Training Readiness
Log-transformed parasympathetic readiness score
LF/HF Ratio
SNS/PSNS balance. Optimal 0.5–2.0 (morning rest)
HF & LF Normalized Units (nu)
HFnu = HF/(Total−VLF)×100 | LFnu = LF/(Total−VLF)×100
VLF % of Total Power
>50% = slow regulatory load or poor signal quality
Sympathovagal Index = ln(LF) − ln(HF)
Log-scale ANS balance. Negative = vagal dominant
Spectral Entropy (LF/HF/VLF distribution)
High (→1) = power evenly spread across all bands (balanced ANS). Low (→0) = one band dominates (e.g. VLF-dominant = slow regulatory load). Neither extreme is unconditionally good.
LF+HF / Total Power
Fraction of power in autonomically meaningful bands
ANS Load Score
(SNS × Stress) / (PSNS × Energy + 1) — composite burden
Coherence × Energy Product
Weighted readiness score — both must be high simultaneously
Parasympathetic Tone Index
PSNS × rMSSD / 100 — combined PSNS estimate
Stress × (1/Coherence) — Incoherent Stress
High = stressed AND dysregulated simultaneously
Vagal Efficiency Index = rMSSD / HR
HR-corrected parasympathetic output. Optimal >0.5
Sympathetic Dominance Index
(LF + SNS×10) / (HF + PSNS×10)
Autonomic Recovery Index (rMSSD ratio)
Today ÷ 7-day mean. >1.05 = better than baseline
7-day SDNN Z-Score
Deviation from personal rolling baseline (±1SD flags)
7-day rMSSD Rolling Mean (ln)
HRV4Training gold-standard readiness baseline
Rolling Stress Area Under Curve (7d)
Cumulative autonomic stress load
7-day rMSSD CV (Instability)
Day-to-day HRV variability — high = unstable recovery
Stress Autocorrelation (lag-1)
High persistence = chronic stress; low = acute event
HRV Momentum (14d ln(rMSSD) Slope)
Positive = improving HRV trend; negative = declining. Key long-term training signal.
Restoration Index (Energy × Coherence / Stress+1)
High = physiologically resourced day. Both numerators must be elevated simultaneously.
Recovery Debt (ARI <0.9 days in 14d window)
Accumulating days below baseline recovery signal chronic fatigue burden.
rMSSD Day-to-Day Reactivity (%)
Daily % change in rMSSD vs previous consecutive measurement. Gap >1 calendar day = shown as blank (not meaningful across missed days).
Baevsky Adaptation Potential
0.011×HR + 0.014×age (HR+Age component only) — full formula needs SBP/DBP. Trend direction valid; absolute threshold not applicable without BP input.
Orthostatic Load Proxy
HR × (1/SDNN) — combined cardiac load index
pNN50 Decline Rate (Rolling Slope)
Negative slope = overtraining / autonomic suppression signal
High-Stress / Low-Energy Days
Binary flag: Stress >60 AND Energy <40 — monthly load count
Cardiovascular Research Pattern
Cardiac Autonomic Modulation Quality (CAMQ)
Composite autonomic balance: parasympathetic dominance minus sympathetic dominance. Higher = healthier autonomic state.
• ARIC Study (Schroeder et al. 2003), Hypertension — decreased HRV in hypertension (SDNN, RMSSD)
• Toon Health Study (Saito et al. 2018), Am J Hypertens 31(10):1120–6 — home BP × HRV quartiles
• HELIUS Study (2024) — xBRS predicts incident hypertension over 6.6yr
SD1 vs SD2 (Poincaré Geometry)
SD1 = instantaneous beat variability (pure vagal) · SD2 = long-term regulation
SD1/SD2 Ratio
0.25–0.35 = typical resting; <0.25 = LF/sympathetic dominance; >0.5 = vagal dominant
Toichi CVI (Cardiac Vagal Index)
log₁₀(rMSSDms × MeanRRms) — orthogonal to CSI; higher = more vagal tone. Thresholds: >4.4 good · 4.1–4.4 moderate · <4.1 suppressed
Toichi CSI (Cardiac Sympathetic Index)
MxDMn / MeanRR_s — independent sympathetic index; higher = more sympathetic drive
CVI vs CSI (Autonomic Quadrant)
Scatter: upper-left = vagal dominant; lower-right = sympathetic dominant
DFA α1 Proxy & HRV Power Law Slope
⚠ DFA proxy is derived from SD1/SD2 — no published formula exists; use as a directional trend only, not absolute DFA α1. Power law slope: less negative = HF-dominant
VLF/HF Ratio & Spectral Asymmetry
VLF/HF >3 = slow regulatory dominance · SAI: −1=vagal, +1=sympathetic
Cardiac Autonomic Index (CAI) — √(SD1×SD2)
Geometric mean of Poincaré axes √(SD1×SD2). Higher = better autonomic control. Thresholds: >45 good · 30–45 moderate · <30 suppressed
EFC Readiness Index
Energy×0.4 + Focus×0.3 + Coherence×0.3 — combined cognitive + physiological readiness
Cardiac Resilience Score
(Coherence × rMSSD × pNN50) / (Stress×1000) — HRV quality buffered against stress load
Autonomic Balance Score (ABS)
(PSNS−SNS)/(PSNS+SNS) · −1=full SNS · 0=balanced · +1=full PSNS
Stress-Focus Dissociation
Stress − Focus. Positive = stress outpacing cognitive focus ("masked stress")
Focus Efficiency
Focus / (SNS+1) — cognitive output per unit sympathetic cost
PNS Efficiency Index
rMSSD / (SDNN × pNN50) — parasympathetic contribution vs total HRV. Shown as blank (—) when pNN50 <1% to avoid paradoxical inflation on high-stress days.
Overtraining Risk Index
(SNS/PSNS) × (100/pNN50) — composite overreaching flag; not standalone diagnostic
rMSSD Circadian-Adjusted vs Raw
Removes morning (+8%) and evening (−5%) bias for fair cross-measurement comparison
RSA Power Proxy & NN50 Estimate
RSA = HF/(MeanRR²) · NN50 = estimated count from pNN50 × beat count
VO₂max Daily Estimate vs 7-Day Rolling Mean
Base (Uth-Sørensen HR ratio) vs HRV-adjusted vs rolling 7d mean. Enter a real VO₂max test result in the profile to anchor the ground truth reference line.
VO₂max Delta from Ground Truth
Daily deviation from profile VO₂max. ⚠ If GT was auto-inferred (not from a real test), this chart shows daily HR+rMSSD variation vs your median — not deviation from a true VO₂max measurement.
Resting HR vs VO₂max Estimate
Scatter: lower resting HR → higher VO₂max. Color = stress level.
rMSSD HRV Modifier (% adjustment to base VO₂max)
How much rMSSD adds or subtracts from the HR-only estimate each day.
Metric Distribution
Histogram of any metric across the selected range. —
Correlation Explorer
Pick any two metrics to see how they move together. —
Day-of-Week Pattern
Average by weekday — surfaces weekly rhythms (weekend recovery, mid-week strain). —