Ethan Gayton
← All projects

Flight Price Monitor

Tracks award points and cash fares for saved trips, alerts on new lows and target prices, and limits smaller drops to one alert a day.

225
automated tests
4
alert rules
22
airline mileage programs
486
airports you can search

Why I built it

Good award seats and cheap fares come and go, and checking a dozen dates across a few airline programs every day isn’t realistic. The alert tools I tried were either silent or so noisy I muted them. I wanted something that watches the exact trips I care about and only alerts me when a price is worth acting on.

How it works

You save a “watch”: a route, a range of dates, a cabin, which mileage programs to check, and optional target prices. Round trips are set as a trip length (say, nine days) instead of a fixed return date, so watching a range of departure dates doesn’t cost extra requests.

It plans its requests around each data source. Award prices come back for a whole date range in one call. Cash fares have to be fetched one date at a time, so it paces itself to one request every three seconds and makes cash tracking optional. Requests go one after another on purpose, because one source rejects requests made at the same time.

Under the hood it’s a small FastAPI app with a SQLite database, a scheduler for polling and a weekly summary, and a plain HTML and JavaScript front end.

The rules

The alerts follow four rules, which I wrote down before writing any code:

  1. A new watch stays quiet at first. It just records prices, so you don’t get an alert for every date at once.
  2. A new all-time low always alerts. These are rare, so I always want to hear about them.
  3. Hitting your target price alerts once, not again on every check while it stays low.
  4. Ordinary drops are limited to one alert a day, so a price that slides a little each time doesn’t flood you.

The rules live in one function that doesn’t depend on the clock or the database, which makes each one easy to test on its own. The full suite has 225 tests, and none of them need an internet connection.

What I learned

The first version was a Discord bot with a lot of features. After using it for a while, I realized I only needed a few watches and alerts I could trust. So I rebuilt it as a small web app. I kept the code that talks to the fare sources and rewrote the core around those four rules.

Try it

This is the project’s real front end, with the backend replaced by sample data in your browser. Search any route, open a watch’s price history, or hit Check now to run one more check. The history and the alerts below come from running made-up fares through the real alert rules.

Flight Monitor sample dataWatches ↗ ·Search ↗

The alerts it sent

Two weeks of Discord alerts for those same fares, formatted by the project’s own code. The grey “held back” lines are small drops the once-a-day rule kept quiet.

#flight-alertsWebhook alerts from the watch engine
Flight MonitorAPPSep 27, 12:00 AM
Spring in London
Price
$821 → $805 ($16 off, 2%)
Date
2027-03-05
Cabin
Economy
Program
google_flights
Airlines
Delta, Virgin Atlantic
Routing
Connecting
Spring in London
Price
$816 → $797 ($19 off, 2%)
Date
2027-03-06
Cabin
Economy
Program
google_flights
Airlines
Delta, Virgin Atlantic
Routing
Connecting
Spring in London
Price
27,000 pts → 25,500 pts (1,500 pts off, 6%)
Date
2027-03-07
Cabin
Economy
Program
virginatlantic
Taxes
55.76 USD
Seats
3
Airlines
VS, DL
Routing
Nonstop
engine logSep 27, 12:00 AM
Held back 4 ordinary drop alerts for watch #3: one already went out in the last 24 hours.
Flight MonitorAPPSep 27, 12:00 PM
Holiday Honolulu
Price
$602 → $570 ($32 off, 5%)
Date
2026-12-18
Cabin
Economy
Program
google_flights
Airlines
Southwest, United
Routing
Nonstop
Holiday Honolulu
Price
$683 → $662 ($21 off, 3%)
Date
2026-12-19
Cabin
Economy
Program
google_flights
Airlines
Southwest, United
Routing
Nonstop
Holiday Honolulu
Price
$753 → $708 ($45 off, 6%)
Date
2026-12-20
Cabin
Economy
Program
google_flights
Airlines
Southwest, United
Routing
Connecting
Spring in London
Price
30,000 pts → 29,500 pts (500 pts off, 2%)
Date
2027-03-06
Cabin
Economy
Program
virginatlantic
Taxes
59.49 USD
Seats
3
Airlines
VS, DL
Routing
Nonstop
Spring in London
Price
$974 → $919 ($55 off, 6%)
Date
2027-03-07
Cabin
Economy
Program
google_flights
Airlines
Delta, Virgin Atlantic
Routing
Connecting
Tokyo in November
Price
$4,085 → $4,033 ($52 off, 1%)
Date
2026-11-10
Cabin
Business
Program
google_flights
Airlines
Delta, JAL
Routing
Connecting
Tokyo in November
Price
77,500 pts → 74,500 pts (3,000 pts off, 4%)
Date
2026-11-11
Cabin
Business
Program
alaska
Taxes
60.93 USD
Seats
6
Airlines
JL
Routing
Connecting
Tokyo in November
Price
$4,294 → $4,205 ($89 off, 2%)
Date
2026-11-11
Cabin
Business
Program
google_flights
Airlines
Delta, JAL
Routing
Nonstop
Tokyo in November
Price
$4,107 → $3,963 ($144 off, 4%)
Date
2026-11-12
Cabin
Business
Program
google_flights
Airlines
Delta, JAL
Routing
Connecting
Tokyo in November
Price
77,000 pts → 73,000 pts (4,000 pts off, 5%)
Date
2026-11-13
Cabin
Business
Program
alaska
Taxes
122.45 USD
Seats
6
Airlines
JL
Routing
Connecting