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 小时。1 区活动(步行)按较低比例计入——走 3 小时和骑 3 小时 2 区不是一回事。

💪 力量

按每周有力量训练的天数计算。时长不限——做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小时(周六 4h,周日 2h)
  • 没有力量训练
  • 活跃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分钟 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 模型把所有人都推向同一种练法:中高强度,时长越多越好。数字在涨,那肯定有效吧。但对任何人来说,这几乎都不是最好的训练方式。

过去十年的研究给出了不同的答案: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