How we verify prices
A number only appears if there is a local price, a currency, a source URL, and a date. Miss any of those and the cell stays empty.
Where the numbers come from
Most rows are read from Apple’s in-app catalog for that country. Some come from the vendor’s own pricing page, or from Apple’s regional product pages. I do not copy other comparison sites, and I do not fill a missing country from its neighbors.
Dollars vs local currency
The local figure is the one that was verified. USD in the ranking is a conversion from that figure, using a public FX table from the same day — the ECB list where it covers the currency, and another public euro-base table for the rest. You still pay in local currency. A rank can move when the exchange rate moves even if the sticker did not.
Empty cells
Blank means that storefront has not been checked, or the source did not return a usable price. It does not mean the plan is free there. I also do not publish a “cheapest country” for a service with no dated rows.
If a number looks wrong
Email miles@whereischeap.com with the service, the country, the figure you saw, the URL, and the date. I re-check the storefront. If it moved, it goes up with a new date, not a silent edit. Recent moves:price changes.