Methodology
Every recommendation on this site is the output of a deterministic calculation you could redo by hand. This page explains the rules, in order, with nothing hidden.
1. Prices come from a versioned database
Fares, pass prices, attraction tickets and benefit rules are stored as versioned records with a source, a verification date and a validity window. Optimizers read only these records. We never hardcode prices in code, and we never invent a missing price — if a fare can't be verified, the affected journey is excluded and we tell you.
2. Candidates are enumerated exhaustively
For rail passes we generate a no-pass baseline plus every legal option: every usage-date combination for Select passes, every start date for Consecutive passes, group (saver) and individual pricing, and hybrid "pass + separate tickets" plans. For time-based attraction passes we test every possible activation moment implied by your plan — including scenarios that skip an included transport benefit when redeeming it would activate the pass too early. No greedy shortcuts; the candidate set is complete within each product's rules.
3. Cheapest is cheapest — recommended is explained
The cheapest valid candidate always wins on money. We may recommend a different candidate only when it lies within a configured near-optimal margin (a bounded fixed-won and percentage threshold) and is meaningfully more convenient — fewer transfers, less schedule risk. Convenience is never converted into hidden money; when the recommendation differs from the cheapest option we show both.
4. Only planned usage counts
A pass benefit you wouldn't use has zero value in our math. Marketing "total value" figures play no role anywhere.
5. Freshness and confidence
Each data category has staleness thresholds. Slightly old data still calculates but carries a warning; data past the hard threshold can never produce a high-confidence recommendation. You will always see the confidence level with the result.
6. Money can't buy ranking
Optimization code has no access to affiliate or advertising configuration — the packages are physically separated and an automated test proves that changing commission values cannot change any recommendation. Booking links, where present, appear only after the result is computed. See also the affiliate disclosure.
7. No AI in the math
No language model computes prices, savings, eligibility, activation timing or rankings. Recommendation text is rendered from fixed templates filled with calculated numbers.
Where the data comes from: data sources.