transfer-partners について
移行先、移行比率、ポイント評価額を使って特典航空券の予約方法を比較するスキルです。特典枠を見つけた、移行可能ポイントを持つ旅行者向けに、必要ポイントと機会費用を算出します。
主な機能
- 01プログラム間の移行コスト比較
- 02評価額に基づく機会費用の算出
- 03航空会社の移行先の確認
- 04ボーナスと移行所要時間の考慮
- 05アライアンスをまたぐ予約の最適化
活用シーン
- 01特典航空券に使うポイントの選択
- 02航空会社プログラム間の費用比較
- 03移行ボーナスによる費用変化の評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ borski/ travel-hacking-toolkit --skill transfer-partnersインストール後、Claude Code で/transfer-partnersを入力して読み込まれたか確認します。
詳細
移行可能ポイント最適化ツール
特典航空券の価格(seats.aero または手動入力)と、移行可能ポイントの残高から、予約に最も安い方法を見つけます。
API キーは不要です。 ローカルの JSON データファイルを使用します。
データファイル
| ファイル | 用途 |
|---|---|
data/transfer-partners.json | クレジットカードからロイヤルティプログラムへの移行比率 |
data/points-valuations.json | プログラムごとの CPP 評価額(TPG、UP、OMAAT、VFTW による最低値/最高値) |
data/partner-awards.json | 各プログラムで予約できる航空会社 |
使用する場面
- ユーザーが特典航空券の空席情報を持っている(seats.aero のキャッシュ検索、リアルタイム検索、または手動入力)
- ユーザーが「どのポイントを使えばよいか」を知りたい
- ユーザーが移行可能なポイントの種類ごとに実質コストを比較したい
- 特定の航空会社またはプログラムの移行パートナーについて尋ねている
ワークフロー
ステップ 0:現在の移行ボーナスを確認する(必ず実施)
移行を推奨する前に、transfer-bonuses スキルを読み込み、data/transfer-bonuses.json で該当する通貨からプログラムへの移行に適用されるボーナスがあるか確認します。30%のボーナスがあると、1:1 の比率が 1:1.3 になり、ステップ 3 の最安通貨の計算結果が大きく変わる可能性があります。ボーナスには有効期限もあり、移行のタイミングに影響します。
ステップ 1:特典航空券の空席情報を取得する
seats.aero(API またはウェブ)を使用して特典航空券を検索します。各検索結果には以下が含まれます。
Source(ロイヤルティプログラム:「united」、「aeroplan」、「flyingblue」など)- キャビンごとの必要ポイント数(例:ビジネスクラスで 55,000 ポイント)
ステップ 2:Seats.aero のソースを移行パートナーに対応付ける
Seats.aero のソース名は transfer-partners.json のキーに対応します。
| Seats.aero のソース | 移行パートナーのキー | 移行元のプログラム |
|---|---|---|
united | united | Chase UR(1:1)、Bilt(1:1) |
aeroplan | aeroplan | Chase UR(1:1)、Amex MR(1:1)、Bilt(1:1)、Capital One(1:1) |
flyingblue | flying_blue | Chase UR(1:1)、Amex MR(1:1)、Bilt(1:1)、Capital One(1:1)、Citi TY(1:1)、Wells Fargo(1:1) |
american | american | Citi TY(1:1) |
alaska | alaska_hawaiian | Bilt(1:1) |
virginatlantic | virgin_atlantic | Chase UR(1:1)、Amex MR(1:1)、Bilt(1:1)、Citi TY(1:1)、Wells Fargo(Virgin Red 経由で 1:1) |
delta | delta | Amex MR(1:1) |
emirates | emirates | Bilt(1:1)、Amex MR(5:4)、Capital One(4:3)、Citi TY(5:4) |
etihad | etihad | Bilt(1:1)、Capital One(1:1)、Citi TY(1:1) |
singapore | singapore | Chase UR(1:1)、Amex MR(1:1)、Capital One(1:1)、Citi TY(1:1) |
jetblue | jetblue | Chase UR(1:1)、Citi TY(1:1)、Wells Fargo(1:1)、Amex MR(250:200)、Capital One(5:3) |
qatar | qatar | Amex MR(1:1)、Bilt(1:1)、Capital One(1:1)、Citi TY(1:1) |
turkish | turkish | Bilt(1:1)、Capital One(1:1)、Citi TY(1:1) |
eurobonus | (直接移行なし) | 該当なし |
aeromexico | aeromexico | Amex MR(1:1.6)、Capital One(1:1)、Citi TY(1:1) |
smiles | (直接移行なし) | 該当なし |
finnair | finnair | Capital One(1:1) |
lufthansa | (直接移行なし) | 該当なし |
ethiopian | (直接移行なし) | 該当なし |
saudia | (直接移行なし) | 該当なし |
「直接移行なし」のプログラムで予約するには、マイルを直接貯めるか、アライアンスパートナー経由で予約する必要があります。
ステップ 3:実質コストを計算する
各特典航空券について、移行可能なポイントの種類ごとにコストを計算します。
effective_cost = award_miles / transfer_ratio
例:Aeroplan のビジネスクラス、55,000 マイルの場合
- Chase UR:55,000 / 1.0 = 55,000 UR ポイント
- Amex MR:55,000 / 1.0 = 55,000 MR ポイント
- Capital One:55,000 / 1.0 = 55,000 Cap One マイル
例:Emirates のビジネスクラス、72,500 マイルの場合
- Bilt:72,500 / 1.0 = 72,500 Bilt ポイント
- Amex MR:72,500 / 0.8 = 90,625 MR ポイント(比率が不利)
- Capital One:72,500 / 0.75 = 96,667 Cap One マイル(最も不利な比率)
ステップ 4:機会費用を計算する(CPP)
points-valuations.jsonを使用して、各通貨の「価値」を評価します。
opportunity_cost = effective_cost × point_value_cpp / 100
これにより、手放す「現金相当額」がわかります。低いほど有利です。
ステップ 5:結果を提示する
必ず Markdown の表を使用してください。
| プログラム | 必要マイル数 | 最適なポイント通貨 | 必要ポイント数 | CPP 値 | 現金相当額 |
|---|---|---|---|---|---|
| Aeroplan | 55,000 | Chase UR | 55,000 | 1.7¢ | $935 |
| United | 55,000 | Chase UR | 55,000 | 1.7¢ | $935 |
| Alaska | 37,500 | Bilt | 37,500 | 1.7¢ | $638 |
| Flying Blue | 57,000 | 1:1 で移行できるポイント | 57,000 | 1.7¢ | $969 |
表の後に:
- おすすめ:「Bilt ポイントを使って Alaska 経由で予約します。37,500 Bilt の機会費用は $638 で、次点の United/Aeroplan の $935 より低くなります。」
- **残高を確認:**おすすめしたポイント通貨の残高が十分にあることを確認します。
- **移行ボーナスはあるか?**現在適用される移行ボーナスがないか確認します(Roame.travel または TPG bonus tracker)。
jq レシピ
あるプログラムに移行できるすべてのポイント通貨を検索する
jq -r '
to_entries | .[] | select(.key != "_meta") |
.key as $currency | .value.display_name as $name |
(.value.airlines // {}) + (.value.hotels // {}) |
to_entries[] | select(.key == "PROGRAM_KEY") |
"\($name): \(.value.ratio):1 → \(.value.program)"
' data/transfer-partners.json
PROGRAM_KEYをキー(例:united、aeroplan、flying_blue)に置き換えます。
特典航空券の実質コストを計算する
# Given: 55000 miles via aeroplan
PROGRAM="aeroplan"
MILES=55000
jq -r --arg prog "$PROGRAM" --argjson miles $MILES '
to_entries | .[] | select(.key != "_meta") |
.key as $currency | .value.display_name as $name |
((.value.airlines // {}) + (.value.hotels // {}))[$prog] // null |
select(. != null) |
"\($name): \(($miles / .ratio) | floor) points (ratio \(.ratio):1)"
' data/transfer-partners.json
複数の特典航空券の選択肢から最も安い方法を検索する
# Given: united at 55000, aeroplan at 55000, alaska at 37500
echo '[
{"program": "united", "miles": 55000},
{"program": "aeroplan", "miles": 55000},
{"program": "alaska_hawaiian", "miles": 37500}
]' | jq -r --slurpfile tp data/transfer-partners.json '
.[] | .program as $prog | .miles as $miles |
($tp[0] | to_entries | .[] | select(.key != "_meta") |
.value.display_name as $name |
((.value.airlines // {}) + (.value.hotels // {}))[$prog] // null |
select(. != null) |
{currency: $name, program: $prog, miles: $miles, points_needed: (($miles / .ratio) | floor), ratio: .ratio}
)
' | jq -s 'sort_by(.points_needed)'
アライアンスをまたいだ最適化
最も安い方法で予約するには、通常考えるプログラムとは別のプログラムを経由する必要がある場合があります。data/partner-awards.jsonで、アライアンスをまたいだ注目情報を確認してください。
- **Virgin Atlantic → ANA:**西海岸発のビジネスクラスが 52.5K。どの Star Alliance プログラムよりも安価です。
- **Etihad → American Airlines:**固定チャートのほうが、AA の変動価格よりお得になることがよくあります。
- **Flying Blue → Delta:**SkyMiles より安いことが多く、無料の途中降機も利用できます。
- **Alaska → Starlux:**Starlux をポイントで予約する唯一の方法です。
移行タイミングのリスク
ポイントの移行は取り消せません。特典航空券を確保できなくなる最もよくある原因は、移行のタイミングです。正確な特典航空券を確認してから、すぐに発券する準備ができたときにのみ移行してください。
ほとんどの移行は 24 時間 365 日、即時です — 即時ではないものも一部あります
即時移行は、週末や祝日を含む曜日を問わず、数分以内に反映されます(営業日の一括処理ではなく、API を介して処理されます)。週末や祝日の遅延が発生するのは、以下の処理が遅いプログラムのみです。即時移行リストにない場合は、同日中の予約に間に合うと想定しないでください。
プログラム別の移行速度
| プログラム | 速度 | 備考 |
|---|---|---|
| Aeroplan | 即時 | 曜日を問わず、API 経由で反映されます。 |
| Flying Blue | 即時 | Amex と Chase はどちらも即時に反映されます。 |
| United MileagePlus | 即時 | Chase、Bilt。 |
| Hyatt | 即時 | Chase、Bilt。 |
| Virgin Atlantic | 即時 | Amex/Chase。まれに 48 時間かかることがあります。 |
| BA/Iberia/Aer Lingus Avios | 即時 | Avios エコシステム内で即時に合算されます。最もリスクの低い移行です。 |
| Qatar Avios | 即時 | 残高表示に遅れが出ることがあります。再ログインすると確認できます。 |
| Emirates Skywards | 即時 | Amex からの移行は、まれに 24 時間かかります。 |
| JetBlue TrueBlue | 即時 | 移行比率は不利です(Cap One は 5:3、Amex/Citi は 5:4)。 |
| Cathay Asia Miles | Amex からは即時、Capital One からは 24 時間 | |
| Etihad Guest | Capital One からは即時 | Amex 経由の移行は 2026 年 6 月 30 日に終了しました。 |
| Avianca LifeMiles | Cap One/Citi からは即時 | Amex からの移行は即時に反映されますが、マイルは翌日(コロンビア時間)までロックされます。同日中の予約に Amex 経由を使わないでください。 |
| ANA Mileage Club | 約 48 時間(最大 3 日) | Amex からのみ移行できます。同日中の予約には使わないでください。 |
| Singapore KrisFlyer | Amex は即時、Cap One は最大 48 時間、Chase は 1~2 日、Citi は最大 5 営業日 | 空席を確認してからのみ移行してください。 |
| Turkish Miles & Smiles | Bilt はほぼ即時、Cap One は約 24 時間、Citi は最大 5 営業日 | Amex または Chase 経由の移行はできません。 |
| Marriott Bonvoy | 約 36 時間(最大 1 週間) | 主要な移行先の中で最も時間がかかります。見込みだけで移行しないでください。 |
| Atmos Rewards(旧 Alaska Mileage Plan) | Bilt は即時、Marriott は 3:1 で約 2 日 | Amex、Chase、Capital One 経由の移行はできません。 |
週末や祝日の遅延は、処理に時間がかかるプログラムにのみ発生します
上記の即時処理プログラムは、週末の影響を受けません。処理に時間がかかるプログラム(ANA、Singapore(Chase/Citi経由)、Turkish(Citi経由)、Marriott、Atmos(Marriott経由))では、土曜日、日曜日、または祝日に申請すると、数日余計にかかることがあります。これらを利用する必要があり、特典枠が危うい場合は、週末や祝日の前夜ではなく、その直前の営業日の東部時間午後5時までに移行してください。
新規ロイヤルティアカウント
新しく開設したロイヤルティアカウントでは、初回の移行が遅れたり、不正利用の疑いでフラグが立ったりする場合があります。また、一定の待機期間を設けているプログラムもあります。JALでは一部の提携先を連携した後、約60日間移行が制限され、Iberia Plusではアカウント開設から90日経過している必要があります。新しいアカウントは十分前もって(数週間前に。数日前ではなく)開設し、移行前にアカウント番号と氏名がカードの登録情報と完全に一致していることを確認してください。
プログラムで可能なら、先に特典枠を仮押さえする
多くのプログラムでは、支払い前に特典枠を仮押さえできるため、移行タイミングのリスクを完全になくせます。見込みで移行する必要があると決めつける前に、現在のプログラム別ルールを確認するため、award-holdsスキルを読み込んでください。
- 仮押さえ可能(先に仮押さえしてから移行): American AAdvantage(24時間、無料、オンラインで手続き可能)、Lufthansa Miles & More(5日間、電話)、Flying Blue(3日間、電話)、Cathay Asia Miles(最長3日間、電話)、Turkish Miles & Smiles(2日間)、Virgin Atlantic(1~2日間)、ANA(2日間、電話)、Emirates(1日間、電話)、Singapore KrisFlyer(担当者の判断による)。AAの無料オンライン仮押さえは、ほとんどの提携航空会社の特典航空券にも利用できます。
- 仮押さえ不可(見込みで移行): United、Delta、Aeroplan、Atmos(Alaska)、British Airways、Iberia、Qatar、Korean、Etihad。
仮押さえできない場合は、次の条件をすべて満たしてから移行してください。
- 航空会社の予約サイトで正確な特典枠を確認していること(seats.aeroだけで確認した状態では不十分です)
- マイルが反映されたら、すぐに発券できる準備ができていること
- seats.aeroの
ComputedLastSeenが最新であること。キャッシュが古いと、特典枠がすでになくなっている可能性があります
注意事項
- 移行比率が変わることはほとんどありませんが、多額の移行を行う前に発行会社のウェブサイトで確認してください。
- 移行は取り消せません。実行する前に、上記の「移行タイミングのリスク」を参照してください。
- 一部のプログラムでは移行ボーナス(10~30%の追加分)が実施されます。推測で判断せず、
transfer-bonusesスキル(ライブデータ、週次の自動更新)を利用してください。 - 「最適な」通貨は、保有量が最も多いものと、その価値をどう評価するかによって異なります。1.0 cppと評価する通貨からの1:1移行は、1.5 cppと評価する通貨からの1:1移行よりも、機会費用が大きくなります。