How NomadWeather works out a month

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.

From weather history to your score

1. 11 years of daily weather

Every day from 2015 to 2025, measured where nomads actually stay (Canggu's beach strip, not the middle of Bali).

2. One typical month

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.

3. A score from 0 to 100

How good that month is for you, based on rain, warmth and cloud.

Same heat, very different month

Canggu in August

93/ 100
Average high:
28 °C
Rain:
56 mm
Rain days:
about 4

Canggu in January

37/ 100
Average high:
29 °C
Rain:
313 mm
Rain days:
about 19

A forecast can't tell you this months ahead. Eleven years of history can.

What goes into the score

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.

  • 85-100 Excellent
  • 70-84 Good
  • 50-69 Okay
  • 30-49 Poor
  • under 30 Very poor

What counts as a rain day

Drizzle
a few drops
doesn't count
Shower
you get wet
counts
Downpour
you stay in
counts

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.

Where the numbers come from

Temperature, cloud, humidity

Weather records from the European weather centre (ECMWF), via Open-Meteo.

Rain totals

CHIRPS, which combines satellite rain measurements with rain gauges.

Air quality

Copernicus, the EU's air-quality service.

How we keep it honest

  • We compare our rain numbers with real rain gauges and change the method when they disagree.
  • Every weather number in our guides is checked against our data before the page goes live.
  • We say where we're weaker: very small islands, steep mountains, and smoke on the worst days, when our air numbers read low.
Full method, for the curious

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.

1. In one paragraph

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.

2. What we show and where it comes from

What you seeSourceResolutionPeriodHow we compute it
Average daily high and low (°C)ECMWF model archive via Open-Meteo9 km (IFS) from 2017, 25 km (ERA5) 2015-20162015-01 to 2025-11mean 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 km2015-01 to 2025-11each year's total for the month, averaged over the years
Rain daysOpen-Meteo daily rainas aboveas abovedays 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, windOpen-Meteoas aboveas abovedaily means, averaged per month
Ranges ("a dry year / a wet year")same sources10th, 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-Meteoabout 45 km globally, finer over Europefrom Aug 2022daily means of hourly values, averaged per month (section 8)
NomadScore (how good a month is for you)the numbers abovesection 9
"Dry" / "Wet" month labelsmonthly rain totalDry 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.

3. Where the numbers are taken: one point per destination

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.

4. From daily values to a typical month

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.

5. Rain days: real rain, not model drizzle

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):

RuleAverage error, rain days per monthTropicsElsewhere
any rain (more than 0.1 mm)10.0 (always too many)13.97.7
2 mm, 4 mm in the tropics (ours)2.03.41.1

6. Rain totals: satellite plus rain gauges

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:

ExceptionWhy
Madeirasteep 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 fromTypical errorMore than 30 % off (of 83)Wrong Dry/Wet months per place
weather model (Open-Meteo)26 %182.0
CHIRPS, with the rule (ours)13 %31.2

7. Temperature, humidity, cloud and wind

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.

8. Air quality

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.

9. NomadScore: how good a month is for you

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.

10. How we check ourselves

  • Validation against measurements. Rain days against 49 rain gauges; rain totals against gauges and long-term station averages at 83 destinations. The validation scripts can be rerun.
  • Rebuild checks. After every rebuild, checks recompute rain days and rain totals from the stored daily and monthly data; they must match the published numbers to within 0.1.
  • Every weather figure in a guide's text is checked. Guides are built from a dated copy of the data; the build refuses to publish a page if any temperature, rain total, rain-day figure or PM2.5 value in its text is more than 1 away from the stored value for a place and month the page names.
  • Automated tests for the rain-day rule, the month aggregation and the choice of rain source.
  • Backups of the climate tables are taken before data rebuilds.

11. Known limits

  • One point per destination. Islands and regions with strong local differences (Mauritius ranges from about 920 mm a year on the west coast to 2,740 mm in the centre; Bali's coast against Ubud) are described at our point only.
  • Rain days on small trade-wind islands (Nassau, San Juan, Barbados): the model has too little rain there, so rain days are probably undercounted even though rain totals now come from CHIRPS.
  • Bali. Canggu's and Ubud's rain totals are model values (CHIRPS failed there) and still read somewhat wet in the dry season against the airport gauge; Uluwatu's are CHIRPS and match it.
  • Air quality on bad days. The model reads well below city monitors during smoke episodes; the pattern is reliable, the level is a floor.
  • Temperatures not yet tested against stations (rain was).
  • Shared gauges. CHIRPS uses many of the same gauges we test it against, so far from any gauge it is less accurate than our test shows.
  • Not a forecast. Averages of 2015-2025; any given year can differ, which is what the ranges show.
  • User-added places get the same model data, and CHIRPS rain totals where the method allows once they have been loaded.

Credits

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.

What changed

  • 29 Oct 2026: rain days counted as days with ≥ 2 mm (≥ 4 mm in the tropics), checked against 49 gauges; a bug that restarted dry months' counts fixed; monthly rain totals from CHIRPS v3 for 94 of 99 destinations, checked against 83 references, with Madeira, Canggu and Ubud kept on the model by evidence; every guide, pin and carousel rebuilt. This page written.
  • Dec 2025 - Oct 2026: daily data stored per destination; month averages rebuilt from it; coordinate changes require a rebuild.