Agent skill

premium-hotels

Search Amex Fine Hotels & Resorts (FHR), The Hotel Collection (THC), and Chase Sapphire Reserve Hotel Collection (Chase Edit) properties by city. Compare credits, benefits, and stacking opportunities across programs.

Stars 387
Forks 22

Install this agent skill to your Project

npx add-skill https://github.com/borski/travel-hacking-toolkit/tree/main/skills/premium-hotels

SKILL.md

Premium Hotel Programs

Search 4,659 premium hotel properties across three credit card programs. Find which hotels offer complimentary benefits, compare credits, and identify stacking opportunities where a hotel appears in multiple programs.

No API key needed. All data is local JSON files in data/.

When to Use

  • User asks "what FHR hotels are in Stockholm?"
  • Comparing hotel options for a trip and want to maximize card benefits
  • Looking for hotels where Amex FHR + Chase Edit credits stack
  • Checking if a specific hotel is in any premium program

Programs

Program Card Required Key Benefits Properties
FHR (Fine Hotels & Resorts) Amex Platinum $100+ property credit, room upgrade, noon check-in, 4pm checkout, daily breakfast for 2, complimentary wifi 1,807
THC (The Hotel Collection) Amex Platinum $100 property credit on 2+ night stays for dining/spa/resort activities 1,299
Chase Edit (Sapphire Hotel Collection) Chase Sapphire Reserve $50 annual hotel credit, elevated experience perks. Select Hotels add $250 one-time 2026 credit + 10x points. 1,553

Stacking

Hotels in BOTH FHR/THC AND Chase Edit can stack benefits. Book through one program and use the other card's credits separately. Look for hotels that appear in multiple programs.

Searching by City

FHR and THC (coordinate-based)

FHR and THC properties have lat/lng coordinates. Search by bounding box around a city.

Find properties near a city (adjust lat/lng and radius as needed):

bash
# Stockholm (59.33, 18.07) - search within ~0.15 degrees (~15km)
LAT=59.33; LNG=18.07; R=0.15
jq --argjson lat $LAT --argjson lng $LNG --argjson r $R \
  '[.properties[] | select(
    .coordinates.lat > ($lat - $r) and .coordinates.lat < ($lat + $r) and
    .coordinates.lng > ($lng - $r) and .coordinates.lng < ($lng + $r)
  ) | {name, program, credit}]' data/fhr-properties.json

jq --argjson lat $LAT --argjson lng $LNG --argjson r $R \
  '[.properties[] | select(
    .coordinates.lat > ($lat - $r) and .coordinates.lat < ($lat + $r) and
    .coordinates.lng > ($lng - $r) and .coordinates.lng < ($lng + $r)
  ) | {name, program, credit}]' data/thc-properties.json

Chase Edit (text-based)

Chase Edit properties have text locations, not coordinates. Search by name or location text.

bash
# Stockholm
jq '[.properties[] | select(
  (.location // "" | test("Stockholm|Sweden"; "i")) or
  (.name // "" | test("Stockholm"; "i"))
) | {name, location}]' data/chase-edit-properties.json

Common City Coordinates

City Lat Lng Radius
Oslo 59.91 10.75 0.15
Bergen 60.39 5.32 0.1
Stockholm 59.33 18.07 0.15
Copenhagen 55.68 12.57 0.15
Paris 48.86 2.35 0.15
London 51.51 -0.13 0.2
Tokyo 35.68 139.76 0.2
New York 40.71 -74.01 0.15
San Francisco 37.77 -122.42 0.15
Las Vegas 36.17 -115.14 0.15

For cities not listed, use the coordinates from the route context or look up on Google Maps.

Combined Search (Recommended Workflow)

For any city, run all three searches and combine into one table. Flag properties in multiple programs.

bash
# Example: Oslo
LAT=59.91; LNG=10.75; R=0.15

# FHR
FHR=$(jq --argjson lat $LAT --argjson lng $LNG --argjson r $R \
  '[.properties[] | select(
    .coordinates.lat > ($lat - $r) and .coordinates.lat < ($lat + $r) and
    .coordinates.lng > ($lng - $r) and .coordinates.lng < ($lng + $r)
  ) | {name, program: "FHR", credit}]' data/fhr-properties.json)

