一个奖励真正重要之事的健身指标:坚持、有氧训练量、力量训练和运动多样性。不玩花样,不走捷径,只有实实在在的进步。
本周的训练质量。反映你过去 7 天练得怎么样——有氧训练、力量训练日、坚持程度和多样性。这就是你为 FitScore 贡献的部分。
你当前的个人体能水平,也就是你此刻所处的位置。它通过长期坚持训练逐步积累,停练后会逐渐下降。
高 ActivityScore 会转化为高 FitScore。
你每周的训练质量由四个经过科学验证的*部分组成:
按每周训练时长(小时)计算。收益递减——从 0→5 小时的提升比 10→15 小时大得多。上限大约在每周 15-20 小时。1 区活动(步行)按较低比例计入——走 3 小时和骑 3 小时 2 区不是一回事。
按每周有力量训练的天数计算。时长不限——做3分钟壶铃摆荡也算。同一天练多次只算1天。每周2天得 75%,3天得 90%,4天及以上封顶 100%。
看你每周练几天。鼓励你坚持出勤,但每天都练也不会被扣分。
第 6 天和第 7 天的得分与第 5 天相同。如果每天训练适合你,不会因此扣分;不过根据训练方式,大多数人每周安排 1 到 2 天休息会更有益。
统计每周至少做过一次的不同运动项目。跑步和骑行分开计算,游泳和举重也分开计算。运动种类越多,锻炼到的肌肉、关节和动作模式就越多样。
周六和周日长距离骑行
骑行、力量训练和日常活动相结合
每天短时训练,规律性高
TrainingPeaks 和 Andrew Coggan 的表现管理图(Performance Management Chart),也就是 TSS、CTL、ATL,改变了整个行业。这些概念为运动员和教练提供了量化训练负荷、管理疲劳的共同语言。这在当时是革命性的。
但 PMC 想同时解决很多问题:我的体能水平如何?我应该练多少?我需要恢复吗?大部分问题它都处理得还不错。
只是,最糟的那一项恰恰是体能水平。
CTL 模型把所有人都推向同一种练法:中高强度,时长越多越好。数字在涨,那肯定有效吧。但对任何人来说,这几乎都不是最好的训练方式。
过去十年的研究给出了不同的答案:2 区训练、两极化周期安排、80/20 法则。一项又一项研究表明,CTL 所奖励的训练方式很少是最优的。真正能打造持久体能的,往往是更聪明的训练,而不是更多的训练。
我们大多数人凭直觉都明白:10小时正确的训练胜过20小时的甜区训练,尽管 CTL 会告诉你那20小时代表更高的“体能”。
CTL 并不鼓励均衡训练。全身力量是体能的重要组成部分,应该单独计分,体现它的重要性。对比一下精英铁人三项运动员和精英自行车手:大多数人会认为铁人三项运动员才是体能的典范,均衡、实用、耐练。这正是健身运动者所追求的,而不是只为单一输出而优化的单项专才。
FitScore 以 Coggan 奠定的基础为根基,但根据我们现在的认识更新了模型。体能不是负荷的累积,而是聪明、均衡的训练:设有合理上限的有氧训练量、力量训练、坚持,以及多样化的运动方式。
用新标准,匹配对体能的新认识。
FitScore 使用与 CTL 相同的指数衰减模型。 体能适应约 42 天的时间常数在运动科学中早有定论。我们不是在重新发明轮子——我们改变的是放进去的东西。
Banister 模型研究 →多并不总是更好。 训练量和体能之间是对数曲线关系——从每周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