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を入力して読み込まれたか確認します。
詳細
Transfer Bonuses スキル
現在のクレジットカード移行ボーナスに関する信頼できる参照情報です。data/transfer-bonuses.json を読み込みます。このファイルは scripts/refresh-transfer-bonuses.py によって毎週更新されます(.github/workflows/refresh-data.yml を介して毎週月曜日に自動実行されるほか、いつでも手動実行できます)。このスクリプトは Frequent Miler(正規情報源)からデータを取得し、各ボーナスを AwardWallet と照合します。有効な各ボーナスには、ツールキットの Research Integrity Protocol に従って信頼度マーカーが付与されます(FM と AwardWallet の両方が一致する場合は VERIFIED、FM のみの場合は LIKELY、信頼性の低い情報源が1つだけの場合は UNVERIFIED)。TPG は妥当性確認のために手動で参照することがありますが、プログラムによるデータ取得は行っていません。TPG では期限切れのボーナスが有効として表示されることがよくあります。
有効期限ゲート(ボーナスを引用する前に必ず実行)
データファイルはスナップショットです。更新の合間に、ボーナスが月末に終了することはよくあります。2026-07-07 時点で、ファイルには「有効」なボーナスが7件記載されていましたが、そのうち5件は1週間前に終了していました。ファイルの情報をそのまま引用するエージェントは、Chase から Marriott への移行比率を実際の1.0倍ではなく1.55倍として見積もるところでした。そのため、必ず毎回、次の手順を機械的に実行してください。
- 今日の日付を確認します。
- 引用しようとしている各ボーナスについて、
end_date_inclusiveを今日の日付と比較します。過去の日付は、どの配列に含まれていても期限切れです。 期限切れのボーナスを利用可能として提示してはいけません。 active_bonusesの項目に1件でも過去の日付のものがある場合、または_meta.last_updatedが7日より前の場合は、先に更新します:python3 scripts/refresh-transfer-bonuses.py(プレビューするには--dry-runを使用します)。その後、ファイルを再度読み込みます。- 更新に失敗した場合(情報源のレイアウト変更、オフラインなど)は、有効期限とデータの古さに関する注意書きを添えてボーナスを提示します:「ファイルには2026-07-14まで+30%と記載されています。最終確認日はです。ポイントを移行する前に、発行会社の移行ページでご確認ください。」
使用する場面
- 移行を伴う特典航空券の予約費用を見積もる場合。 JALへの30%ボーナスがあれば、JAL経由で oneworld の特典を予約する実質コストは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 cpp。ただし最低保証ではありません)を利用するより不利なことがよくあります。想定レートではなく、必ずポータルの実際の見積もりを取得して比較計算してください。
- 併用可能なボーナスを特定する場合。 Aeroplan Visa のカード会員は、Chase UR から Aeroplan へのキャンペーンに加えて、カード会員向けの10%ボーナスを併用できます。
使用しない場面
- 一般的な移行比率(有効なボーナスがない場合)。通常の移行比率については transfer-partners を使用してください。
- ポイントの価値(プログラムごとの cpp)。points-valuations を使用してください。
- 特典航空券の空席状況。seats-aero を使用してください。
- 予約方法と、移行前に予約を保留するルール。booking-guidance を使用してください。
データファイル
data/transfer-bonuses.json。スキーマ(関連フィールド):
| フィールド | 説明 |
|---|---|
_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{} | ボーナスを交換の判断にどう反映させるかを示す、具体的な 6 つのルール。 |
データの更新
毎週(または必要に応じて)以下を実行します:
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 の変更、ネットワークの問題など)は、2 つの主要な情報源(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
例:2026 年 4 月に Capital One 経由で JAL のビジネスクラス特典航空券(70k)を予約する場合:
- 標準:70,000 / 0.75 = Capital One マイル 93,333 マイル
- 30% ボーナス適用時:70,000 / 0.975 = Capital One マイル 71,795 マイル
- 節約:約 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:RTW 特典では大量のポイント移行が必要です。適切なポイント通貨で 30% のボーナスがあれば、実質的なポイント費用を大幅に抑えられます
情報源の優先順位
情報源の内容が異なる場合:
- Frequent Miler を正とします。同サイトの
current-point-transfer-bonusesページは毎日更新され、ほぼリアルタイムで最も正確な情報を提供しています。 - AwardWallet は有力な照合先です。同様のボーナスをほぼ同じ精度で掲載していますが、更新頻度はやや低めです。
- TPG は信頼性がやや低い情報源です。同サイトのページは月次更新で、期限切れのボーナスが「有効」と表示されることがよくあります。一次情報源としてではなく、確認用にのみ使用してください。
TPG に掲載されているボーナスが Frequent Miler に掲載されていない場合、航空会社の公式ページなど、元のプロモーション情報で確認できない限り、期限切れまたは存在しなかったものとして扱ってください。
捏造を避ける
このスキルがある理由の一つは、LLM が自信たっぷりに移行ボーナスを捏造しがちなことです。データファイルにないボーナスは決して掲載しないでください。 データファイルが古い場合(check-data-freshness.sh が STALE を報告する場合)は、回答する前に更新してください。更新に失敗した場合は、推測するのではなく、ユーザーに「データファイルが古く、現在更新できません」と伝えてください。