Soigneur FHIR Implementation Guide
0.1.0 - ci-build Germany flag

Soigneur FHIR Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

CodeSystem: Soigneur Observation Codes (cycling metrics without LOINC)

Official URL: https://fhir.soigneur.coach/fhir/CodeSystem/cc-observations Version: 0.1.0
Active as of 2026-09-08 Computable Name: CcObservations

Copyright/Legal: Copyright (c) Soigneur. Licensed under CC0-1.0 (public domain dedication). FHIR(R) is the registered trademark of HL7 and is used with permission.

Cycling / training metrics that have no LOINC concept (05 14.4). The Code identifiers are internal, stable machine keys (np, if, tss, ctl, atl, tsb, …). The Display strings are the trademark-safe product vocabulary (15 1.1): Load, Weighted Power, Intensity, Fitness, Fatigue, Form — never the TrainingPeaks marks (TSS, NP, IF, TSB, PMC).

This Code system is referenced in the content logical definition of the following value sets:

This case-sensitive code system https://fhir.soigneur.coach/fhir/CodeSystem/cc-observations defines the following codes:

CodeDisplayDefinition
ftp Functional Threshold Power Athlete-set threshold-power anchor (W).
eftp Estimated FTP Ratchet-estimated FTP from the power-duration curve (W).
w-prime W-prime (anaerobic work capacity) Anaerobic work capacity above CP (J).
cp Critical power Morton 2-parameter critical-power estimate (W).
p-max Maximal aerobic power Maximal aerobic power (W).
avg-power Average power Per-activity mean power (W).
np Weighted Power 30 s-smoothed 4th-power power (W). Internal alias: NP.
if Intensity Weighted Power / FTP ratio. Internal alias: IF.
power-hr-model Power-HR model Per-athlete linear power↔HR model fitted from rides with both channels; components carry slope/intercept/R²/n/window (W per bpm).
power-hr-slope Power-HR model slope Slope of the power↔HR linear fit (W per bpm).
power-hr-intercept Power-HR model intercept Intercept of the power↔HR linear fit (W).
power-hr-r2 Power-HR model R-squared Coefficient of determination of the power↔HR fit (0-1).
power-hr-n Power-HR model sample count Number of paired power+HR samples in the fit.
power-hr-window-days Power-HR model window Trailing window the fit's samples were collected over (days).
lthr Heart rate threshold Athlete's lactate-threshold heart rate anchor (beats/min), from a field test or athlete acceptance (ADR 0090).
tss Load Per-activity training-load score. Internal alias: TSS.
ctl Fitness 42-day EWMA of daily Load. Internal alias: CTL.
atl Fatigue 7-day EWMA of daily Load. Internal alias: ATL.
tsb Form Fitness minus Fatigue. Internal alias: TSB.
ramp-rate Fitness ramp rate Change in Fitness per week.
pmc-series Load & Form series Weekly Fitness/Fatigue/Form/Load series (one Observation per ISO week, four components as valueSampledData). ADR 0059.
cadence Cadence Pedalling cadence (rpm).
avg-cadence Average cadence Per-activity mean cadence (rpm).
distance Distance Per-activity distance (m).
elevation-gain Elevation gain Per-activity elevation gain (m).
carbs-used Carbohydrates oxidized Estimated carbohydrate oxidation (g).
variability-index Variability index Weighted Power / average power.
decoupling-pw-hr Pw:Hr decoupling Aerobic decoupling: first-half vs second-half power:HR drift (%).
polarization-index Polarization index Log-based intensity-distribution index.
efficiency-factor Efficiency factor Weighted Power / average HR.
wbal-depletion-max Max W-prime balance depletion Peak W-prime depletion over the ride (J).
lr-balance Left-right power balance Right-side power share (%).
power-zone-time Time in power zone Time spent in a power zone (s), one component per zone.
hr-zone-time Time in heart-rate zone Time spent in an HR zone (s), one component per zone.
temperature Temperature Per-sample air temperature (°C).
respiration Respiration rate Per-sample respiration rate (breaths/min).
elevation Elevation Per-sample altitude/elevation (m).
speed Speed Per-sample speed (m/s).
position Route Per-sample GPS position (latitude, longitude pairs, °). dimensions=2.
torque Torque Per-sample crank torque (N·m).
mmp Mean maximal power Best mean-maximal power by duration for a ride; one component per standard duration (W).
mmp-60 MMP 1 min Best 1-minute mean power (W).
mmp-120 MMP 2 min Best 2-minute mean power (W).
mmp-180 MMP 3 min Best 3-minute mean power (W).
mmp-300 MMP 5 min Best 5-minute mean power (W).
mmp-480 MMP 8 min Best 8-minute mean power (W).
mmp-600 MMP 10 min Best 10-minute mean power (W).
mmp-720 MMP 12 min Best 12-minute mean power (W).
mmp-1200 MMP 20 min Best 20-minute mean power (W).
mmp-1800 MMP 30 min Best 30-minute mean power (W).
mmp-3600 MMP 60 min Best 60-minute mean power (W).
mmp-5400 MMP 90 min Best 90-minute mean power (W).
mmp-7200 MMP 120 min Best 120-minute mean power (W).
mmp-9000 MMP 150 min Best 150-minute mean power (W).
mmp-10800 MMP 180 min Best 180-minute mean power (W).
mmp-12600 MMP 210 min Best 210-minute mean power (W).
mmp-14400 MMP 240 min Best 240-minute mean power (W).
mmp-16200 MMP 270 min Best 270-minute mean power (W).
mmp-18000 MMP 300 min Best 300-minute mean power (W).
hrv-rmssd HRV rMSSD (overnight) Overnight rMSSD (ms); no LOINC exists, method = overnight-rmssd.
body-battery-charged Body Battery charged Garmin Body Battery charge gained (0-100).
body-battery-low Body Battery low Garmin Body Battery daily low (0-100).
body-battery-high Body Battery high Garmin Body Battery daily high (0-100).
body-battery-drained Body Battery drained Garmin Body Battery charge drained (0-100).
body-battery-most-recent Body Battery most recent Most recent Garmin Body Battery (0-100).
garmin-stress-avg Garmin stress (average) Garmin all-day stress average (0-100).
garmin-stress-max Garmin stress (max) Garmin all-day stress maximum (0-100).
garmin-stress-duration Garmin stress duration Garmin all-day stress duration (s).
garmin-sleep-score Garmin sleep score Garmin sleep score (0-100).
sleep-score Sleep score Source-agnostic sleep score (0-100). Garmin-ingested scores keep #garmin-sleep-score; intervals.icu and later sources use this code (ADR 0081).
garmin-hrv-status Garmin HRV status Garmin HRV status: BALANCED / UNBALANCED / LOW / HIGH.
body-water-pct Body water percentage Scale-derived body water (%).
muscle-mass Muscle mass Scale-derived muscle mass (kg).
bone-mass Bone mass Scale-derived bone mass (kg).
visceral-fat Visceral fat Scale-derived visceral-fat rating.
metabolic-age Metabolic age Scale-derived metabolic age (a).
training-block-review Training-block review Composed plan-outcome verdict over a training block.
experiment-review Experiment review Composed outcome verdict over a fueling/position/equipment experiment.
rolling-baseline Rolling baseline Rolling-baseline derived value (method marker).
life-log Life-log event A dated life event the coach records from chat (a new job, a crash, a stressful project) — episodic memory the timed reader returns, distinct from the physiological diary.