# Changelog of Flight Price Tracker — Cheapest Day to Fly & Airfare Alerts (`kestrel/flight-price-tracker`) Actor

- **URL**: https://apify.com/kestrel/flight-price-tracker/changelog.md
- **Full Actor documentation**: https://apify.com/kestrel/flight-price-tracker.md

## Changelog

### 2026-08-30

- Reliability: a run that cannot act on its input — a URL from the wrong site, a name nothing resolves to, an empty target list, a number outside the documented range — now ends cleanly with the reason on the run card instead of as a failed run. Nothing is charged in either case; a blocked or throttled source still fails loudly.
- Store listing: moved into the categories buyers actually browse (the old `Business` category has no Store page).

### 1.0 — 2026-08-29

First release.

- One `fare` row per route and departure day: the cheapest itinerary Google Flights lists that day, with price, airline, stops, times, duration, layovers, CO2 and the Google URL that reproduces the search.
- `days` sets the window (1–60 consecutive departure days); `tripLengthDays` prices every day as a round trip of that length instead of one-way.
- `rank_in_window` and `cheapest_in_window` rank the days of each route — the cheapest day to fly is rank 1.
- `maxPrice` alert mode: only days at or under the line are delivered, and the filter runs before billing, so an alert run that finds nothing costs nothing.
- Relative dates (`"30 days"`, `"6 weeks"`, `tomorrow`) so a scheduled run always looks the same distance ahead.
- Billing: pay per delivered fare row — at most one per route and day. Days with no fare, filtered days, failed days and `status` rows are free, and nothing a spending limit refused is ever delivered.
- Reliability: a day priced in the wrong currency is reported as an error rather than billed; per-route `status` rows and a `SUMMARY` record carry counts, the cheapest fare and its day; runs under limited permissions.
