The best-month score
Each month gets a score from three parts. Higher is better.
- Warmth. A mean temperature between 17 and 24 °C scores 1. Below or above that, the score falls in a straight line, to 0 at 8 °C and at 30 °C.
- Dryness. 1 minus the rain per day divided by 5 mm. 5 mm a day or more scores 0.
- Crowds. The month's overnight stays divided by the busiest month's. A month at the peak loses 70% of its score.
Score = warmth × dryness × (1 - 0.7 × crowds).
Why the mean temperature and not the daily high? The climate source's "hottest" figure is an extreme, not a normal afternoon. It made summer look far hotter than it feels and pushed the top pick into winter. The mean is closer to a day out.
Example: Porto in July averages 19.9 °C and 0.4 mm of rain a day. See every month for Porto.
Not in the score: sea temperature, daylight, festivals and prices. We have no sourced value for them yet.
How busy a city is
We use monthly overnight stays in registered tourist lodging from INE, Statistics Portugal, per municipality. We average each calendar month over the full years 2023, 2024 and 2025, then divide by the busiest month. The busiest month is 100%.
Lodging prices
Inside Airbnb publishes snapshots of listings with their asking price. For each parish we take the median price per night for whole flats and for private rooms. A median means half the listings ask less and half ask more. We leave out a parish or a room type with too few listings.
These are asking prices on Airbnb-style listings. They are not what guests paid, and not hotel rates.
Trip costs
The calculator adds three sourced parts and one part you type in:
- Lodging: the nightly price × nights × rooms, one room or flat per two travellers.
- Local transport: per traveller per day, the cheaper of four single rides or one day pass, plus the airport trip both ways and the travel card. Fares come from the official price page.
- Sights: the adult ticket price for each sight you tick, read on the seller's own page.
- Food: you type it. There is no open source for restaurant prices in a city, so we do not invent a default.
What we never do
- Print a number without a source and a date.
- Use a search engine's summary as a source. They have been wrong on fares we checked.
- Rank something we have not measured.
- Put an affiliate link inside a table, or without a label.


