Skip to content
Home Projects Typhoon Analysis
🌀 Disaster Analysis Python Data Visualization 2014-2020 Dataset

Two Thirds Of Every Pacific Storm Comes Here

957 storms entered Philippine waters across the 45 finalised satellite-era seasons — 66.2% of every storm in the western Pacific, the busiest basin on earth. 80 of them reached category 5. This is a track archive, so it says nothing about what any of them cost.

21.27
Storms in Philippine waters per year, 1980–2024
66.2%
Of all western Pacific storms reach them
80
Reached category 5, about 1.78 a year
315
km/h, the record, shared by 4 storms
Key Takeaways

The archive holds 4,105 western Pacific storms since 1884, and 2,905 of them passed through Philippine waters. But only 957 can be used for any rate: intensity is missing for 100.0% of pre-1945 observations, so a storm count from 1884 charts the arrival of satellites rather than any change in the weather.

  • Across the 45 finalised seasons from 1980, 21.27 storms a year entered Philippine waters — between 13 in 2010 and 28 in 1985. That is 66.2% of everything the basin produced.
  • 80 reached category 5, 8.36% of them, about 1.78 a year. But 54.44% never became a typhoon at all, which is the half of the distribution that does not make the news.
  • Four storms share the intensity record at 170 knots — 315 km/h: Haiyan, Meranti, Goni, Surigae. Three of the four are from the last decade, and 17 of the 25 most intense are since 2000 — which is partly real and partly better instruments, and this page does not separate them.
  • August is the peak month with 17.29% of storms, and July to October carry 63.25%. But no month is empty: February, the quietest, still has 12 across 45 years. There is no safe season.
  • IBTrACS carries no deaths, no damage and no people affected. The previous version of this page led with all three; none of them are in this archive, and the page does not estimate them.

Why This Page Starts In 1980

The archive goes back to 1884 and the temptation is to use all of it. The intensity column says why that would be wrong: before anyone was measuring, there is nothing to measure.

Storms recorded per season, and the share of observations with no wind speed

Before 1945

100.0%

Of observations carry no wind speed — 1,324 storms with no intensity of any kind. A check asserts none of them is given one.

1945 to 1969

43.3%

Aircraft reconnaissance. Better, and still missing more than two observations in five.

Since 1980

19.2%

Satellite era. Every rate, trend and ranking on this page uses only these 957 storms, out of 2,905 that reached these waters in total.

Twenty-One A Year, And Two Thirds Of The Basin

Storms entering the box each season since 1980. The count moves around a lot — between 13 and 28 — and the page draws no trend line through it, because 45 seasons of a noisy count is not enough to establish one.

Storms entering Philippine waters per season, 1980 onward

Per season

21.27

Mean across the 45 finalised seasons from 1980.

Range

13 to 28

2010 was the quietest and 1985 the busiest, at 28.

Share of the basin

66.2%

Of every storm the western Pacific produced. This is the single most important number about Philippine geography.

Most Of Them Are Not Typhoons

Each storm counted once, at its own peak category, so a slow storm does not outweigh a fast one. The distribution has two humps and the lower one is bigger.

Storms by peak Saffir-Simpson category, 1980 onward

Never a typhoon

54.44%

Peaked below category 1: depressions and tropical storms. They still flood.

Category 4 or 5

21.84%

209 storms. The tail that does the damage.

Category 5

80

8.36% of the total, about 1.78 a year across the period.

The Record Is Shared By Four

The most intense storms to enter these waters since 1980, by peak one-minute sustained wind. Note what this ranking is sensitive to: satellite intensity estimation improved substantially over the period, so a list weighted toward recent decades is partly a real signal and partly a measurement one.

Peak sustained wind, the 25 most intense storms since 1980

The record

170 kt

315 km/h, shared by 4 storms: Haiyan, Meranti, Goni, Surigae.

Three of the four

since 2013

The record-holders cluster in the last decade, the most recent in 2021. Whether that is intensification or better measurement is not something this archive can settle.

Of the top 25

17 since 2000

Same caveat, more sharply. The Dvorak technique for estimating intensity from satellite imagery was revised repeatedly across this period.

No Safe Month

Storms by calendar month across the whole satellite era. Most tropical basins have a closed season. This one does not, and a check asserts all twelve months are present so a quiet month cannot silently drop off the chart.

Storms by calendar month, 1980 onward

August

17.29%

The peak month, with 184 storms across 45 years.

July to October

63.25%

Four months carrying nearly two thirds of the year.

January to April

7.24%

The quiet quarter, and still not zero. February is the quietest month of all with 12 storms in 45 years.

How Many Reach Land

Share of storms in the box each season that record a landfall observation. This is the weakest measure on the page and the reason is worth stating: IBTrACS gives distance to the nearest land, not which country's land, so a storm counted here may have made landfall on Taiwan or Vietnam.

Share of storms recording a landfall, by season

Overall

48.7%

466 of the storms in these waters record a landfall.

Worst season

76.2%

In 1980.

Quietest

25.0%

In 2022. The year-to-year swing is larger than any trend in it.

