Agent skill

Transfer Bonuses

by borski in borski/travel-hacking-toolkit

Active credit card transfer bonuses from Amex, Chase, Capital One, Citi, Bilt, and Rove.

MITAuto-check passed

Install Transfer Bonuses

skills CLI
$ npx skills add borski/travel-hacking-toolkit --skill transfer-bonuses -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install borski/travel-hacking-toolkit transfer-bonuses --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/borski/travel-hacking-toolkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/travel-hacking-toolkit/skills/transfer-bonuses .claude/skills/transfer-bonuses && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
transfer-bonuses
GitHub stars
688
Token cost
~2.5k tokens
SKILL.md length
1,130 words
Files
1
Skills in repo
46
Repo updated
First seen
Licence
MIT

At a glance

Active credit card transfer bonuses from Amex, Chase, Capital One, Citi, Bilt, and Rove.

  • Works in 4 steps: Get today's date. → For each bonus you're about to cite,… → If any active_bonuses entry is… → …
  • Pricing an award booking that involves a points transfer
  • SKILL.md covers The Expiry Gate (run this…, When to Use, When NOT to Use and Data File, plus 6 more sections
  • Calls python3

What it does

Transfer Bonuses is an agent skill from borski/travel-hacking-toolkit. Active credit card transfer bonuses from Amex, Chase, Capital One, Citi, Bilt, and Rove. Weekly-refreshed data with confidence markers. Use when pricing an award booking that involves a points transfer or deciding whether to wait for a better bonus.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: AI-powered travel hacking and search with cash, points, miles, and award flights. Drop-in skills and MCP servers for Claude, Codex, and OpenCode. The licence is MIT.

When your agent uses it

  • Pricing an award booking that involves a points transfer
  • Deciding whether to wait for a better bonus

Example prompts

  • “/transfer-bonuses”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Get today's date.
  2. For each bonus you're about to cite, compare end_date_inclusive to today. Past-dated = expired, regardless of which array it sits in…
  3. If any active_bonuses entry is past-dated, or _meta.last_updated is more than 7 days old, refresh first: python3…
  4. If the refresh fails (source layout changed, offline), present the bonus WITH its end date and staleness caveat: "the file shows +30%…

What it can do on your machine

Read from SKILL.md and the folder at commit db82131. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Transfer Bonuses loads about 2.5k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 1,130 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~67
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from borski/travel-hacking-toolkit at commit db82131, republished under its MIT licence (© borski). 1,130 words, ~2,541 tokens.

Download SKILL.mdSave it as .claude/skills/transfer-bonuses/SKILL.md (or your agent's skills folder).
name
transfer-bonuses
description
Active credit card transfer bonuses from Amex, Chase, Capital One, Citi, Bilt, and Rove. Weekly-refreshed data with confidence markers. Use when pricing an award booking that involves a points transfer or deciding whether to wait for a better bonus.
category
reference
summary
Active credit card transfer bonuses with primary-source citations. Tells the agent the real effective ratio when transferring points during a promotion.

Transfer Bonuses Skill

Authoritative reference for current credit card transfer bonuses. Reads from data/transfer-bonuses.json, which is refreshed weekly by scripts/refresh-transfer-bonuses.py (run automatically every Monday via .github/workflows/refresh-data.yml, and manually any time). The script scrapes Frequent Miler (canonical) and cross-checks each bonus against AwardWallet. Each active bonus carries a confidence marker (VERIFIED if both FM and AwardWallet agree, LIKELY if only FM, UNVERIFIED if single weak source) per the toolkit's Research Integrity Protocol. TPG is sometimes consulted manually as a sanity check but is NOT scraped programmatically — TPG often shows expired bonuses as active.

The Expiry Gate (run this BEFORE citing any bonus)

The data file is a snapshot; bonuses commonly end on month-end dates between refreshes. On 2026-07-07 the file listed 7 "active" bonuses of which 5 had ended a week earlier — an agent quoting the file raw would have priced a Chase→Marriott transfer at 1.55x when the real ratio was 1.0. So, mechanically, every time:

  1. Get today's date.
  2. For each bonus you're about to cite, compare end_date_inclusive to today. Past-dated = expired, regardless of which array it sits in. Never present an expired bonus as available.
  3. If any active_bonuses entry is past-dated, or _meta.last_updated is more than 7 days old, refresh first: python3 scripts/refresh-transfer-bonuses.py (use --dry-run to preview). Then re-read the file.
  4. If the refresh fails (source layout changed, offline), present the bonus WITH its end date and staleness caveat: "the file shows +30% through 2026-07-14, last verified <date> — confirm on the issuer's transfer page before moving points."

When to Use

  • Pricing an award booking that involves a transfer. A 30% bonus to JAL changes the real cost of a oneworld booking through JAL by 23%. The math has to factor in the bonus.
  • Deciding whether to transfer now or wait. If a bonus is expected to recur (see frequent_recurring_bonuses_to_watch), it may be worth waiting.
  • Sanity-checking whether a "good bonus" actually wins. Hotel bonuses especially (Chase UR to IHG 70%, Chase UR to Marriott 50-70%) often look great in headlines but lose to the Chase Travel portal (dynamic Points Boost on CSR/CSP, ~1.5-2.0 cpp on select bookings; not a guaranteed floor). Always pull the actual portal quote and run the math against it, not against an assumed rate.
  • Identifying stackable bonuses. Aeroplan Visa cardholders stack a 10% cardholder bonus on top of any Chase UR to Aeroplan promotion.

When NOT to Use

Data File

data/transfer-bonuses.json. Schema (relevant fields):

FieldDescription
_meta.last_updatedISO date, last refresh
_meta.staleness_daysTTL in days; integrated with scripts/check-data-freshness.sh
_meta.primary_sourcesFrequent Miler, AwardWallet (TPG consulted manually only)
active_bonuses[].bonus_pctThe bonus percentage (e.g., 30 for 30%)
active_bonuses[].ratioMultiplier on standard ratio (1.30 = 30% bonus)
active_bonuses[].standard_ratioBaseline transfer ratio (1.0 = 1:1, 0.75 = 4:3)
active_bonuses[].effective_ratioFinal ratio after bonus (standard_ratio * ratio)
active_bonuses[].end_date_inclusiveLast day the bonus is active
active_bonuses[].confidenceVERIFIED, LIKELY, or UNVERIFIED
active_bonuses[].sources[]Direct URLs to primary source posts
active_bonuses[].notesStrategic context, including "but you shouldn't" warnings
expired_recently[]Bonuses that ended in the last 30 days. Useful for noticing TPG/AW staleness.
frequent_recurring_bonuses_to_watch{}Bonuses that historically recur, with typical % and frequency. Use for "should I wait?" decisions.
decision_rules{}Six concrete rules for how to factor bonuses into a transfer decision.

Refreshing the Data

Run weekly (or on-demand) via:

bash
python3 scripts/refresh-transfer-bonuses.py

The script:

  1. Scrapes Frequent Miler's current point transfer bonuses page (canonical source).
  2. Cross-checks each bonus against AwardWallet.
  3. Sets confidence based on cross-check results: VERIFIED if 2+ sources agree, LIKELY if only Frequent Miler.
  4. Moves expired bonuses to expired_recently[].
  5. Updates _meta.last_updated.

scripts/check-data-freshness.sh flags this file as stale after 7 days.

If the script fails (Frequent Miler's HTML changed, network issue, etc.), fall back to manual update by visiting the two primary sources (Frequent Miler, AwardWallet) and editing the JSON by hand. TPG can be consulted as a sanity check but is not authoritative because it frequently shows expired bonuses as active. NEVER fabricate a bonus. Per the Research Integrity Protocol, if you cannot verify a bonus from a primary source, do not include it.

Show full SKILL.md (437 more words)Show less

Quick Reference Output Format

When the user asks "what bonuses are active right now?", read data/transfer-bonuses.json and produce a markdown table. Sample format (illustrative — pull live values from the data file, not from this example):

| 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 |

(The table format and notes apply across program-pairs. The actual current end dates and effective ratios live in data/transfer-bonuses.json and update weekly via scripts/refresh-transfer-bonuses.py.)

Then below the table:

  • Highlight any redemption the user has actively planned that this bonus accelerates.
  • Mention stackable bonuses if applicable (e.g., Aeroplan Visa cardholder bonus).
  • Flag the "but you shouldn't" cases with reasoning.
  • If a recurring bonus is on the watch list and the user's timeline is flexible, suggest waiting.

Computing Effective Cost

For any award redemption that requires a transfer, compute the effective cost both ways:

Without bonus:

points_required_in_card_currency = miles_required / standard_ratio

With bonus:

points_required_in_card_currency = miles_required / effective_ratio

Example: book a 70k JAL business class award via Capital One during April 2026:

  • Standard: 70,000 / 0.75 = 93,333 Capital One miles
  • With 30% bonus: 70,000 / 0.975 = 71,795 Capital One miles
  • Savings: ~21,538 miles (~$398 at TPG's 1.85 cpp Capital One valuation; 21538 × 0.0185 = 398.45)

Cross-References

  • transfer-partners: standard transfer ratios (no bonus)
  • points-valuations: cpp floor per program; use to sanity-check whether a bonus actually beats portal/cash
  • booking-guidance: the critical "hold before you transfer" rule
  • award-holds: per-program hold rules. Critical because most major Western programs no longer offer holds, which makes timing transfers around bonus expirations more dangerous.
  • seats-aero: verify award availability before transferring
  • partner-awards: which programs ticket which airlines
  • stopovers: if a bonus is active on a stopover-friendly program (e.g. Flying Blue, Aeroplan, Alaska), the effective value of a multi-stop redemption goes up further
  • round-the-world: RTW awards take large transfers; a 30% bonus on the right currency dramatically lowers the effective points cost

Source Hierarchy

When sources disagree:

  1. Frequent Miler is canonical. Their current-point-transfer-bonuses page is updated daily and is the most accurate near-realtime source.
  2. AwardWallet is a strong cross-check. They list the same bonuses with similar accuracy but slightly less frequently updated.
  3. TPG is a weaker source. Their page is updated monthly and frequently shows expired bonuses as "active." Use only for confirmation, not as primary.

If TPG shows a bonus that Frequent Miler doesn't, treat it as expired or never-existed unless you can verify from the original promotion source (the airline's own page).

Avoiding Fabrication

This skill exists in part because LLMs are tempted to confidently invent transfer bonuses. Never list a bonus that isn't in the data file. If the data file is stale (check-data-freshness.sh reports STALE), refresh it before answering. If refresh fails, tell the user "the data file is stale and I can't refresh right now" rather than guessing.

© borski, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/travel-hacking-toolkit/skills/transfer-bonuses of borski/travel-hacking-toolkit.

Open the folder on GitHubat commit db82131

Compare with similar skills

Transfer Bonuses next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Transfer Bonuses compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Transfer Bonuses this skillborski/travel-hacking-toolkit688—~2.5kAutomated safety check: PassMIT
Card Xiaohongshunexu-io/open-design100k—~402Automated safety check: PassApache-2.0
Orbit Cardheygen-com/hyperframes59k1 repos~887Automated safety check: PassApache-2.0
Cardly AutomationComposioHQ/awesome-claude-skills77k3 repos~727Automated safety check: PassNone
Intelligence Transferruvnet/ruflo74k—~877Automated safety check: NotesMIT
Modeling Activation MetricsPostHog/posthog40k—~1.4kAutomated safety check: PassCustom licence

Similar skills

  • Card Xiaohongshu

    nexu-io/open-design

    Xiaohongshu-style knowledge cards, arranged as a swipeable multi-card carousel.

    100k GitHub stars~402 tokensUpdated today
    Auto-check passed
  • Orbit Card

    heygen-com/hyperframes

    HyperFrames block with one feature card that circles a dot sphere, driven by camera and card motion exported from an approved Blender rig.

    59k GitHub starsUsed in 1 repo~887 tokens
    Media & CreativeAuto-check passed
  • Cardly Automation

    ComposioHQ/awesome-claude-skills

    Automate Cardly tasks via Rube MCP (Composio). An agent skill from ComposioHQ/awesome-claude-skills.

    77k GitHub starsUsed in 3 repos~727 tokens
    Productivity & AutomationAuto-check passed
  • Publish or fetch learned patterns across projects via IPFS (Pinata) -- the cross-project pattern transfer that hookstransfer enables

    74k GitHub stars~877 tokensUpdated yesterday
    Auto-check: notes
  • Official

    Build reusable activation models — an activation-rate metric and a per-user/per-account activated flag — on either PostHog data-warehouse views (HogQL) or an external dbt project.

    40k GitHub stars~1.4k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • Social X Post Card

    nexu-io/open-design

    Realistic X post card with engagement metrics (likes, reposts, views), suited to video overlays or shareable image cards.

    100k GitHub stars~696 tokensUpdated today
    Product & Project ManagementAuto-check passed

More from borski/travel-hacking-toolkit

All 46 skills in this repo
  • Amex Travel

    borski/travel-hacking-toolkit

    Search Amex travel portal for cash prices, MR points pricing, IAP discounts, and FHR/THC hotel benefits via Patchright.

    688 GitHub stars~3.1k tokensUpdated 4 days ago
    Auto-check passed
  • Chase Travel

    borski/travel-hacking-toolkit

    Search Chase UR travel portal via Patchright for cash prices, points pricing, Points Boost offers, and Chase Edit hotel benefits.

    688 GitHub stars~2.8k tokensUpdated 4 days ago
    Auto-check passed
  • Deutsche Bahn

    borski/travel-hacking-toolkit

    Deutsche Bahn train schedules, journey planning, and departures across Germany and into neighboring countries (Austria, Switzerland, Netherlands, France, Belgium).

    688 GitHub stars~1.5k tokensUpdated 4 days ago
    Auto-check passed
  • Sutochno

    borski/travel-hacking-toolkit

    Search Sutochno.ru (СУТОЧНО.РУ), a Russian short-term apartment-rental platform where you book directly from owners and pay in rubles (Mir card / bank transfer).

    688 GitHub stars~2.1k tokensUpdated 4 days ago
    Auto-check passed
  • Ticketsatwork

    borski/travel-hacking-toolkit

    Search TicketsAtWork (EBG corporate perks) for hotels, theme park tickets, attractions, and rental cars via Patchright.

    688 GitHub stars~4.2k tokensUpdated 4 days ago
    Auto-check passed
  • Vrbo

    borski/travel-hacking-toolkit

    Search VRBO (Vrbo / Expedia Group) vacation rentals including entire homes, condos, and cabins via Patchright browser automation.

    688 GitHub stars~1.7k tokensUpdated 4 days ago
    Auto-check passed

Questions about Transfer Bonuses

What does Transfer Bonuses do?

Active credit card transfer bonuses from Amex, Chase, Capital One, Citi, Bilt, and Rove. Transfer Bonuses is an agent skill from borski/travel-hacking-toolkit. Active credit card transfer bonuses from Amex, Chase, Capital One, Citi, Bilt, and Rove.

When should I use Transfer Bonuses?

Transfer Bonuses fits situations like: pricing an award booking that involves a points transfer; deciding whether to wait for a better bonus.

How do I install Transfer Bonuses in Claude Code?

Run `npx skills add borski/travel-hacking-toolkit --skill transfer-bonuses -a claude-code`. Or copy the skill folder (plugins/travel-hacking-toolkit/skills/transfer-bonuses in borski/travel-hacking-toolkit) into .claude/skills/transfer-bonuses in your project. Claude Code loads it when a task matches its description.

How do I install Transfer Bonuses in Codex?

Run `npx skills add borski/travel-hacking-toolkit --skill transfer-bonuses -a codex`. Or copy the skill folder (plugins/travel-hacking-toolkit/skills/transfer-bonuses in borski/travel-hacking-toolkit) into .agents/skills/transfer-bonuses in your project. Codex loads it when a task matches its description.

Can I use Transfer Bonuses in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add borski/travel-hacking-toolkit --skill transfer-bonuses -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/transfer-bonuses, .gemini/skills/transfer-bonuses, .github/skills/transfer-bonuses and .opencode/skills/transfer-bonuses in your project.

What does Transfer Bonuses need to run?

Going by SKILL.md and its folder, Transfer Bonuses needs the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Transfer Bonuses access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Transfer Bonuses safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Transfer Bonuses use?

Transfer Bonuses is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Transfer Bonuses use?

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Transfer Bonuses?

Skills that share tags, products or a category with Transfer Bonuses: Card Xiaohongshu (nexu-io/open-design, 100k stars), Orbit Card (heygen-com/hyperframes, 59k stars), Cardly Automation (ComposioHQ/awesome-claude-skills, 77k stars) and Intelligence Transfer (ruvnet/ruflo, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Transfer Bonuses?

borski (a GitHub user) maintains it in borski/travel-hacking-toolkit, which has 688 GitHub stars. The repository holds 46 skills in this directory. The repository was last updated on October 5, 2026.

Source: borski/travel-hacking-toolkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.