We tell you what a month is usually like in a place, so you can choose where to be. It's not a forecast: it's eleven years of real weather history, boiled down to one typical month.
Every day from 2015 to 2025, measured where nomads actually stay (Canggu's beach strip, not the middle of Bali).
We average each month across the years and keep the spread, so you also see what a dry year and a wet year look like.
How good that month is for you, based on rain, warmth and cloud.
A forecast can't tell you this months ahead. Eleven years of history can.
Rain counts most, because it's what ruins a stay. Rain and cloud get full marks up to your limit, then lose points the more they go over it. Temperature gets full marks at your ideal and loses points the further the day-and-night average is from it. You can set your own. By default: up to 90 mm of rain a month, up to 60% cloud, and an ideal of about 28 °C.
A rain day is a day with enough rain to get you wet: at least 2 mm, or 4 mm in the tropics. Light drizzle doesn't count, so the number matches what you'd notice on the ground. We checked it against real rain gauges at 49 places.
Weather records from the European weather centre (ECMWF), via Open-Meteo.
CHIRPS, which combines satellite rain measurements with rain gauges.
Copernicus, the EU's air-quality service.
The method behind every number on NomadWeather: where each figure comes from, how it is computed, how we checked it, and where it is weak.
Last updated: 29 Oct 2026.
NomadWeather describes what a typical month is like in each destination, not a forecast. For every place we take eleven years of daily weather (2015 to 2025) at the destination's own coordinates and turn it into month-by-month averages and ranges. We do not trust a single source: temperatures, humidity, cloud, wind and the day-by-day rain pattern come from the ECMWF weather model archive via Open-Meteo; monthly rain totals come from CHIRPS, which blends satellite rainfall with rain-gauge records; air quality comes from the Copernicus (CAMS) air-quality model. Our rain numbers were tested against real rain gauges and long-term weather-station averages at our destinations, and where a rain source fails that test for a place, we use the other one and say so. A "rain day" is a day with real rain (at least 2 mm, 4 mm in the tropics), not a day the model drizzled. Every temperature, rain and air-quality figure written in our guides is checked automatically against the stored data before a page can be published.
| What you see | Source | Resolution | Period | How we compute it |
|---|---|---|---|---|
| Average daily high and low (°C) | ECMWF model archive via Open-Meteo | 9 km (IFS) from 2017, 25 km (ERA5) 2015-2016 | 2015-01 to 2025-11 | mean of the daily values per calendar month |
| Rain total (mm per month) | CHIRPS v3 (satellite + rain gauges); Open-Meteo where CHIRPS is not used (section 6) | 0.05° ≈ 5 km | 2015-01 to 2025-11 | each year's total for the month, averaged over the years |
| Rain days | Open-Meteo daily rain | as above | as above | days with ≥ 2 mm (≥ 4 mm in the tropics), as a share of the month's days, averaged over the years (section 5) |
| Humidity, cloud cover, wind | Open-Meteo | as above | as above | daily means, averaged per month |
| Ranges ("a dry year / a wet year") | same sources | 10th, 25th, 75th and 90th percentiles: for rain, rain days, cloud, humidity and wind, of the yearly values for that month; for temperatures, of the individual days in that month | ||
| Air quality (NomadWeather Air Quality Index, PM2.5, dust, haze) | Copernicus CAMS air-quality model via Open-Meteo | about 45 km globally, finer over Europe | from Aug 2022 | daily means of hourly values, averaged per month (section 8) |
| NomadScore (how good a month is for you) | the numbers above | section 9 | ||
| "Dry" / "Wet" month labels | monthly rain total | Dry under 30 mm, Wet over 150 mm |
The period is eleven years (ten for December, as the window ends in November 2025): long enough to smooth out single odd years, recent enough to reflect today's climate.
Each destination is one coordinate, chosen where nomads actually stay (for example Canggu's beach strip, not the centre of Bali). The weather model gives values for grid boxes; Open-Meteo picks the land box nearest the point and closest in height, so a coastal town is never described by open sea. CHIRPS gives the 5 km cell containing the point. If we change a destination's coordinates, we refetch and rebuild its data in the same step; it is never changed on the page alone.
For each destination and each calendar month, every year in the window is summarised first (that year's average high, rain total, share of rain days, ...), then the years are averaged. The spread between years becomes the ranges (percentiles). Two consequences: one freak year moves the average only by a tenth, and a month that is "usually dry but sometimes very wet" shows as such in its range.
Rule: a rain day is a day with at least 2 mm of rain, or 4 mm in the tropics (within 23.5° of the equator). One rule is used everywhere on the site.
Why: weather models spread light drizzle over almost every day, especially in the tropics. Counting every day with more than 0.1 mm (what many weather sites effectively do, and what we did until October 2026) made Canggu show 25 rain days in August, when the rain gauge at Denpasar airport records 2-4.
Evidence: compared day by day with real rain gauges near 49 destinations (37 complete NOAA records 2015-2024, 12 tropical airports' own weather reports 2022-2024), counting the gauge's days with 1 mm or more (the standard weather-service definition):
| Rule | Average error, rain days per month | Tropics | Elsewhere |
|---|---|---|---|
| any rain (more than 0.1 mm) | 10.0 (always too many) | 13.9 | 7.7 |
| 2 mm, 4 mm in the tropics (ours) | 2.0 | 3.4 | 1.1 |
Rule: a month's rain total is the CHIRPS v3 total at the destination (satellite rainfall estimates blended with rain-gauge records by the Climate Hazards Center, UC Santa Barbara), for every destination within 55° of the equator with a complete record. Open-Meteo's model totals are used beyond 55° (CHIRPS ends at 60°) and where a check against gauges showed CHIRPS failing for that place. The exceptions, each with its reason:
| Exception | Why |
|---|---|
| Madeira | steep small island: CHIRPS gives 2,030 mm a year at Funchal, the island's official stations 574-817 mm |
| Canggu (Bali) | against Denpasar airport's own records for the same years, CHIRPS reads its dry season 2-3 times too wet (October 253 mm against 75); Uluwatu's CHIRPS matches the same gauge |
| Ubud (Bali) | CHIRPS shows the same too-wet dry season as Canggu next door (June 205 mm, October 251); Ubud has no gauge of its own to check it, so we keep the model |
Why: compared with gauges and long-term station averages at 83 destinations, the weather model's rain totals were typically 26 % off, in both directions: small flat islands far too dry (Nassau 41 % short, Barbados 38 %), mountain basins and slopes too wet (Mexico City 59 % over, Maui's Kihei 2.6 times). No single correction can fix errors that point both ways.
Evidence:
| Monthly rain from | Typical error | More than 30 % off (of 83) | Wrong Dry/Wet months per place |
|---|---|---|---|
| weather model (Open-Meteo) | 26 % | 18 | 2.0 |
| CHIRPS, with the rule (ours) | 13 % | 3 | 1.2 |
These come from the ECMWF archive via Open-Meteo, as daily means (highs and lows from the daily maximum and minimum). We have not yet tested them against weather stations the way we tested rain. Model temperatures are generally close at the scale of a town and weaker on steep slopes and very small islands, where one grid box mixes very different terrain. Cloud cover is the model's own estimate of the share of sky covered. Until October 2026 a bug restarted a month's counting on each dry day before its first rain, which skewed humidity (by up to 8 percentage points) and cloud cover (by up to 17) in dry months; it is fixed and tested.
The NomadWeather Air Quality Index (0-100, higher is better) combines three daily values from the Copernicus (CAMS) air-quality model: fine particles (PM2.5), desert dust, and aerosol optical depth (overall haze, which also captures smoke). Each is converted to a 0-100 "badness" on a fixed scale (PM2.5: 5 µg/m³ very good, 15 moderate, 25 unhealthy for sensitive groups, 35 unhealthy, 55 very unhealthy; dust: 10 µg/m³ good, 50 bad; haze: 0.1 clear to 1.2 very hazy), then weighted (haze 50 %, PM2.5 30 %, dust 20 %; weights re-balance when one is missing). Monthly values average the days since August 2022. Our burning-season pages (Chiang Mai, Bali, Hanoi, Bangkok) show PM2.5 week by week from the same model. Model air quality shows well when regional smoke and dust arrive and clear, but on bad days it reads well below the cities' own monitors, and it is weaker at street level and in single valleys: trust the timing, and treat the level as a floor. We say so on those pages.
For each month the score combines rain, temperature and cloud (rain 45 %, temperature 35 %, cloud 20 %), compared with your preferences (by default: highs and lows averaging around 28.5 °C, up to 90 mm of rain, up to 60 % cloud; you can change these). Each part scores 100 inside your range and falls off gradually outside it (rain reaches 0 at three times your limit; temperature at 15 °C from your ideal, with an extra penalty beyond that). The score uses the rain totals, temperatures and cloud described above, so it improved with the source changes of October 2026.
Weather data: Open-Meteo (CC BY 4.0) and ECMWF. Rain totals: CHIRPS (Climate Hazards Center, UC Santa Barbara). Air quality: Copernicus Atmosphere Monitoring Service via Open-Meteo. More on each in Data Sources.