Does it really rain more in the west?
Pick your area and see how much rain fell at its nearest weather station, 2022 to 2024.
How much rain does my area get?
Each tube is one area, from the west on the left to the east on the right. A taller tube means more rain a year. Hover or tap a tube for details, and click to pick it.
Is the west really wetter?
Each bar is the average yearly rain of the areas in one of URA's five regions, 2022 to 2024. Your area's region is in red.
Areas in the West region got about 37% more rain a year than areas in the East region (3,214 mm against 2,354 mm).
Was it the same every year?
The West and East region averages for each year, with your area beside them. 2 Jan to 9 Jan 2023 is missing for every station, so 2023 reads a little low everywhere.
Where is it driest?
Each circle is a weather station: bigger and darker means more rain. Your area is shaded, and the line runs to the station we use for it. Hover or tap a circle or an area.
The five driest areas are Bedok, Geylang, Marine Parade, Pasir Ris and Kallang, and all five sit east of the city centre.
Fun finds
The short version
From 2022 to 2024, areas in Singapore's West region got about 37% more rain a year than areas in the East region (3,214 mm against 2,354 mm), but the driest areas are a cluster east of the city centre, not the whole east.
What we did. We added up NEA's 5-minute rain readings for 2022 to 2024 at 50 weather stations, 15.4 million readings in all. Then we matched each of 27 planning areas where people live to its nearest station, and compared areas across URA's five regions: West, North, North-East, Central and East.
What we found. The West region was the wettest and the East region the driest, and the West came out ahead in each of the 3 years. Jurong West got 1.7 times as much rain as Bedok (3,516 mm a year against 2,077 mm), and the five driest areas, Bedok, Geylang, Marine Parade, Pasir Ris and Kallang, all sit east of the city centre. The north-east has wet spots too: Serangoon got more rain than 9 of the 10 Central areas.
What to keep in mind. These are readings from one station near each area, so they are a good guide rather than a doorstep reading. Rain can differ from street to street, some stations have gaps, and three years is a short window. We show where the rain fell, not why. Use the picker to see your own area, then check the numbers and the boring bit below.
By Ben (opens in a new tab). Updated . Data: NEA, Historical Rainfall across Singapore (2022 to 2024), data.gov.sg.
Questions people ask
Does it really rain more in the west of Singapore?
Yes, from 2022 to 2024. Areas in the West region averaged 3,214 mm of rain a year at their nearest weather station, against 2,354 mm in the East region, about 37% more. The West was ahead in each of the 3 years. It is not true for every area, though: the driest areas cluster east of the city centre, and the north-east has wet spots.
Which part of Singapore rains the most?
In our figures for 2022 to 2024, the West region, with 3,214 mm a year on average, followed by the North (2,996 mm), the North-East (2,820 mm) and Central (2,753 mm). The wettest single area was Jurong West, at 3,516 mm a year.
Where is the driest place in Singapore?
Of the 27 areas we looked at, Bedok was the driest, at 2,077 mm a year from 2022 to 2024. The five driest were Bedok, Geylang, Marine Parade, Pasir Ris and Kallang, all east of the city centre. Jurong West, the wettest, got 1.7 times as much.
How much rain does Singapore get in a year?
It depends where you are. From 2022 to 2024, the yearly rain at the station nearest each area ran from 2,077 mm (Bedok) to 3,516 mm (Jurong West). The middle area got 2,961 mm. Use the picker at the top to see your own area.
How many rainy days does Singapore have in a year?
Between 186 and 227, depending on the area. Clementi averaged 227 rainy days a year from 2022 to 2024 and Bedok 186, a gap of 41 days. We count a day as rainy when the station recorded at least 0.2 mm.
Is the east always drier than the west?
No. Serangoon, in the North-East region, averaged 3,151 mm a year, more than 9 of the 10 areas in the Central region. The real dry patch is the cluster of areas east of the city centre, led by Bedok.
How was the rain measured?
By NEA's automatic weather stations. Each one records how much rain fell every 5 minutes. The files for 2022 to 2024 on data.gov.sg hold 20.3 million readings from 78 stations. We kept the 50 stations that had at least 90% of the possible readings in every one of the 3 years.
Why do some areas show the same rainfall?
They share a weather station. The 27 areas use 24 stations, so Bishan and Serangoon read the same one. The farthest an area sits from its station is 2.8 km (Bedok), and the page flags any area 2.5 km or more away.
Can I trust the weather station nearest my home?
It is a good guide, not a doorstep reading, because rain can differ from street to street. 22 of the 27 areas are within 2 km of their station, and 2 are flagged as farther than most. The distance is shown for every area.
Why is the west wetter?
This page shows where the rain fell, not why. Weather stations measure rain, not its causes, so we do not claim a reason.
The numbers behind it
| Area | Region | Nearest station | Distance | Average a year | 2022 | 2023 | 2024 | Rainy days a year |
|---|---|---|---|---|---|---|---|---|
| Jurong West | West | Jurong West Street 73 | 0.8 km | 3,516 mm | 3,700 | 3,534 | 3,315 | 200 |
| Sembawang | North | Woodlands Drive 62 | 2.5 km | 3,257 mm | 3,589 | 3,028 | 3,154 | 216 |
| Clementi | West | Sunset Way | 0.9 km | 3,246 mm | 3,389 | 3,235 | 3,116 | 227 |
| Bukit Batok | West | Bukit Batok Street 34 | 1.1 km | 3,160 mm | 3,280 | 3,164 | 3,035 | 214 |
| Bukit Panjang | West | Bukit Batok Street 34 | 2.5 km | 3,160 mm | 3,280 | 3,164 | 3,035 | 214 |
| Choa Chu Kang | West | Bukit Batok Street 34 | 2.3 km | 3,160 mm | 3,280 | 3,164 | 3,035 | 214 |
| Bishan | Central | Ang Mo Kio Avenue 10 | 1.6 km | 3,151 mm | 3,317 | 3,084 | 3,051 | 210 |
| Serangoon | North-East | Ang Mo Kio Avenue 10 | 1.7 km | 3,151 mm | 3,317 | 3,084 | 3,051 | 210 |
| Bukit Merah | Central | Henderson Road | 1.6 km | 3,054 mm | 3,053 | 3,088 | 3,020 | 203 |
| Ang Mo Kio | North-East | Lower Peirce Reservoir | 2.0 km | 3,046 mm | 3,493 | 3,000 | 2,645 | 218 |
| Jurong East | West | Old Toh Tuck Road | 2.7 km | 3,042 mm | 3,069 | 3,143 | 2,914 | 217 |
| Queenstown | Central | Kent Ridge Road | 0.5 km | 3,033 mm | 3,294 | 3,097 | 2,708 | 211 |
| Bukit Timah | Central | Clementi Road | 1.6 km | 3,016 mm | 3,146 | 3,097 | 2,806 | 218 |
| Tanglin | Central | Bukit Timah Road | 1.2 km | 2,961 mm | 3,178 | 2,979 | 2,725 | 216 |
| Yishun | North | Yishun Ring Road | 1.1 km | 2,927 mm | 3,663 | 2,418 | 2,701 | 211 |
| Hougang | North-East | Hougang Avenue 1 | 0.8 km | 2,895 mm | 3,070 | 2,779 | 2,835 | 187 |
| Toa Payoh | Central | Toa Payoh North | 1.6 km | 2,831 mm | 2,898 | 2,945 | 2,651 | 215 |
| Woodlands | North | Woodlands Avenue 9 | 0.4 km | 2,804 mm | 3,226 | 2,319 | 2,867 | 212 |
| Tampines | East | Tampines Avenue 5 | 1.1 km | 2,580 mm | 2,767 | 2,414 | 2,560 | 188 |
| Punggol | North-East | Punggol Central | 0.3 km | 2,538 mm | 2,946 | 2,313 | 2,354 | 202 |
| Novena | Central | Scotts Road | 1.8 km | 2,537 mm | 2,582 | 2,522 | 2,506 | 208 |
| Sengkang | North-East | Compassvale Lane | 1.2 km | 2,472 mm | 2,750 | 2,282 | 2,384 | 203 |
| Kallang | Central | Nicoll Highway | 1.1 km | 2,430 mm | 2,534 | 2,547 | 2,210 | 200 |
| Pasir Ris | East | Pasir Ris Street 51 | 1.5 km | 2,405 mm | 2,497 | 2,493 | 2,224 | 193 |
| Marine Parade | Central | Poole Road | 1.0 km | 2,364 mm | 2,406 | 2,364 | 2,323 | 203 |
| Geylang | Central | Geylang East Central | 0.8 km | 2,153 mm | 2,443 | 2,030 | 1,986 | 195 |
| Bedok | East | Marine Parade Road | 2.8 km | 2,077 mm | 1,993 | 2,243 | 1,996 | 186 |
| Region | Areas | Average a year | 2022 | 2023 | 2024 |
|---|---|---|---|---|---|
| West | 6 | 3,214 mm | 3,333 | 3,234 | 3,075 |
| North | 3 | 2,996 mm | 3,493 | 2,589 | 2,907 |
| North-East | 5 | 2,820 mm | 3,115 | 2,692 | 2,654 |
| Central | 10 | 2,753 mm | 2,885 | 2,775 | 2,599 |
| East | 3 | 2,354 mm | 2,419 | 2,383 | 2,260 |
The boring bit
Where the data comes from
NEA's Historical Rainfall across Singapore files for 2022, 2023 and 2024 on data.gov.sg, downloaded 3 Oct 2026: a rain reading every 5 minutes from each automatic weather station, 20.3 million readings from 78 stations in all. We kept the 50 stations that had at least 90% of the year's possible readings in each of the 3 years, which leaves 15.4 million readings. Areas are URA's Master Plan 2025 planning areas with at least 20,000 residents in the Census of Population 2020 (27 of 55), grouped by URA's five regions.
What is not claimed
- A station is not your doorstep. Each area uses the one station nearest the middle of the area, and rain can differ from street to street.
- Three years is a short window, not a long-run average. NEA says these files may have missing records and have not been through the quality control used for official climate records.
- Every station is missing 2 Jan to 9 Jan 2023, so 2023 totals read a little low everywhere. The gap is the same for every station, so it does not change which areas are wetter.
- East Coast Park recorded 787 mm on 21 Aug 2022 while no other station got more than 86 mm. We treat a day as a fault when it is over 100 mm and more than 3 times the next-wettest station that day. Two days, both at East Coast Park, were left out.
- We do not say why the west is wetter. The data shows where rain fell, not its causes.
- The population count from 2020 is used only to choose which planning areas appear in the picker.
Coverage
27 areas share 24 stations. 22 of the 27 are within 2 km of their station; the farthest is Bedok, at 2.8 km. Region averages give each area the same weight, even where two areas share a station.
Report an error. Corrections are logged publicly with a date.
How we did it
- Read every 5-minute reading for 2022 to 2024 and removed repeats of the same station and time.
- Added up each station's rain for each day, then counted rainy days (0.2 mm or more).
- Checked for faults. A day over 100 mm at one station and more than 3 times the next-wettest station was left out.
- Kept stations with at least 90% of readings in every year, then averaged their three yearly totals.
- Found the middle of each planning area from URA's boundaries and matched it to the nearest kept station with the haversine formula, the straight-line distance on the Earth's surface.
- Compared regions by averaging the areas in each of URA's five regions.
Show the Python code
import pandas as pd
from math import radians, sin, cos, asin, sqrt
df = pd.read_csv("HistoricalRainfallacrossSingapore2024.csv",
usecols=["timestamp", "station_id", "reading_value"])
df = df.drop_duplicates(["station_id", "timestamp"])
df["day"] = df.timestamp.str[:10]
daily = df.groupby(["station_id", "day"]).reading_value.agg(["sum", "count"])
# a fault: over 100 mm and more than 3x the next-wettest station that day
def faulty(day):
top2 = day["sum"].nlargest(2)
return (top2.iloc[0] > 100) and (top2.iloc[0] > 3 * top2.iloc[1])
yearly = daily.groupby("station_id").agg(mm=("sum", "sum"), readings=("count", "sum"))
kept = yearly[yearly.readings / (366 * 288) >= 0.90]
def km(a, b):
la1, lo1, la2, lo2 = map(radians, (*a, *b))
h = sin((la2-la1)/2)**2 + cos(la1)*cos(la2)*sin((lo2-lo1)/2)**2
return 2 * 6371 * asin(sqrt(h))
What could make it wrong: a station that reads low or high, an area far from its station, or three unusual years. As a check, using only the strictest stations (95% of readings every year) the West still gets about 37% more rain than the East (3,248 mm against 2,378 mm).
No machine learning was needed. The questions were "how much" and "where", which adding up and measuring distance answer directly.
Sources: NEA Historical Rainfall across Singapore (2022 (opens in a new tab), 2023 (opens in a new tab), 2024 (opens in a new tab)), URA Master Plan 2025 Planning Area Boundary (opens in a new tab) and SingStat Census of Population 2020 (opens in a new tab), data.gov.sg, downloaded 3 Oct 2026. Contains information from data.gov.sg made available under the Singapore Open Data Licence.