{
  "slug": "tss-calculator",
  "title": "Training Stress Score (TSS) Calculator",
  "category": "Cycling",
  "category_slug": "cycling",
  "tier": 1,
  "summary": "Calculate Training Stress Score from workout duration, Normalized Power, and FTP.",
  "description": "This calculator computes Training Stress Score (TSS) using the method developed by Dr. Andrew Coggan, quantifying the physiological strain of a cycling workout. It requires workout duration in hours, Normalized Power in watts, and Functional Threshold Power (FTP) in watts, then outputs a TSS value where 100 points represents one hour at threshold intensity. The score accounts for both workout duration and intensity through the Intensity Factor (Normalized Power divided by FTP), providing a standardized metric for comparing training loads across different sessions.",
  "page_url": "https://fitmetriclab.com/en/tools/cycling/tss-calculator/",
  "api_url": "https://fitmetriclab.com/api/tools/tss-calculator.json",
  "formula": {
    "id": "tss_calculator",
    "expression": "\\text{TSS} = \\frac{t_{hours} \\times \\text{NP} \\times \\text{IF}}{\\text{FTP}} \\times 100, \\quad \\text{IF} = \\frac{\\text{NP}}{\\text{FTP}}",
    "variables": [
      {
        "symbol": "t",
        "description": "Duration in hours"
      },
      {
        "symbol": "\\text{NP}",
        "description": "Normalised power in watts"
      },
      {
        "symbol": "\\text{FTP}",
        "description": "Functional threshold power in watts"
      }
    ]
  },
  "inputs": [
    {
      "id": "duration_hours",
      "label": "Duration",
      "type": "number",
      "unit": "hr",
      "default": 1.5,
      "min": 0.1,
      "max": 24,
      "step": 0.1
    },
    {
      "id": "normalized_power",
      "label": "Normalised Power",
      "type": "number",
      "unit": "W",
      "default": 210,
      "min": 50,
      "max": 700,
      "step": 1
    },
    {
      "id": "ftp",
      "label": "FTP",
      "type": "number",
      "unit": "W",
      "default": 220,
      "min": 50,
      "max": 600,
      "step": 1
    }
  ],
  "worked_example": {
    "inputs": {
      "duration_hours": 1.5,
      "normalized_power": 210,
      "ftp": 220
    },
    "expected_output": "137"
  },
  "result_summary_template": "For a workout lasting {duration_hours} hours at {normalized_power} W Normalized Power and an FTP of {ftp} W, the Training Stress Score is {result}.",
  "methodology": "Implements TSS = (duration_hours × 3600 × NP × IF) / (FTP × 3600) × 100, where IF = NP / FTP. The formula originates from Andrew Coggan's work with TrainingPeaks and is documented in *Training and Racing with a Power Meter*. Duration converts from hours to seconds, then the 3600-second constants cancel.",
  "sources": [
    {
      "label": "Coggan AR, Allen H. Training and Racing with a Power Meter. VeloPress. 2010.",
      "url": "https://www.velopress.com/books/training-and-racing-with-a-power-meter/"
    },
    {
      "label": "TrainingPeaks. Training Stress Score (TSS) explained. TrainingPeaks University.",
      "url": "https://www.trainingpeaks.com/blog/what-is-tss/"
    },
    {
      "label": "Allen H, Coggan AR. The Power Meter Handbook. VeloPress. 2012.",
      "url": "https://www.velopress.com/books/the-power-meter-handbook/"
    }
  ],
  "faqs": [
    {
      "question": "What is Normalized Power and how does it differ from average power?",
      "answer": "Normalized Power is a weighted-average metric that accounts for the non-linear physiological cost of variable efforts. A ride with many surges above threshold can have the same average power as a steady ride, but NP will be higher for the variable session because short high-intensity intervals incur disproportionate metabolic cost. NP is computed using a 30-second rolling average raised to the fourth power, then the fourth root of the mean."
    },
    {
      "question": "What TSS values correspond to different workout types?",
      "answer": "A one-hour ride at FTP yields a TSS of 100 by definition. Easy recovery spins typically range from 20–40 TSS, tempo sessions from 50–80, and threshold intervals from 80–120. Long endurance rides can accumulate 150–300+ TSS depending on duration and terrain. These ranges are descriptive, not prescriptive; individual tolerance varies with training history and weekly load."
    },
    {
      "question": "How often does FTP need to be retested for accurate TSS?",
      "answer": "FTP can change measurably within 4–8 weeks during focused training blocks or after periods of detraining. Many structured programs include FTP assessments every 6–8 weeks. Using an outdated FTP value will skew Intensity Factor and therefore TSS; if FTP has increased but the entered value remains stale, recent workouts will appear artificially hard and TSS will be inflated."
    },
    {
      "question": "Can TSS be used for activities other than cycling?",
      "answer": "The original TSS formula is specific to power-meter cycling data. Running TSS (rTSS) adaptations use pace and Grade Adjusted Pace instead of power; swimming TSS (sTSS) relies on pace zones and perceived effort. These variants adjust the underlying math to fit the physiological demands of each sport. This calculator implements only the cycling power-based version."
    },
    {
      "question": "What is the relationship between TSS and recovery time?",
      "answer": "Empirical guidelines from TrainingPeaks suggest that workouts under 150 TSS may require less than 24 hours of recovery, sessions from 150–300 TSS may need 1–2 days, and efforts above 300 TSS can necessitate 2+ days before high-intensity work resumes. These are population averages; actual recovery depends on training status, nutrition, sleep quality, and accumulated fatigue from prior days."
    }
  ],
  "related_tools": [
    {
      "slug": "chain-length",
      "title": "Chain Length Calculator",
      "api_url": "https://fitmetriclab.com/api/tools/chain-length.json",
      "page_url": "https://fitmetriclab.com/en/tools/cycling/chain-length/"
    },
    {
      "slug": "climbing-watts",
      "title": "Climbing Watts Calculator",
      "api_url": "https://fitmetriclab.com/api/tools/climbing-watts.json",
      "page_url": "https://fitmetriclab.com/en/tools/cycling/climbing-watts/"
    },
    {
      "slug": "cycling-power",
      "title": "Cycling Power Calculator (Watts from Speed)",
      "api_url": "https://fitmetriclab.com/api/tools/cycling-power.json",
      "page_url": "https://fitmetriclab.com/en/tools/cycling/cycling-power/"
    }
  ],
  "last_updated": "2026-04-22",
  "price": {
    "value": 0,
    "currency": "USD"
  },
  "runs_in_browser": true,
  "disclaimer": "Educational estimate produced from a published formula. Not medical, nutritional, or training advice. Calculations are deterministic — apply the formula to the inputs to reproduce the result."
}