SeasonScore

How SeasonScore works

Every city gets a score from 0 to 10 for each month. The same function produces the number on the home page, the city page, the 12-month timeline and the comparison table, so a city and month always show the same score. Formula version: seasonscore-v3.0.

What goes into the score

FactorWeightData
Weather comfort50%NASA POWER (MERRA-2 reanalysis), 2015–2024. Temperature comfort (45%), humidity via dew point (25%), rainfall total and heavy-rain days (30%).
Air quality20%CAMS global model via Open-Meteo, 2025 (days 1–14 of each month). Typical PM2.5 for the month, scored against WHO 2021 guideline levels.
Seasonal hazards20%Reviewed city hazard profiles, sourced seasonal hazards (e.g. northern Thailand’s February–April burning-season smoke from Pollution Control Department data, and monsoon landslides in Bhutan from UK FCDO advice), tropical-cyclone season climatology by ocean basin (coastal and lowland places only; inland and highland cities such as Lilongwe or Mexico City are excluded), and heavy-rain / extreme-heat signals from the climate normals. Year-round hazards such as earthquakes are listed but don’t change month-to-month scores.
Safety baseline10%Country-level baseline, identical in every month: our editorial rating for everyday risks (crime, scams, roads), capped by the US State Department advisory level, which is refreshed from the official feed on every update. A country is never shown as safer than that advice: Level 2 caps it at “Increased caution”, Level 3 shows “High caution” and Level 4 “Very high caution”.

Air-quality cap: if typical PM2.5 for the month is above 50 µg/m³ (unhealthy for everyone), the score is capped at 6.9 (“Good”), however nice the weather is.

If a factor has no data for a city, it is left out and the other weights are re-balanced. The page says which factor is missing. We never fill gaps with invented numbers.

Labels

8.5+ Excellent · 7.5+ Very good · 6.5+ Good · below 6.5 Fair. “Fair” is the lowest label. A lower score means trade-offs (heat, rain, haze), not that you shouldn’t go.

Seasons

Where a national weather service defines named seasons, we use them: the Thai Meteorological Department (cool, hot and rainy seasons), Meteorological Service Singapore (monsoon and inter-monsoon periods), the Japan Meteorological Agency (including the June–July rainy season) and the India Meteorological Department. Elsewhere, seasons are classified from the climate data: tropical wet/dry, arid hot/cool, or four temperate seasons, flipped for the Southern Hemisphere.

Historical vs live

Seasonal scores are historical. They describe a typical month, not this year’s weather. Live information appears in a separate “Right now” panel, with a source and an updated time for each part:

  • Current weather and 7-day forecast — Open-Meteo
  • Current US AQI and PM2.5 — CAMS model via Open-Meteo
  • Disasters within ~300 km in the last 14 days — GDACS (UN/European Commission) and USGS earthquakes
  • Reviewed alerts (for example major flooding) — added by hand with a source, an issue date and a review-by date, then hidden automatically
  • Headlines — Google News, last 7 days, unverified third-party content

If a feed fails, the panel says so. It never shows placeholder content in its place.

Known limitations

  • Climate normals are modelled on a grid of roughly 50 km, which smooths out coasts and valleys (Lima’s model highs were 6 °C too warm, Heraklion’s 6 °C too cold). For 360 cities we replace modelled highs and lows with weather-station normals from the national weather service; the rest are adjusted for elevation (6.5 °C per km, capped at 1 km).
  • Gridded rainfall can be far off: about 1.5× too wet in Singapore and several times too wet on desert coasts like Lima. For 348 of 459 cities we therefore use station rainfall normals from the national weather service (mostly 1991–2020, collected from Wikipedia climate tables), and rescale the model’s rain-day counts to match. The other cities still use modelled rainfall.
  • Extreme heat: in months with average highs of 36 °C or more, dry air and no rain can't lift the weather score much, because a 43 °C desert afternoon is hard going however low the humidity. The weather score is capped by how severe the heat is.
  • Grey skies: a few coasts stay under low cloud for months with almost no rain (Lima's winter garúa). Where average cloud cover is above about 80% and rain is light, up to 2.5 points come off the weather score and the page says why.
  • Air quality for Riyadh and Jeddah is left out: the CAMS model's desert-dust readings there are far above what ground stations report, so we don't score air for those two cities rather than show numbers we don't trust.
  • Photos: city banners come from Wikimedia Commons, mostly the Wikivoyage page banner for each city. Only freely licensed images are used (public domain, CC0, CC BY, CC BY-SA and similar). Each photo shows its author and licence and links to its Commons page.
  • Country flags: Twemoji graphics (CC BY 4.0) via the country-flag-emoji-polyfill font (MIT), so flags also show on Windows.
  • Holidays & crowds: national public holidays for 2026–2028 from the open-source holidays calendar (including China's swapped working days, Indonesia's joint-leave days and Brazil's Carnival). Three or more days off in a row (holiday plus weekend) is shown as a long weekend, five or more as a holiday week when locals travel. Ramadan is shown as the 30 days before Eid al-Fitr and marked approximate. Japan's Obon and year-end break come from the Japan National Tourism Organization. Regional holidays and school breaks are not included.
  • Nature calendar: cherry-blossom and autumn-leaf dates come only from official or named sources — the Japan Meteorological Agency (1991–2020 normals and recent years), the Japan Weather Association (tenki.jp) usual-peak dates and its 2026 forecast, the Korea Meteorological Administration, Weather i (Korea) and the US National Park Service. Snowy days are weather-station normals. Cities without such data show no nature calendar rather than a guess.
  • Scores rely on rainfall totals and heavy-rain days (10 mm or more), not light-rain days.
  • Air quality comes from a single year of global model data (CAMS). It shows seasonal patterns, but it can underestimate local crop- and forest-burning smoke (e.g. northern Thailand in March–April) and overestimate desert dust. Always check the live reading.
  • The safety and hazard profiles are editorial and still being reviewed city by city.

← Back to SeasonScore