Class TrainingPeriodization

java.lang.Object
org.episteme.social.sports.TrainingPeriodization

public final class TrainingPeriodization extends Object
Handles training periodization logic, including cycle generation and load monitoring.

Provides implementations for Chronic Training Load (CTL) and Acute Training Load (ATL) based on the impulse-response models developed by Eric Banister and popularized by Dr. Andrew Coggan (TSS/NP/IF metrics).

References:

  • Banister, E. W. (1991). Modeling Elite Athletic Performance. In Physiological Testing of the High-Performance Athlete.
  • Coggan, A. R. (2003). Training and racing with a power meter.

  • Method Details

    • calculateCTL

      public static Quantity<Dimensionless> calculateCTL(List<Quantity<Dimensionless>> dailyTSS, int timeConstant)
      Calculates the Chronic Training Load (CTL), representing long-term fitness. CTL is an exponentially weighted moving average (EWMA) of daily TSS, typically using a 42-day time constant.
      Parameters:
      dailyTSS - List of daily Training Stress Scores (TSS)
      timeConstant - The time constant (tau), usually 42 days.
      Returns:
      The CTL value (dimensionless).
    • calculateATL

      public static Quantity<Dimensionless> calculateATL(List<Quantity<Dimensionless>> dailyTSS)
      Calculates Acute Training Load (ATL), representing short-term fatigue. ATL is an EWMA of daily TSS using a short time constant (typically 7 days).
      Parameters:
      dailyTSS - List of daily Training Stress Scores (TSS)
      Returns:
      The ATL value (dimensionless).
    • calculateTSB

      public static Quantity<Dimensionless> calculateTSB(Quantity<Dimensionless> ctl, Quantity<Dimensionless> atl)
      Calculates Training Stress Balance (TSB), representing freshness. Formula: TSB = CTL - ATL.
      Parameters:
      ctl - Chronic Training Load (Fitness)
      atl - Acute Training Load (Fatigue)
      Returns:
      Training Stress Balance (Freshness)