What This Archive Does Not Contain

The page this replaced was built on impact figures. IBTrACS has none, and that gap is the most important thing to be clear about.

No deaths, damage or people affected

Not one column. The previous version of this page led with 43.9 million people affected and 4.2 million houses damaged, sourced to NDRRMC and DROMIC. Those are real organisations publishing real reports, and this analysis does not read them — so the figures are gone rather than restated. A check asserts the impact count stays at zero.

The box is not the PAR

5-25N, 115-135E is the bounding rectangle of the Philippine Area of Responsibility, which is a polygon. Counts here slightly exceed true PAR entries. The rectangle is used because it is reproducible from two lines of SQL; the difference is stated rather than hidden.

Landfall is not attributed to a country

The archive records distance to the nearest land. A storm with a landfall observation inside the box may have come ashore in Taiwan, Vietnam or southern China. Section 6 is a share of storms recording any landfall, not a count of Philippine landfalls, and it says so on the page rather than only here.

International names, not local ones

PAGASA assigns its own names inside the PAR, which is why the 2013 storm is Yolanda in the Philippines and Haiyan everywhere else. IBTrACS carries the international name and this page uses it throughout.

No trend is claimed

45 seasons of a count that swings between 13 and 28 does not establish a direction, and the intensity ranking is confounded by measurement improvement. The page reports the distribution and declines the trend.

Method

One fetcher over a 109 MB archive, with the interesting decisions in the filtering.

Only finalised tracks are read

TRACK_TYPE is filtered to 'main', which drops spur and provisional duplicates of the same storm. It also excludes the current season, whose tracks are still provisional, so the latest season present is finalised by construction — and that is how the last usable year is derived rather than written into the script, where it would go stale.

The units row is dropped by parsing, not by counting

IBTrACS puts column names on line 1 and units on line 2. Skipping two lines loses the header; the second row is dropped instead by requiring SEASON to parse as an integer, which is true of every real row and of no units row.

Each storm is counted once, at its own peak

The intensity distribution groups by storm id and takes the maximum category. Counting observations instead would weight a slow-moving storm above a fast one, and a check asserts the distribution sums to the storm count rather than the observation count.

Category and wind speed are checked against each other

Category 5 begins at 137 knots. A check fails on any storm flagged 5 below that, or above it and not flagged 5, because two columns coming apart produces a ranking that still looks plausible.

The satellite threshold is a named constant

ERA = 1980, used for every rate and stated on the page. It is a judgement, and the checks record what it is a judgement about: one asserts that seasons before 1940 carry essentially no intensity data, so if that ever stopped being true the threshold should be revisited.

The archive is cached, not re-downloaded

109 MB that NOAA revises far less often than this page is rebuilt. It is not committed.

Key Findings & Summary

  • 66.2% of every western Pacific storm enters Philippine waters — 21.27 a year across the 45 finalised seasons since 1980, ranging from 13 to 28.
  • 80 reached category 5, 8.36% of the total — but 54.44% never became a typhoon at all.
  • The record is 170 knots, 315 km/h, shared by 4 storms: Haiyan, Meranti, Goni, Surigae. 17 of the 25 most intense are since 2000, which is partly instruments and partly weather.
  • August peaks at 17.29% and July to October carry 63.25%, but no month is empty — February still has 12.
  • Only 957 of the 2,905 storms that have reached these waters can be used for any rate, because 100.0% of pre-1945 observations carry no intensity at all.
  • This is a track archive. It contains no deaths, no damage and no people affected, and this page estimates none.

Sources & Citations

Every figure on this page traces to one of these, through a CSV in data/ph-typhoon/. Each is checked against its source query on every build.

NOAA NCEI IBTrACS v04r01 (western Pacific)Primary

243,281 six-hourly observations of 4,105 western Pacific storms from 1884: position, one-minute sustained wind, Saffir-Simpson category, and distance to the nearest land — A track archive with no impact data of any kind — no deaths, damage or people affected. Intensity is missing for 100% of pre-1945 observations and 43.3% of 1945-69, so every rate and trend here starts at 1980.

PAGASA tropical cyclone informationPrimary

The Philippine authority for the Area of Responsibility and for local storm names — Cited for provenance and for the PAR definition. pagasa.dost.gov.ph is not reachable from a script here, and IBTrACS carries international names — Haiyan rather than Yolanda.

NDRRMC / DROMIC situational reportsSecondary

Disaster response reports carrying people affected, houses damaged and barangays served — The source the previous version of this page cited for its four impact figures. It is named here because impact is the obvious question this page cannot answer; none of its numbers are used, and IBTrACS contains none of them.

Have Data But Need Help?

If you have raw data and want to transform it into meaningful insights like this analysis, let's connect. I can help with data cleaning, visualization, and actionable recommendations.

Have a dataset you'd like analyzed or need a mini AI project as a starter guide? Send me your suggestions!

Connect on LinkedIn Dev.to Articles 💬 Messenger

Prefer the plain-English version?

I wrote a companion post — “Two Thirds Of Every Pacific Storm Comes Here” — in simple, everyday words.

Read the blog post →