关于 transfer-bonuses
transfer-bonuses 是用于查询信用卡积分转点促销的旅行规划技能,数据文件每周更新。它记录优惠截止日期和可信度,支持有时效性的转点决策。
主要功能
- 01读取转点优惠数据及有效比例
- 02引用前核对优惠截止日期
- 03记录可信度及来源交叉核验
- 04每周或按需刷新数据
- 05比较有无优惠时的转点成本
适用场景
- 01估算使用转点优惠兑换奖励所需成本
- 02决定现在转点还是等待
- 03核验优惠是否胜过门户预订选项
- 04识别可叠加的优惠
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ borski/ travel-hacking-toolkit --skill transfer-bonuses安装后在 Claude Code 中输入/transfer-bonuses确认已加载。
详细介绍
转点奖励技能
当前信用卡转点奖励的权威参考。数据来自 data/transfer-bonuses.json,由 scripts/refresh-transfer-bonuses.py 每周刷新(每周一通过 .github/workflows/refresh-data.yml 自动运行,也可随时手动运行)。该脚本会抓取 Frequent Miler(权威来源),并通过 AwardWallet 交叉核验每项奖励。根据工具包的研究诚信协议,每项有效奖励都带有置信度标记(如果 FM 和 AwardWallet 均一致,则为 VERIFIED;如果只有 FM,则为 LIKELY;如果仅有单一弱来源,则为 UNVERIFIED)。有时会手动参考 TPG 进行合理性检查,但不会通过程序抓取——TPG 经常将已过期的奖励显示为有效。
过期检查关卡(引用任何奖励前先执行)
数据文件是某一时点的快照;两次刷新之间,奖励通常会在月底到期。2026-07-07,文件列出了 7 项“有效”奖励,其中 5 项早在一周前就已结束——如果 Agent 直接引用文件内容,就会把 Chase→Marriott 转点按 1.55 倍计算,而实际比例是 1.0。因此,每次都必须按以下步骤执行:
- 获取今天的日期。
- 对于准备引用的每项奖励,将
end_date_inclusive与今天进行比较。**日期已过 = 已过期,无论它位于哪个数组中。**绝不要将已过期的奖励说成仍可用。 - 如果
active_bonuses中有任何条目的日期已过,或_meta.last_updated距今超过 7 天,则先刷新:python3 scripts/refresh-transfer-bonuses.py(使用--dry-run可预览)。然后重新读取文件。 - 如果刷新失败(来源页面布局已更改、处于离线状态),则展示奖励时必须附上其结束日期和数据过期提示:“文件显示有 +30% 奖励,截至 2026-07-14;最后核验日期为 ——转点前请在发卡方的转点页面确认。”
适用场景
- 为涉及转点的奖励预订计算成本。 转至 JAL 的 30% 奖励会使通过 JAL 预订寰宇一家行程的实际成本降低 23%。计算时必须考虑该奖励。
- 决定立即转点还是等待。 如果某项奖励预计会再次推出(参见
frequent_recurring_bonuses_to_watch),等待可能更值得。 - 核查“高额奖励”是否真的划算。 酒店转点奖励尤其如此(Chase UR 转 IHG 70%,Chase UR 转 Marriott 50–70%):标题看起来往往很诱人,但实际可能不如 Chase Travel 门户(CSR/CSP 上的动态 Points Boost,部分预订约为每点 1.5–2.0 美分;并非保证的最低价值)。务必获取门户的实际报价并据此计算,而非假设一个兑换率。
- 识别可叠加的奖励。 Aeroplan Visa 持卡人可在任何 Chase UR 转 Aeroplan 促销奖励之上,叠加 10% 的持卡人奖励。
不适用场景
- 一般转点比例(没有有效奖励时)。标准比例请使用 transfer-partners。
- 积分估值(各计划每点价值)。请使用 points-valuations。
- 奖励航班可用性。请使用 seats-aero。
- 预订指导和转点前先锁定行程的规则。请使用 booking-guidance。
数据文件
data/transfer-bonuses.json。Schema(相关字段):
| 字段 | 说明 |
|---|---|
_meta.last_updated | ISO 日期,最后刷新时间 |
_meta.staleness_days | TTL(天);与 scripts/check-data-freshness.sh 集成 |
_meta.primary_sources | Frequent Miler、AwardWallet(仅手动查阅 TPG) |
active_bonuses[].bonus_pct | 奖励百分比(例如,30 表示 30%) |
active_bonuses[].ratio | 标准比例的倍数(1.30 = 30% 奖励) |
active_bonuses[].standard_ratio | 基准转点比例(1.0 = 1:1,0.75 = 4:3) |
active_bonuses[].effective_ratio | 奖励后的最终比例(standard_ratio * ratio) |
active_bonuses[].end_date_inclusive | 奖励生效的最后一天 |
active_bonuses[].confidence | VERIFIED、LIKELY 或 UNVERIFIED |
active_bonuses[].sources[] | 指向一手来源文章的直接 URL |
active_bonuses[].notes | 策略背景,包括“但你不应该这样做”的警示 |
expired_recently[] | 过去 30 天内结束的奖励。可用于留意 TPG/AW 信息过时的情况。 |
frequent_recurring_bonuses_to_watch{} | 历史上会重复出现的奖励,包括常见百分比和频率。用于判断“我该不该等”的决策。 |
decision_rules{} | 转点决策中如何考虑奖励的六条具体规则。 |
刷新数据
每周(或按需)运行:
python3 scripts/refresh-transfer-bonuses.py
此脚本会:
- 抓取 Frequent Miler 当前的积分转点奖励页面(权威来源)。
- 对照 AwardWallet 核查每项奖励。
- 根据交叉核查结果设置信心等级:2 个或更多来源一致时为 VERIFIED,只有 Frequent Miler 时为 LIKELY。
- 将已过期的奖励移至
expired_recently[]。 - 更新
_meta.last_updated。
scripts/check-data-freshness.sh 会在此文件过期 7 天后发出提示。
如果脚本失败(Frequent Miler 的 HTML 已更改、网络问题等),请访问两个主要来源(Frequent Miler、AwardWallet)并手动编辑 JSON。可以将 TPG 作为合理性检查,但它并非权威来源,因为它经常将已过期的奖励显示为有效。绝不要捏造奖励。根据 Research Integrity Protocol,如果无法从一手来源核实某项奖励,就不要将其纳入。
快速参考输出格式
当用户询问“现在有哪些有效奖励?”时,读取 data/transfer-bonuses.json 并生成 Markdown 表格。示例格式(仅供说明——请从数据文件中读取实时值,不要使用此示例中的值):
| From | To | Bonus | End Date | Effective Ratio | Confidence | Notes |
|------|----|-------|----------|-----------------|------------|-------|
| Amex MR | Hilton Honors | 20% | YYYY-MM-DD | 1:2.4 | VERIFIED | Skip unless specific Hilton stay; effective ~1.2 cpp |
| Chase UR | Aeroplan | 20% (30% w/ Aeroplan Visa) | YYYY-MM-DD | 1:1.20 (1.30) | VERIFIED | Star Alliance; no fuel surcharges; stackable |
| Chase UR | IHG | 70% | YYYY-MM-DD | 1:1.70 | VERIFIED | "But you shouldn't" - Chase Travel portal (dynamic Points Boost; verify actual quote) typically wins for IHG bookings |
| Capital One | JAL | 30% | YYYY-MM-DD | 1:0.975 | VERIFIED | Brings standard 4:3 to ~1:1; oneworld |
| Citi TYP | Leading Hotels | 25% | YYYY-MM-DD | 1:1.25 | LIKELY | Niche luxury; only useful for specific LHW stays |
(表格格式和注释适用于所有计划组合。当前实际结束日期和有效比例存储在 data/transfer-bonuses.json 中,并通过 scripts/refresh-transfer-bonuses.py 每周更新。)
然后在表格下方:
- 突出显示用户已计划、且此奖励能加速完成的兑换。
- 如适用,提及可叠加的奖励(例如,Aeroplan Visa 持卡人奖励)。
- 说明“但你不应该这样做”的情况及其原因。
- 如果某项重复出现的奖励在关注列表中,且用户的时间安排灵活,建议等待。
计算实际成本
对于任何需要转点的奖励兑换,请分别计算两种情况下的实际成本:
无奖励:
points_required_in_card_currency = miles_required / standard_ratio
有奖励:
points_required_in_card_currency = miles_required / effective_ratio
示例:通过 Capital One 在 2026 年 4 月预订 70k JAL 商务舱奖励:
- 标准情况:70,000 / 0.75 = 93,333 Capital One 里程
- 有 30% 奖励:70,000 / 0.975 = 71,795 Capital One 里程
- 节省:约 21,538 里程(按 TPG 对 Capital One 里程的 1.85 cpp 估值约为 $398;21538 × 0.0185 = 398.45)
交叉引用
- transfer-partners:标准转点比例(无奖励)
- points-valuations:各计划的 cpp 底线;用于核验奖励是否确实优于门户网站或现金选项
- booking-guidance:关键规则:“转点前先保留”
- award-holds:各计划的保留规则。此项至关重要,因为大多数主要的西方计划已不再提供保留服务,因此围绕奖励到期时间安排转点会更加危险。
- seats-aero:转点前核实奖励票可用情况
- partner-awards:哪些计划可以出票哪些航空公司的机票
- stopovers:如果某个支持中途停留的计划(例如 Flying Blue、Aeroplan、Alaska)正在提供奖励,多段行程兑换的实际价值会进一步提高
- round-the-world:环球奖励票需要转入大量积分;若使用合适的积分货币,30% 的奖励能显著降低实际积分成本
来源层级
当来源说法不一致时:
- Frequent Miler 是权威来源。他们的
current-point-transfer-bonuses页面每天更新,是最准确的近实时来源。 - AwardWallet 是可靠的交叉核对来源。他们列出的奖励相同,准确度也相近,但更新频率略低。
- TPG 是较弱的来源。他们的页面每月更新,且经常将已过期的奖励标为“有效”。仅将其用于确认,不要作为首要来源。
如果 TPG 显示某项奖励,而 Frequent Miler 没有,则应视为已过期或从未存在,除非你能从原始促销来源(航空公司自己的页面)核实。
避免捏造
这项技能之所以存在,部分原因是 LLM 容易自信地捏造转点奖励。**绝不要列出数据文件中不存在的奖励。**如果数据文件已过时(check-data-freshness.sh 报告 STALE),请在回答前刷新。如果刷新失败,请告诉用户“数据文件已过时,我目前无法刷新”,而不是猜测。