Trip CalculatorCAUTION
AI-powered travel hacking and search with cash, points, miles, and award flights. Drop-in skills and MCP servers for Claude, Codex, and OpenCode.
Overview
AI-powered travel hacking and search with cash, points, miles, and award flights. Drop-in skills and MCP servers for Claude, Codex, and OpenCode.
fda58ab480fdOBSERVED · 2026-10-14What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: trip-calculator description: Cash vs points trip cost comparison. Factors in transfer ratios, taxes, fees, CPP valuations, and opportunity cost to recommend the best redemption strategy for flights and hotels. category: orchestration summary: Cash vs points decision answered with math. Transfer ratios, taxes, opportunity cost. api_key: None (free, local data) --- # Trip Cost Calculator "Should I pay cash or use points?" answered with math. Compares the true cost of booking with cash versus each available points currency, accounting for transfer ratios, taxes/fees, and the opportunity cost of burning your points. **No API key needed.** Uses local JSON data files plus flight/hotel search results. ## Data Files | File | Purpose | |------|---------| | `data/points-valuations.json` | CPP valuations per program (floor/ceiling) | | `data/transfer-partners.json` | Credit card → loyalty program transfer ratios | ## When to Use - User has both cash prices (from Duffel/Ignav/Google Flights) and award prices (from seats.aero) - User asks "should I pay cash or use points?" - User wants to know the CPP of a specific redemption - User is deciding between multiple booking strategies for a trip ## Core Concepts ### Cents Per Point (CPP) The value you're getting per point when redeeming: ``` cpp = (cash_price - taxes_on_award) / points_needed × 100 ``` A CPP **above** the floor valuation from `points-valuations.json` means you're getting above-average value. Below floor = poor redemption. ### Opportunity Cost Points have value even when unspent. Burning 100K Chase UR at 1.7 cpp (floor) means you're "spending" $1,700 in future travel flexibility: ``` opportunity_cost = points_needed × floor_cpp / 100 ``` If the cash price is lower than the opportunity cost, pay cash. If higher, use points. ### The Decision Framework ``` IF cash_price < opportunity_cost → PAY CASH (points are worth more saved) IF cash_price > opportunity_cost → USE POINTS (good redemption) IF cash_price ≈ opportunity_cost → PAY CASH (preserve flexibility) ``` The tie goes to cash because points maintain optionality. ## Workflow ### Step 1: Gather Prices **Cash prices** (use one or more sources): ``` Duffel API → exact bookable fares Ignav API → fast comparison prices Google Flights → browser-based, includes Southwest ``` **Award prices** (use seats.aero): ``` Seats.aero API → cached availability across 25+ programs Seats.aero web → live search (local Patchright only) ``` ### Step 2: Calculate CPP for Each Award Option For each award option with a corresponding cash price: ``` cpp = (cash_price_usd - award_taxes_usd) / award_miles × 100 ``` Award taxes come from seats.aero trip details (`TotalTaxes` field, in cents) or estimate $5.60 per segment for domestic US, $50-$200 for international (varies wildly by carrier and routing). ### Step 3: Factor in Transfer Ratios If using transferable points (Chase UR, Amex MR, etc.), the effective points cost changes: ``` effective_points = award_miles / transfer_ratio effective_cpp = (cash_price - award_taxes) / effective_points × 100 ``` Example: Flying Blue award at 50,000 miles via Capital One (1:1): - Effective points: 50,000 - Cash price: $1,200, taxes: $100 - CPP: ($1,200 - $100) / 50,000 × 100 = **2.2 cpp** Contrast: a separate Emirates award at 72,500 Skywards miles via Capital One (4:3 ratio, the worst Cap One transfer rate): - Effective points needed: 72,500 / 0.75 = 96,667 Cap One miles - Same $1,200 cash equivalent: ($1,200 - $100) / 96,667 × 100 = **1.14 cpp**. Worse than the Flying Blue path. **Important: pick the best currency for the destination program.** Emirates Skywards has a 1:1 transfer from Bilt Rewards (no fee, instant). For the same Emirates redemption, 72,500 Bilt = 72,500 Skywards = ($1,200 - $100) / 72,500 × 100 = **1.52 cpp**. Always check `data/transfer-partners.json` for every transferable currency the user holds before recommending a transfer — Bilt's 1:1 to Emirates beats Capital One's 4:3 by a wide margin. The skill enforces this in Step 0 (load `transfer-partners` first to enumerate every viable path). ### Step 4: Compare Against Valuations Load valuations from `points-valuations.json`: ```bash jq -r '.credit_card_points.chase_ultimate_rewards | "Chase UR: floor \(.floor)cpp, ceiling \(.ceiling)cpp"' data/points-valuations.json ``` | Rating | CPP vs Floor | Meaning | |--------|-------------|---------| | Excellent | > ceiling | Exceptional redemption. Book it. | | Good | > floor | Above average. Solid use of points. | | Fair | 0.8× to 1× floor | Mediocre. Consider cash instead. | | Poor | < 0.8× floor | Bad deal. Pay cash. | ### Step 5: Present Comparison **Always use markdown tables.** #### Flight: SFO → NRT Business Class, Aug 15 | Option | Program | Miles/Points | Taxes | Cash Equiv | CPP | Rating | |--------|---------|-------------|-------|------------|-----|--------| | Cash | — | — | — | $4,200 | — | — | | United via Chase UR | United | 88,000 UR | $45 | $1,496 | 4.72 | Excellent | | Aeroplan via Chase UR | Aeroplan | 75,000 UR | $120 | $1,275 | 5.44 | Excellent | | Alaska via Bilt | Alaska | 55,000 Bilt | $30 | $935 | 7.58 | Excellent | | Virgin Atlantic → ANA via Chase UR | VA | 52,500 UR | $200 | $893 | 7.62 | Excellent | **Recommendation:** - **Best value:** Virgin Atlantic at 7.62 cpp, but $200 in taxes and must call to book. - **Best convenience:** Aeroplan at 5.44 cpp, bookable online, low taxes. - **Cash price ($4,200) vs opportunity cost ($893-$1,496):** Points win decisively. Use points. ### Step 6: Round-Trip and Multi-Segment For round trips, calculate each direction separately. Award pricing is usually one-way, cash pricing is often round-trip. Make sure you're comparing apples to apples: ``` If cash = round-trip $4,200: Compare against: outbound award + return award e.g., 75K out + 75K return = 150K total vs $4,200 cash CPP = ($4,200 - $240 taxes) / 150,000 = 2.64 cpp ``` ## jq Recipes ###
Trust audit
CAUTIONgrade B · trust 89/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | WARN |
| L1 | Static analysis of the code | NA |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (5)
.agents/skills
.claude/skills
.opencode/skills
skills
AGENTS.md
Gates applied: no_behavioural_pass.
fda58ab480fdfull audit observations/trust-audit/skill/borski__trip-calculator.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-14 | fda58ab480fd | CAUTION | B | 89 | first audit |
Questions
What does the Trip Calculator skill do?
AI-powered travel hacking and search with cash, points, miles, and award flights. Drop-in skills and MCP servers for Claude, Codex, and OpenCode.
Is Trip Calculator safe to install?
With care. The audit graded it B (89/100) and found 5 things worth knowing before you trust this skill, listed below with the exact line each was found on.
What can Trip Calculator access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
How current is this page?
The grade is for one exact copy of the source (fda58ab480fd), read on 2026-10-14. The repository is watched, and a new audit runs when it changes — this is the first audit.