设备更换计算器:把财务回本与碳回本放在同一张表上
译注:本文编译自 dev.to 文章《Gadget Replacement Calculator》,作者发布了一款免费小工具,用显式模型对比“继续用旧设备”与“换新设备”的月度成本与碳排放回本周期。原文链接见文末。
“这台设备该换了吗?”听起来像是一次价格比较,但如果旧设备继续用下去成本很低,或者新设备的制造碳足迹很大,那么一次看似便宜的升级仍可能是糟糕的决定。作者为此构建了一个计算器,做更明确的对比:把财务盈亏平衡点与粗略的碳回本点并排放置,然后看两个维度是否一致。
结果并不是一条通用的升级规则,而是一个透明的模型,其假设可以修改:设备类型、转售价值、维修成本、满意度评分、预期寿命、制造 CO₂、功耗以及每日使用时长。
当前设备是一笔“月度成本”
表单支持智能手机、笔记本电脑、平板电脑和台式机。选择类型会更新两个默认值:
const CO2_DEFAULTS = {
smartphone: 70,
laptop: 300,
tablet: 90,
desktop: 700,
};
const POWER_DEFAULTS = {
smartphone: 5,
laptop: 15,
tablet: 8,
desktop: 80,
};
function setDeviceType(key) {
deviceType.value = key;
mfgCo2.value = CO2_DEFAULTS[key];
powerWatts.value = POWER_DEFAULTS[key];
}如果没有输入正的转售价值,计算器会用购买价格按直线折旧估算一个:
const resale = currentResale.value > 0
? currentResale.value
: Math.max(
0,
purchasePrice.value *
(1 - ageMonths.value / (newLifespan.value * 12))
);这个兜底逻辑在源码中是刻意可见的:它用新设备的预期寿命作为估算的时间尺度。随后“继续使用”的成本模型会根据满意度评分调整剩余月数,且不允许少于一个月:
const remainingMonths = Math.max(
(expectedLifeMonths - ageMonths.value) * (perfScore.value / 10),
1
);
const monthlyDepreciation = resale / remainingMonths;
const monthlyCostKeep = monthlyRepair.value + monthlyDepreciation;新设备的月度成本就是其价格除以预期寿命月数。如果继续用旧设备每月更便宜,就不存在财务收益,moneyBreakEven 变为 -1。否则,前期金额为新价格减去转售价值,再除以每月节省额并向上取整。
碳回本依赖一个显式假设
碳一侧通过减少的电力消耗估算年度节省:
const co2PerKwh = 0.5;
const extraPowerWatts =
powerWatts.value * (efficiencyLoss.value / 100);
const annualCarbonSaved =
(extraPowerWatts / 1000) *
usageHours.value *
365 *
co2PerKwh;
const carbonBreakEven = annualCarbonSaved > 0
? Math.ceil((mfgCo2.value / annualCarbonSaved) * 12)
: 9999;0.5 被视为每千瓦时二氧化碳当量的千克数,界面中描述为全球平均估算值,并非对本地电网的实测。制造排放可编辑,因为内置参考值——手机约 70 千克、笔记本 300、平板 90、台式机 700——都是估算而非经过认证的产品数据。
该模型只问一个很窄的问题:如果当前设备比替代品多消耗 efficiencyLoss 百分比的电力,节省的电量需要多久才能抵消制造排放?它不计入运输、回收、维修零件、电池衰减,也不计入使用更强设备带来的反弹效应。
结论是一个“双轴策略”
只有当财务回本为正且不超过 24 个月,并且碳回本不超过 36 个月时,计算器才标记为 replace。当财务计算不支持更换或超过 36 个月,且碳回本超过 48 个月时,标记为 keep。其余情况都是 borderline:
const moneyFavorsReplace =
moneyBreakEven > 0 && moneyBreakEven <= 24;
const carbonFavorsReplace =
annualCarbonSaved > 0 && carbonBreakEven <= 36;
const moneyFavorsKeep =
moneyBreakEven < 0 || moneyBreakEven > 36;
const carbonFavorsKeep = carbonBreakEven > 48;
if (moneyFavorsReplace && carbonFavorsReplace) {
verdict = "replace";
} else if (moneyFavorsKeep && carbonFavorsKeep) {
verdict = "keep";
}这些阈值是策略选择,不是经济学或气候科学的定律。界面同时展示两项月度成本、计算出的回本月数、制造碳、年度碳节省以及两个小型条形对比,因此你可以不同意标签,但不会丢失底层数字。
界面让两个问题保持可见,而不是把它们压缩成一个分数。财务卡片报告继续使用的月度成本和新设备的月度摊销成本,碳卡片报告制造排放和年度节省。因此,一台设备可能财务上很有吸引力,但环境回本很慢,反之亦然。borderline 状态不是计算失败,而是当所选阈值不一致或双方都不决定性时的预期输出。
模型可能误导的地方
直线折旧是方便的近似,不是转售市场预测。设备可能突然电池故障、异常保值,或者还能用却一文不值。满意度评分会改变剩余寿命估算,这使它成为主观输入而非实测性能基准。超过假设寿命的设备会被钳制为剩余一个月,而不是产生一个特殊的“已超寿命”状态。
当年度节省为零时,碳回本变为无穷大,且所有碳值都是估算。把结果当作对话起点和敏感性测试:改变转售价值、维修成本、效率损失和使用时长,看看哪些假设真正左右了建议。
作者把这个模型做成了一个小型免费工具:Gadget Replacement Calculator。当购买决策需要的不只是“新机每月还款更低”时,它会派上用场。
原文链接
https://dev.to/begoodtool/gadget-replacement-calculator-2lef