# THC
THC=$(jq --argjson lat $LAT --argjson lng $LNG --argjson r $R \
  '[.properties[] | select(
    .coordinates.lat > ($lat - $r) and .coordinates.lat < ($lat + $r) and
    .coordinates.lng > ($lng - $r) and .coordinates.lng < ($lng + $r)
  ) | {name, program: "THC", credit}]' data/thc-properties.json)

# Chase Edit
CHASE=$(jq '[.properties[] | select(
  (.location // "" | test("Oslo|Norway"; "i")) or
  (.name // "" | test("Oslo"; "i"))
) | {name, program: "Chase Edit", credit: "See Chase portal for current credit"}]' data/chase-edit-properties.json)

# Combine
echo "$FHR" "$THC" "$CHASE" | jq -s 'add | group_by(.name) | map({
  name: .[0].name,
  programs: [.[] | .program] | join(" + "),
  credits: [.[] | select(.credit != null) | .credit] | join(" | "),
  stacking: (length > 1)
}) | sort_by(.name)'

Output Format

Always use markdown tables. Flag stacking opportunities.

Hotel Programs Credits Stacking?
The Thief FHR US$100 property credit No
Sommerro FHR + Chase Edit US$100 property credit YES
Amerikalinjen THC $100 dining/spa credit (2+ nights) No
Grand Hotel Oslo Chase Edit See Chase portal No

After the table

  • Flag which hotels appear in multiple programs (stacking opportunity)
  • Note the key benefit differences: FHR includes breakfast + upgrade + late checkout. THC is credit only on 2+ nights. Chase Edit varies.
  • If booking through FHR, mention the Amex Platinum $200 annual FHR credit (up to $200 statement credit per calendar year)
  • If booking through Chase Edit, mention the $50 annual hotel credit and whether "Select Hotels" $250 credit applies (one-time 2026 benefit)
  • Link to Amex reservation page if available in the data

Data Sources

  • data/fhr-properties.json (1,807 properties, coordinates + Amex reservation links)
  • data/thc-properties.json (1,299 properties, coordinates + Amex reservation links)
  • data/chase-edit-properties.json (1,553 properties, text locations)

Data sourced from Google My Maps KML exports by Scott at 美卡指南 (US Card Guide). Last updated Dec 2025. Property lists change periodically. Always verify current availability on the Amex or Chase booking portal before making decisions.

Notes

  • A hotel can be in both FHR AND THC. This is rare but possible. The data reflects what Amex lists.
  • Chase Edit "Select Hotels" are a subset with enhanced benefits (10x points + $250 one-time credit). Not all Chase Edit properties are Select Hotels.
  • FHR benefits apply even when paying the standard rate. No special rate needed.
  • THC $100 credit requires a minimum 2-night stay.
  • Some properties have seasonal availability in these programs.

Expand your agent's capabilities with these related and highly-rated skills.

borski/travel-hacking-toolkit

chase-travel

387 22
Explore
borski/travel-hacking-toolkit

atlas-obscura

Search Atlas Obscura for weird, wonderful, and hidden gem places near any destination. Find the interesting stuff, not boring plaques. Search by coordinates, get full details with descriptions and images.

387 22
Explore
borski/travel-hacking-toolkit

rapidapi

Search Google Flights Live and Booking.com Live via RapidAPI. Use as a secondary source for flight cash prices and hotel availability/pricing. Triggers on "Booking.com", "booking prices", "RapidAPI", "secondary flight search", "hotel prices on Booking", or when SerpAPI results need a second opinion. Also useful for vacation rental pricing.

387 22
Explore
borski/travel-hacking-toolkit

google-flights

Search Google Flights for flight prices and schedules using browser automation. Use when user asks to search flights, find airfare, compare prices, check flight availability, or look up routes. Covers ALL airlines including Southwest (which no API can reach). Triggers include "search flights", "find flights", "how much is a flight", "flights from X to Y", "cheapest flight", "flight prices", "airfare", "flight schedule", "nonstop flights", "when should I fly".

387 22
Explore
borski/travel-hacking-toolkit

ignav

Search for flights using the Ignav API. Fast REST API for flight prices and booking links. Use alongside other flight sources for price comparison. Always include in every flight search. Triggers on any flight-related search request.

387 22
Explore
borski/travel-hacking-toolkit

awardwallet

Query AwardWallet loyalty program balances, status, and history. Use when discussing points, miles, travel rewards, airline status, or trip planning on points. Triggers on "how many points", "miles balance", "elite status", "loyalty program", "AwardWallet", "what points do I have", "transfer partners", or any question about points/miles inventory.

387 22
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results