mcpField
T
transfer-bonuses

transfer-bonuses

github.com/borski其他78072 次安装2 天前更新
代码仓库

关于 transfer-bonuses

transfer-bonuses 是用于查询信用卡积分转点促销的旅行规划技能,数据文件每周更新。它记录优惠截止日期和可信度,支持有时效性的转点决策。

主要功能

  1. 01读取转点优惠数据及有效比例
  2. 02引用前核对优惠截止日期
  3. 03记录可信度及来源交叉核验
  4. 04每周或按需刷新数据
  5. 05比较有无优惠时的转点成本

适用场景

  1. 01估算使用转点优惠兑换奖励所需成本
  2. 02决定现在转点还是等待
  3. 03核验优惠是否胜过门户预订选项
  4. 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。因此,每次都必须按以下步骤执行:

  1. 获取今天的日期。
  2. 对于准备引用的每项奖励,将 end_date_inclusive 与今天进行比较。**日期已过 = 已过期,无论它位于哪个数组中。**绝不要将已过期的奖励说成仍可用。
  3. 如果 active_bonuses 中有任何条目的日期已过,或 _meta.last_updated 距今超过 7 天,则先刷新:python3 scripts/refresh-transfer-bonuses.py(使用 --dry-run 可预览)。然后重新读取文件。
  4. 如果刷新失败(来源页面布局已更改、处于离线状态),则展示奖励时必须附上其结束日期和数据过期提示:“文件显示有 +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% 的持卡人奖励。

不适用场景

数据文件

data/transfer-bonuses.json。Schema(相关字段):

字段说明
_meta.last_updatedISO 日期,最后刷新时间
_meta.staleness_daysTTL(天);与 scripts/check-data-freshness.sh 集成
_meta.primary_sourcesFrequent 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[].confidenceVERIFIED、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

此脚本会:

  1. 抓取 Frequent Miler 当前的积分转点奖励页面(权威来源)。
  2. 对照 AwardWallet 核查每项奖励。
  3. 根据交叉核查结果设置信心等级:2 个或更多来源一致时为 VERIFIED,只有 Frequent Miler 时为 LIKELY。
  4. 将已过期的奖励移至 expired_recently[]。
  5. 更新 _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% 的奖励能显著降低实际积分成本

来源层级

当来源说法不一致时:

  1. Frequent Miler 是权威来源。他们的 current-point-transfer-bonuses 页面每天更新,是最准确的近实时来源。
  2. AwardWallet 是可靠的交叉核对来源。他们列出的奖励相同,准确度也相近,但更新频率略低。
  3. TPG 是较弱的来源。他们的页面每月更新,且经常将已过期的奖励标为“有效”。仅将其用于确认,不要作为首要来源。

如果 TPG 显示某项奖励,而 Frequent Miler 没有,则应视为已过期或从未存在,除非你能从原始促销来源(航空公司自己的页面)核实。

避免捏造

这项技能之所以存在,部分原因是 LLM 容易自信地捏造转点奖励。**绝不要列出数据文件中不存在的奖励。**如果数据文件已过时(check-data-freshness.sh 报告 STALE),请在回答前刷新。如果刷新失败,请告诉用户“数据文件已过时,我目前无法刷新”,而不是猜测。

评论

支持 Markdown