Evidence
Where the data comes from
One program per observation
Each result is attributed to the single program that reported it, with the adapter and parser versions that produced it.
The source's own clock
Where a program publishes when it last checked, that timestamp travels with the observation and is shown instead of ours.
The airline decides
The loyalty program's booking page is authoritative. If it disagrees with us, it is right and we are stale.
Provenance
What we record with every result
These are the fields kept with each observation, so any figure can be traced back to the response it came from.
| Field | What it is for |
|---|---|
| program | Which loyalty program reported this. A result is always attributed to one program; we never merge two sources into a single blended answer. |
| acquisition_method | How the observation was obtained. Different methods have different reliability, and the method is recorded rather than assumed. |
| adapter_version | The version of the integration that produced it. If an adapter changes behaviour, results produced before and after are distinguishable. |
| parser_version | The version of the parser that read the response. Pinned and tested against captured fixtures, so a source changing its markup fails a test instead of silently changing a number. |
| fetched_at | When we retrieved it. This clock is ours, and it is the newer one. |
| source_checked_at | When the source itself says it last checked, where it publishes that at all. This clock belongs to the program, it is usually older, and it is the one we lead with. |
| source_host | The host the response came from, recorded for auditing. |
| point_of_sale | The market the query was made in. Award pricing and availability can differ by point of sale, so it is never left implicit. |
| locale | The language and formatting the source responded in, which affects how numbers and dates were parsed. |
Seat counts
Reported at exactly the confidence they arrived with
Programs publish seat availability in several different ways, and the differences are not cosmetic. An exact count is a count. A capped display — where a program stops counting at a threshold — is a lower bound, and is shown as “at least N”. Some programs will only confirm that a party of a given size can be booked, without publishing a number at all. Some publish nothing.
Each of those becomes a different label, generated by a single function shared with the search results, so the wording cannot drift between this page and a real result. A lower bound is never rounded into a count, and an unknown count never implies a seat.
The five cases are set out side by side on how it works.
Caching
Reused where it is safe, marked where it is not
An observation inside its freshness window is reused rather than re-fetched. That keeps searching affordable and keeps traffic to a source within what it permits — but it means some of what you see was gathered earlier, so the age is always displayed.
Past that window, an answer may still be served while a fresh one is fetched. When that happens it is labelled stale, with a warning icon and the word “stale” in the badge, not merely a different colour.
Nothing in this product is described as live. There is no real-time award-inventory feed; there are only observations, each with an age and an owner.
Source health
“Didn’t answer” is not “no seats”
Every search reports the state of each program it consulted, with the time that state was checked.
- Responded normally
- The program answered our search in full.
- Degraded
- It answered, but slowly or incompletely. Some options may be missing.
- Unavailable
- It did not answer. We cannot say whether it has award seats for this search.
- Not enabled
- The program is not currently available in this product. Today this applies to every program.
Availability is not guaranteed until booked with the airline.
Every figure here is what a loyalty program’s own systems reported at the time shown alongside it. Seats, points prices and cash charges can change or disappear between this page and checkout, so confirm the booking with the airline before transferring any points.
We do not sell tickets, hold inventory, place holds or take payment for a reward seat. There is no affiliate commission attached to any result, so nothing in the ranking is bought.
Rights come before code
An integration is only built against a source we have researched and documented, and it stays at research-only status until commercial approval is granted. That is why the coverage page lists a completed integration that you still cannot use.
Found a figure that looks wrong? Tell us what you saw and where, and we will trace it back to the observation that produced it: report an inaccuracy.