FitScore™
你的 FitScore 是多少?

一個獎勵真正重要事項的體能指標:持續性、有氧訓練量、肌力訓練和運動多樣性。不玩花招,沒有捷徑,只有進步。

兩個分數,一個全貌

ActivityScore

本週的訓練品質。你在過去 7 天練得如何:有氧訓練、肌力訓練日、持續性和多樣性。這就是你為 FitScore 貢獻的部分。

FitScore

你目前的個人體能水準,也就是你現在所在的位置。它靠長期持續訓練累積起來,停練後會逐漸下降。

高 ActivityScore 會轉化為高 FitScore。

84ActivityScore
有氧70
肌力80
持續性+8%
多樣性+7%
72FitScore

ActivityScore 組成

你每週的訓練品質由四個經科學驗證*的要素組成:

有氧時數
70%
肌力訓練天數
30%
每週有氧時數
100755025004h8h12h16h20h7192
5h → 71
10h → 92
15h → 98
權重 70% — 71 分可為基礎分貢獻 50 分
每週肌力訓練天數
100755025001234567507590100
1 → 50
2 → 75
3 → 90
4+ → 100
權重 30% — 90分會為基礎分數貢獻27分

🚴 有氧

依每週時數計算。效益遞減:從0→5小時的進步,比從10→15小時大得多。上限約在每週15-20小時。Zone 1 活動(散步)以較低比例計算,散步3小時和 Zone 2 騎乘3小時不能相提並論。

💪 肌力

依每週有做肌力訓練的天數計算。時間長短不限——做 3 分鐘壺鈴擺盪也算。同一天練好幾次只算 1 天。2 天可拿到 75%,3 天 90%,4 天以上就達到滿分 100%。

持續性加分

你每週訓練幾天。只要有練就有分,每天練的人也不會因此吃虧。

每週天數:1+0%
每週天數:2+2%
每週天數:3+4%
每週天數:4+6%
每週天數:5++8%

第6天和第7天的分數和第5天相同。如果每天訓練適合你,也不會因此扣分;不過依訓練方式不同,大多數人每週安排1到2天休息會更有幫助。

多樣性加分

計算每週至少做過一次的不同運動項目。跑步和騎乘分開計算,游泳和重訓也分開計算。項目越多元,代表動用到越多不同的肌肉、關節和動作模式。

運動項目:1+0%
運動項目:2+3%
運動項目:3+5%
運動項目:4++7%

ActivityScore 範例

週末戰士

週六和週日長距離騎乘

53
  • 騎車 6 小時(週六 4 小時、週日 2 小時)
  • 沒有肌力訓練
  • 2 天有運動
  • 1 項運動
有氧(6h → 75)75 × 0.7 = 52.5
肌力(0 天)0 × 0.3 = 0
規律性(2 天)+2%
多樣性(1 項運動)+0%
ActivityScore53

均衡型訓練者

騎乘、肌力與日常活動的組合

87
  • 3趟騎乘,共5小時
  • 3天壺鈴訓練(每次15-20分鐘)
  • 每週一堂瑜伽課
  • 每天遛狗
  • 4天有計畫的訓練
有氧(5h → 71)71 × 0.7 = 50
肌力(3天 → 90)90 × 0.3 = 27
持續性(4天)+6%
多樣性(4種運動)+7%
ActivityScore87

每日極簡派

每天短時間訓練,規律性高

69
  • 每天在訓練台上騎 20分鐘 Zone 2
  • 每天 5分鐘壺鈴
  • 走路通勤
  • 7 天都有活動
有氧(2.3h → 44)44 × 0.7 = 31
肌力(7 天 → 100)100 × 0.3 = 30
規律性(7 天)+8%
多樣性(3 項運動)+5%
ActivityScore69

體能指標的演進

TrainingPeaks 和 Andrew Coggan 的 Performance Management Chart(表現管理圖)——TSS、CTL、ATL——改變了整個產業。這些概念讓運動員和教練有了共同的語言,能量化訓練負荷、管理疲勞。這在當時是革命性的。

但 PMC 想一次解決很多問題:我的體能水準如何?我該練多少?我需要恢復嗎?這些事它大多做得還算不錯。

只是,其中最糟的偏偏就是體能水準。

CTL 模型會把每個人都推向同一種做法:中高強度,再盡可能堆時數。數字往上走,就以為一定有效。但對任何人來說,這很少是最好的訓練方式。

過去十年的研究卻呈現出不同的面貌:Zone 2 訓練、極化週期化、80/20 法則。一項又一項研究顯示,CTL 所獎勵的訓練很少是最理想的。真正能打造持久體能的,往往是更聰明的訓練,而不是更多的訓練。

大多數人憑直覺都懂:10 小時正確的訓練勝過 20 小時的甜蜜點訓練——即使 CTL 會告訴你,那 20 小時代表更高的「體能」。

CTL 不鼓勵均衡訓練。全身肌力是體能的重要一環,應該獨立給分,才能反映它的重要性。比較一下頂尖鐵人三項選手和頂尖自行車選手,大多數人會指著鐵人三項選手說那才是體能的典範——均衡、實用、耐操。這才是追求體能的運動者所嚮往的,而不是只為單一輸出最佳化的單項專家。

CTL 獎勵的是

  • 時數越多,分數越高
  • 強度越高,分數越高
  • 鼓勵強度,而非品質
  • 休息週感覺像失敗

FitScore 獎勵

  • 設有合理上限的訓練量
  • 肌力訓練
  • 穩定持續地出現
  • 從事不同的運動

FitScore 以 Coggan 建立的基本原理為根基,但依照我們現在的認識更新了模型。體能不是負荷的累積,而是聰明、均衡的訓練:設有合理上限的有氧訓練量、肌力訓練、持續性,以及多樣化的運動。

對體能的新理解,需要新的標準。

*相關研究

42天模型

FitScore 使用與 CTL 相同的指數衰減模型。 體能適應約 42 天的時間常數,在運動科學中早已確立。我們不是要重新發明輪子,而是改變放進去的東西。

Banister 模型研究 →

邊際效益遞減是真的

多不一定比較好。 訓練量和體能的關係是一條對數曲線——每週從 5 小時增加到 10 小時,進步非常明顯;但從 15 小時加到 20 小時,幫助就不大了。就連職業選手也大約在 25 小時封頂,因為超過之後,身體的適應會停滯,甚至倒退。CTL 忽略了這個天花板,FitScore 沒有。

過度訓練症候群研究 →

訓練量打造有氧體能

時長比強度更重要。 極化訓練的研究顯示,80% 輕鬆訓練量搭配 20% 高強度,效果勝過以強度為主的訓練方式。用較低強度累積較多時數,比用較高強度練較少時數,更能打造出強大的有氧引擎——這正好和 TSS 獎勵的方向相反。

Frontiers in Physiology,2014 →

TSS 的問題

以強度為基礎的指標無法預測表現。 一項 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