Gardening Your Travel Plans

Gardening your travel plans

When you book a hotel, you lock in a price — and then the market keeps moving. Rates drop, award prices shift, and the room you reserved months ago quietly becomes available for less. Almost nobody goes back to check, because checking is tedious: log into four different loyalty programs, pull up each reservation, re-price every stay, do the points-vs-cash math.

So reservations sit there like an untended garden. What you planted in January is whatever it is by June — unless someone walks the rows.

I got tired of being the someone, so I built a tool that does the walking.

What it does

The Hotel Rate Tracker is a small Chrome extension that keeps a list of your upcoming hotel reservations and, on demand, re-shops every one of them against today's prices. When it finds your exact stay cheaper — in cash or points — it tells you. You rebook by hand (or don't). It caught a ~$50 drop on a Copenhagen booking within its first weeks, and it's been weeding ever since.

A few things it understands that a naive price check doesn't:

  • Cash and points, side by side. Points options are converted to dollars

using your valuations (mine are Hyatt 1.7¢, Marriott 0.8¢, Hilton/IHG 0.5¢ — all editable), so "60,000 points vs. $412" becomes a real comparison.

  • All-in totals only, done honestly. Taxes included, always — and where a

hotel chain's data can't prove tax inclusion, the finding is flagged "amounts may be pre-tax — verify on site" rather than quietly guessing. No teaser rates, no fake precision.

  • Your room, your bed. It compares like against like and flags options

that are a different room type than what you booked, so a "saving" that's actually a downgrade is visible for what it is.

  • Noise control. Findings have to clear a real savings floor before they

surface, so you're not rebooking to save $3.

  • Free-night certificates. A small ledger tracks your certs — which expire

soon, whether a committed cert is being used well, and whether a cert would do more work on a different upcoming stay.

  • Alternate properties. Sometimes the deal is the hotel next door. You can

register sister properties and it shops them with the same dates.

There's also a full-screen dashboard: a "needs attention" strip up top (expiring certs, rate drops, swap opportunities — most important first), filters, and all your reservations grouped by check-in month. It's the difference between checking a list and actually surveying the garden.

The rules it lives by

These were design decisions, not afterthoughts:

  1. Detection only. It never books, rebooks, cancels, or touches a

reservation. Every finding is a suggestion; your hands do everything.

  1. Your logins, your browser. It runs inside your own logged-in sessions

on the hotel sites. No credentials are entered, stored, or sent anywhere — if a session expires, it opens the sign-in page and waits for a human.

  1. Your data stays on your machine. Reservations live in one JSON file

you choose the location of. There's no server, no account, no analytics, nothing phoned home.

  1. Be a polite guest. It paces itself — one or two runs a day, gentle

timing — because hammering a loyalty program's API is how accounts get flagged. I learned this the hard way: Hyatt's bot detection briefly locked me out, and rather than fight it with spoofing tricks, I paused Hyatt automation entirely, waited, and came back at a gentler cadence. Account safety beats automation, every time. That stance is built into the defaults.

What it covers

All four major chains are automated — Marriott, IHG, Hilton, and Hyatt. It reads upcoming reservations straight from your account and shops each one. Anything the automation misses — a booking made through a corporate portal, say — can be added by hand, and you can turn any chain off entirely.

It currently works for reservations booked in your own loyalty accounts. It doesn't see OTA bookings (Expedia et al.), and it only sees the chains above.

Setting it up

You'll need desktop Chrome (or a Chromium browser like Edge or Brave) and about ten minutes:

  1. Get the code. github.com/bangkoklee/hotel-reservation-tracker Unzip it

somewhere permanent — Chrome loads it in place.

  1. Load it. Go to chrome://extensions, flip on Developer mode, click

Load unpacked, and select the chrome-extension folder. Pin the icon.

  1. Choose where your data lives. Open the popup and click **Connect vault

file**. Pick any folder you like — I keep mine in a synced folder, which also lets two Chrome profiles (or two people) share one database; the extension merges changes automatically. Or skip this entirely and it uses Chrome's built-in storage.

  1. Set your points values in the popup, if mine don't match yours.
  2. Sign in to whichever hotel sites you use, in that browser, and hit

Check my rates. The first run builds your garden; after that it's just maintenance.

If you travel with a partner and bookings are spread across two people's loyalty accounts, that works too — run the extension in a second Chrome profile where they're logged in, point both profiles at the same vault file, and label which account each chain belongs to. The tracker keeps everyone's entries straight.

Honest limitations

  • It's a hobby project, load-unpacked, no auto-updates. When I fix something,

you'll re-download and hit reload at chrome://extensions.

  • Hotel websites change constantly, and scrapers break. The tracker watches

for silent failures and warns you when a chain hasn't reported in days, but expect occasional chain-specific hiccups.

  • It sees whoever is logged in. If your spouse's account holds the booking,

it needs that login active in a browser profile running the extension.

  • Foreign-currency conversions and points valuations are approximations.

Verify the exact numbers before you rebook anything.

  • Desktop Chrome-family browsers only — no Firefox, Safari, or mobile.

Why "gardening"?

Because the frame changed how I think about it. A reservation isn't a finished transaction — it's a living thing planted in moving soil. Rates are weather. Certs are seeds with expiration dates. The work isn't booking; it's tending: walk the rows, prune what's overpriced, transplant when something better appears, harvest the value before it expires.

The tool just makes the walking part automatic. Happy gardening.


Questions or bugs → GitHub issues.