一個獎勵真正重要事項的體能指標:持續性、有氧訓練量、肌力訓練和運動多樣性。不玩花招,沒有捷徑,只有進步。
本週的訓練品質。你在過去 7 天練得如何:有氧訓練、肌力訓練日、持續性和多樣性。這就是你為 FitScore 貢獻的部分。
你目前的個人體能水準,也就是你現在所在的位置。它靠長期持續訓練累積起來,停練後會逐漸下降。
高 ActivityScore 會轉化為高 FitScore。
你每週的訓練品質由四個經科學驗證*的要素組成:
依每週時數計算。效益遞減:從0→5小時的進步,比從10→15小時大得多。上限約在每週15-20小時。Zone 1 活動(散步)以較低比例計算,散步3小時和 Zone 2 騎乘3小時不能相提並論。
依每週有做肌力訓練的天數計算。時間長短不限——做 3 分鐘壺鈴擺盪也算。同一天練好幾次只算 1 天。2 天可拿到 75%,3 天 90%,4 天以上就達到滿分 100%。
你每週訓練幾天。只要有練就有分,每天練的人也不會因此吃虧。
第6天和第7天的分數和第5天相同。如果每天訓練適合你,也不會因此扣分;不過依訓練方式不同,大多數人每週安排1到2天休息會更有幫助。
計算每週至少做過一次的不同運動項目。跑步和騎乘分開計算,游泳和重訓也分開計算。項目越多元,代表動用到越多不同的肌肉、關節和動作模式。
週六和週日長距離騎乘
騎乘、肌力與日常活動的組合
每天短時間訓練,規律性高
TrainingPeaks 和 Andrew Coggan 的 Performance Management Chart(表現管理圖)——TSS、CTL、ATL——改變了整個產業。這些概念讓運動員和教練有了共同的語言,能量化訓練負荷、管理疲勞。這在當時是革命性的。
但 PMC 想一次解決很多問題:我的體能水準如何?我該練多少?我需要恢復嗎?這些事它大多做得還算不錯。
只是,其中最糟的偏偏就是體能水準。
CTL 模型會把每個人都推向同一種做法:中高強度,再盡可能堆時數。數字往上走,就以為一定有效。但對任何人來說,這很少是最好的訓練方式。
過去十年的研究卻呈現出不同的面貌:Zone 2 訓練、極化週期化、80/20 法則。一項又一項研究顯示,CTL 所獎勵的訓練很少是最理想的。真正能打造持久體能的,往往是更聰明的訓練,而不是更多的訓練。
大多數人憑直覺都懂:10 小時正確的訓練勝過 20 小時的甜蜜點訓練——即使 CTL 會告訴你,那 20 小時代表更高的「體能」。
CTL 不鼓勵均衡訓練。全身肌力是體能的重要一環,應該獨立給分,才能反映它的重要性。比較一下頂尖鐵人三項選手和頂尖自行車選手,大多數人會指著鐵人三項選手說那才是體能的典範——均衡、實用、耐操。這才是追求體能的運動者所嚮往的,而不是只為單一輸出最佳化的單項專家。
FitScore 以 Coggan 建立的基本原理為根基,但依照我們現在的認識更新了模型。體能不是負荷的累積,而是聰明、均衡的訓練:設有合理上限的有氧訓練量、肌力訓練、持續性,以及多樣化的運動。
對體能的新理解,需要新的標準。
多不一定比較好。 訓練量和體能的關係是一條對數曲線——每週從 5 小時增加到 10 小時,進步非常明顯;但從 15 小時加到 20 小時,幫助就不大了。就連職業選手也大約在 25 小時封頂,因為超過之後,身體的適應會停滯,甚至倒退。CTL 忽略了這個天花板,FitScore 沒有。
過度訓練症候群研究 →時長比強度更重要。 極化訓練的研究顯示,80% 輕鬆訓練量搭配 20% 高強度,效果勝過以強度為主的訓練方式。用較低強度累積較多時數,比用較高強度練較少時數,更能打造出強大的有氧引擎——這正好和 TSS 獎勵的方向相反。
Frontiers in Physiology,2014 →以強度為基礎的指標無法預測表現。 一項 2025 年的研究發現,傳統的體能疲勞模型(CTL/TSS)對比賽表現的預測效度有限。訓練壓力分數看重的是強度,而不是真正能累積體能的訓練量。
Nature Scientific Reports,2025 →有氧搭配肌力訓練,效果勝過只做有氧。 在有氧運動之外,每週加入兩次肌力訓練,死亡風險降低了30%。這就是為什麼 FitScore 把肌力訓練設為基礎分數的30%:它本身就有獨立的重要性。
JAMA Internal Medicine,2022 →交叉訓練能培養耐久力。 練多種運動會用到不同的肌群,減少過度使用造成的傷害,也能在恢復的同時維持體能。這就是為什麼 FitScore 會依運動多樣性給予最多 7% 的加分。
Sports Medicine,2021 →ActivityScore = 有氧 + 肌力 + 持續性 + 多樣性
FitScore = ActivityScore 的42天滾動加權平均
import math def activity_score(aerobic_hours, strength_days, active_days, unique_sports): # Base scores (diminishing returns curves) aerobic = 100 * (1 - math.exp(-0.25 * aerobic_hours)) strength = [0, 50, 75, 90, 100, 100, 100, 100][min(strength_days, 7)] # Weighted base (70% aerobic, 30% strength) base = (aerobic * 0.70) + (strength * 0.30) # Bonuses based on days active and sport variety consistency = [0, 0, 0.02, 0.04, 0.06, 0.08][min(active_days, 5)] variety = [0, 0, 0.03, 0.05, 0.07][min(unique_sports, 4)] return min(100, base * (1 + consistency + variety)) def fit_score(prev_fitscore, activity_score, days_elapsed): # 42-day exponential moving average (same math as CTL) decay = (1 - 1/42) ** days_elapsed return activity_score + (prev_fitscore - activity_score) * decay