Install
openclaw skills install @voronindenis5/airline-miles-value-rankerUse when deciding how to spend frequent-flyer miles or credit-card points — comparing redemption options, judging a "deal," choosing between pay-with-miles, booking awards directly, or transferring points to partners — computes cents-per-point for each option with fare-comparison math, checks against 12 known partner sweet spots, prices the cash-fare floor, and issues BURN / HOARD / NEVER verdicts so a 300k-point balance never gets flushed at 0.4¢.
openclaw skills install @voronindenis5/airline-miles-value-rankerPoints and miles die twice: they expire, and they die quietly when you spend 50,000 of them on a $200 flight — a 0.4¢-per-point redemption that a transfer partner would have turned into $1,000+ of value. The average leisure redeemer doesn't compute cents per point (CPP) at all; the airline apps make sure the worst option is the easiest button to press ("Pay with miles — 25,000 points!" on a $180 ticket).
This skill turns every redemption decision into arithmetic:
CPP = (cash fare − taxes/fees paid on award) / points spent × 100
It ranks your actual options, compares them to anchor values (~1.0–1.5¢ for major currencies), flags the sweet spots worth chasing, and says BURN / HOARD / NEVER plainly.
Don't use for: hotel points (different economics — nightly value vs fare comparison; the CPP math transfers but the anchors don't), or cash-back cards (no redemption complexity — just take 2%).
The comparison fare is what you would actually pay for that exact itinerary in that exact cabin:
For each candidate: (fare − copay) / points × 100. The script
(scripts/miles_ranker.py evaluate) does this and ranks them.
| Currency | Weak | Fair | Good | Excellent |
|---|---|---|---|---|
| Amex MR / Chase UR (transferable) | <1.0¢ | 1.0–1.25¢ | 1.25–1.8¢ | >1.8¢ |
| Airline miles (UA/DL/AA class) | <0.8¢ | 0.8–1.2¢ | 1.2–1.6¢ | >1.6¢ |
| Hotel points (context only) | <0.5¢ | 0.5–0.8¢ | 0.8–1.2¢ | >1.2¢ |
A transferable point spent at 1.0¢ via portal credit is the floor — spending transferrable points BELOW the portal rate is a pure loss with extra steps.
The script ships a sweet-spot table; treat it as a starting map:
--ceiling-fare vs --realistic-fare.python3 scripts/miles_ranker.py evaluate \
--label "SFO→NRT business" --points 75000 --copay 42 \
--realistic-fare 2600 --ceiling-fare 6800
python3 scripts/miles_ranker.py evaluate \
--label "Same route economy" --points 40000 --copay 42 \
--realistic-fare 850 --ceiling-fare 850
python3 scripts/miles_ranker.py compare
The compare view prints the ranked table with verdicts, so the decision is a one-glance read.