Typhoon Kalmaegi
Typhoon Kalmaegi, known in the Philippines as Typhoon Tino, was a deadly and devastating tropical cyclone that affected portions of the central Philippines, particularly in Cebu, and later struck Central Vietnam as one of the strongest typhoons on record in the area during early November 2025. The deadliest typhoon to strike Visayas since Super Typhoon Odette in 2021, Kalmaegi was the twenty-fifth named storm and eleventh typhoon of the 2025 Pacific typhoon season.
Kalmaegi originated from an area of convection on October 30. The following day, it was later classified as a tropical depression as the Joint Typhoon Warning Center issued a Tropical Cyclone Formation Alert at 02:00 UTC. At 12:00 UTC, the Japan Meteorological Agency upgraded the system to a tropical storm and assigned it the name Kalmaegi, as environmental conditions became increasingly favorable for development. The JTWC followed suit at 21:00 UTC, also designating it as a tropical storm. The system entered the Philippine Area of Responsibility at 05:30 PHT on November 2 and was named Tino by the Philippine Atmospheric, Geophysical, and Astronomical Services Administration. At 12:00 UTC, the JMA upgraded Kalmaegi to a severe tropical storm. By 03:00 UTC on November 3, PAGASA, the JTWC, and the JMA all upgraded the system to typhoon status, citing a highly favorable environment for rapid intensification.
Tropical Cyclone Wind Signal No. 4, indicating potential winds of, was raised in numerous areas. Kalmaegi generated strong winds and flooding that left at least 269 people dead, 523 injured and 113 others missing in the Philippines, mostly in Cebu, with 13 additional fatalities in Thailand and six more in Vietnam.
Meteorological history
Kalmaegi originated from an area of strong convection that developed on October 30, located about east-southeast of Yap. Satellite imagery showed cycling deep convection over a poorly organized low-level circulation center. The disturbance was embedded in a favorable environment for tropical cyclogenesis, with low wind shear and warm sea surface temperatures. On the following day, the JMA classified the system as a tropical depression as its LLCC slowly consolidated. The JTWC noted that the depression remained in an environment conducive for further development, characterized by light vertical wind shear and warm SSTs. Around 05:00 PHT on November 1, PAGASA also classified the system as a tropical depression.The JTWC issued a TCFA at around 02:00 UTC on November 1, citing a high probability of further development as the system moved west-northwestward. The JTWC noted a broad low-level circulation center with convection concentrated north of the center and some curved banding features. Favorable environmental conditions persisted, supported by good poleward outflow. As the LLCC gradually consolidated and convective banding wrapped around its northern semicircle, the system began tracking northwestward along the southwestern edge of a subtropical ridge. At 06:00 UTC, the JMA noted that, while the system remained in a favorable environment, the limited organization of its structure caused it to maintain its intensity for several hours. The JTWC later designated the system as 31W at 09:00 UTC. At around 12:00 UTC, the JMA upgraded 31W to a tropical storm, assigning it the name Kalmaegi. The JTWC observed a symmetric central dense overcast enveloping the LLCC and described the system as compact as it tracked along the southern periphery of a subtropical ridge located to the northeast. By 21:00 UTC, the JTWC also classified Kalmaegi as a tropical storm, citing an expanding CDO and a highly favorable environment for further intensification. The storm later entered the PAR at 05:30 PHT on November 2 and was given the local name Tino. Satellite imagery showed robust radial outflow and intense central convection, with the deepest convection concentrated over the northern and western semicircles.
At 17:00 PHT, PAGASA upgraded Kalmaegi to a severe tropical storm. The JMA noted a brief slowdown in intensification before the system resumed strengthening. According to the JTWC, deep convective bursts developed over the center, with a banding feature forming to the north. Microwave imagery showed a small, forming eye and strong convection displaced slightly to the south, indicating increasingly favorable conditions for further intensification. Three hours later, the JMA also upgraded Kalmaegi to a severe tropical storm. The JTWC noted two distinct clusters of deep convection forming an oblong-shaped CDO. By 18:00 UTC, two lobes became apparent: the southeastern lobe was centered over the low-level circulation and served as the primary region of deep convection, while the northwestern lobe exhibited strong poleward outflow. At 03:00 UTC on November 3, the JTWC upgraded Kalmaegi to a typhoon, citing a consistently favorable environment and strong outflow supported by trade winds. Multispectral satellite imagery showed a compact core with deep convection wrapping closely around the center. At the same time, the JMA and PAGASA also upgraded the system to a typhoon when it was approximately north-northeast of Sonsorol. The JTWC later noted that deep convection wrapped around the core but an eye failed to develop due to persistent northeasterly wind shear, despite otherwise favorable conditions.
On November 4, Kalmaegi intensified into a Category 2-equivalent typhoon before making landfall in Silago, Southern Leyte at around 00:00 PHT. It then weakened back into a Category 1 typhoon due to land interaction. The system went on to make three additional landfalls in Borbon, Cebu, Sagay, Negros Occidental, and San Lorenzo, Guimaras at 05:10 PHT, 06:40 PHT, and 11:10 PHT, respectively. The repeated landfalls caused Kalmaegi to slightly weaken and slow as it moved into the Iloilo Strait. At 13:20 PHT, Kalmaegi made its fifth landfall over Iloilo City. It then made a sixth landfall in Magsaysay in the Cuyo Archipelago at 19:30 PHT. At 04:10 PHT on November 5, Kalmaegi made its seventh landfall over Batas Island in Taytay, Palawan, followed by an eighth landfall at 04:40 PHT over El Nido, Palawan. Subsequently, Kalmaegi emerged over the South China Sea, where it began reorganizing under favorable oceanic and atmospheric conditions, with satellite imagery showing improved structure and strengthening convection. It rapidly intensified under favorable conditions, and the JTWC upgraded the storm into a Category 3-equivalent typhoon as a broad region of diffluent outflow developed and a ragged eye formed. The JMA soon followed suit and upgraded Kalmaegi into a very strong typhoon. The JTWC, on November 6, noted that Kalmaegi began to gradually weaken on approach to Vietnam due to northeasterly wind shear, although the environment remained marginally favorable, and satellite imagery continued to show a well-defined eye. Later that day, Kalmaegi moved inland over the provinces of Gia Lai and Đắk Lắk in southern Central Vietnam, with its center crossing near the northern part of Sông Cầu in Đắk Lắk. Subsequent interaction with the mountainous terrain rapidly disrupted the typhoon's structure, prompting the JTWC to issue its final warning at 15:00 UTC as it moved west-northwestward. At 18:00 UTC, the JMA downgraded the system to a severe tropical storm. Three hours later, the storm was downgraded again into a tropical storm before fully dissipating on November 7.
Two stations in Vietnam recorded the lowest sea-level atmospheric pressure during Typhoon Kalmaegi's impact lower than 975 hPa. An Nhơn weather station, located in Gia Lai province, recorded 973.2 hPa, and Quy Nhon weather station, also in Gia Lai province, recorded 967 hPa.
Preparations
Philippines
At 11:00 PHT on November 2, PAGASA issued Tropical Cyclone Wind Signal No. 1, indicating winds of after at least 36 hours, over Eastern Samar, Dinagat Islands, Siargao Island, and Bucas Grande Island. Six hours later, seven more provinces across the Visayas and Mindanao were added under Signal No. 1. At 23:00 PHT, Guiuan, Salcedo, and Mercedes in Eastern Samar, alongside Siargao Island and Bucas Grande Island, were raised to Signal No. 2, indicating winds of after at least 24 hours, while additional areas were also placed under Signal No. 1. By 05:00 PHT on November 3, Signal No. 2 was extended to eleven more provinces.At 08:00 PHT, Guiuan, Mercedes, Dinagat Islands, Siargao Island, and Bucas Grande Island were all elevated to Signal No. 3, signifying winds of after at least 18 hours. At 11:00 PHT, the southern part of Eastern Samar, Marabut in Samar, the central and southern portions of Leyte, Southern Leyte, Camotes Islands, the eastern portion of Bohol, Dinagat Islands, and the northern portion of Surigao del Norte were also placed under Signal No. 3. Three hours later, Dinagat Islands, Siargao Island, and Bucas Grande Island were upgraded to Signal No. 4, indicating winds of after at least 12 hours. At 17:00 PHT, Guiuan, the southern portion of Leyte, Southern Leyte, the Camotes Islands, and the northeastern portion of Bohol were raised to Signal No. 4. Three hours later, Signal No. 4 was extended to include Mercedes, the western portion of Leyte, and the northern portion of Cebu. At 23:00 PHT, the northernmost portion of Negros Oriental, the northern portion of Negros Occidental, and Guimaras were placed under the signal. Three hours later on November 4, the central and southern portions of Iloilo and the southern portion of Antique were likewise placed under the signal. At 08:00 PHT, the entire province of Iloilo and the southern portion of Aklan were added to the signal as well. As Kalmaegi approached Palawan, Signal No. 4 was hoisted in the northern portion of the province as well as the Calamian and Cuyo Islands. At 17:00 PHT, all areas previously under Signal No. 4 and No. 3 were lifted. By November 6, only Kalayaan, Palawan remained under alert; PAGASA issued its final bulletin at 17:00 PHT that same day.
The Regional Disaster Risk Reduction and Management Council of Eastern Visayas warned citizens to avoid travel to and from the region and suggested the public to view weather bulletins. Officials of Lapu-Lapu City held a meeting to prepare for the storm's impact. The Department of Social Welfare and Development prepared thousands of food packs and placed specialized equipment on standby. All sea travel in Surigao del Norte and nearby routes due to bad conditions. Cebu City was placed in a blue alert, causing all response units in the city to be on standby. Cebu Governor Pam Baricuatro initiated a disaster preparedness and response plan for 11 municipalities and 1 city affected by the 2025 Cebu earthquake. The Department of Education alerted disaster reduction teams throughout the nation due to 25,000 schools having a risk of landslide. The National Capital Region Police Office considered raising a full alert due to the storm. A Cebu Schools Athletic Foundation, Inc. basketball match between the University of the Visayas and the University of Southern Philippines Foundation was postponed. Evacuations were done in Palo and Tanauan, Leyte. The local government in Guiuan resorted to forced evacuations. Dinagat Islands Governor Nilo Demerey Jr. reported that 10,000 to 15,000 people were evacuated in the province. The Office of Civil Defense on November 4 reported that 400,000 people had been evacuated nationwide. Cebu archbishop Alberto Uy ordered all churches in the Archdiocese of Cebu to be used as shelters for displaced residents. Kalmaegi caused 723 cities and municipalities to suspend their classes. Eighty-nine towns suspended classes in Calabarzon, 62 suspended classes in Mimaropa, 72 suspended classes in Bicol, 98 suspended classes in Western Visayas, 62 suspended classes in the Negros Island Region, 101 suspended classes in Central Visayas, 143 suspended classes in Eastern Visayas, 24 suspended classes in Northern Mindanao, and 72 suspended classes in Caraga. Meanwhile, 484 cities and municipalities suspended work. One town suspended classes in Calabarzon, 60 in Mimaropa, 21 in Region 5, 62 in Region 6, 47 in the Negros Island Region, 101 in Region 7, 123 in Region 8, 10 in Region 10, and 59 in Caraga.