ADVERTISEMENT

Rotational brownouts cripple Cebu

Published May 14, 2026 06:39 pm
CEBU CITY – Rotational brownouts hit Metro Cebu due to thinning power reserves caused primarily by the prolonged outage of several power plants.
The National Grid Corp. of the Philippines (NGCP) placed the Visayas Grid under Red Alert on Thursday, May 14, prompting Visayan Electric to implement rotational brownouts in parts of Cebu and nearby areas.
The NGCP said the Visayas Grid was placed under Red Alert from 4 p.m. to 9 p.m. on May 14, while Yellow Alert status was raised from 3 p.m. to 4 p.m. and from 9 p.m. to 11 p.m.
“A Red Alert status is issued when power supply is insufficient to meet consumer demand and the transmission grid’s regulating requirement,” NGCP explained.
A Yellow Alert, meanwhile, is declared when operating reserves fall below contingency requirements.
Grid data as of 8 a.m. showed available capacity at 2,413 megawatts (MW), below the projected peak demand of 2,541 MW.
NGCP said a total of 866.7 MW remained unavailable due to multiple power plant outages and derated operations. The grid operator reported that 11 power plants have been on forced outage since March 2026, four plants since 2025, two since 2024, two since 2023, and one plant has been offline since 2021.
In addition, 12 plants are currently operating at reduced capacities.
Michael Ligalig, NGCP government relations and regional affairs lead specialist for the Cebu-Bohol area, said the declining power supply was not driven by unusually high electricity consumption.
“There is no huge spike in demand. It is the absence of 866.7 megawatts from power plants which are on forced outage,” Ligalig told reporters on Thursday.
Because of the grid situation, Visayan Electric implemented a series of one-hour rotational brownouts in portions of Cebu City, Mandaue City, City of Naga, and San Fernando beginning Thursday afternoon.
These scheduled interruptions started at 3:45 p.m. in parts of Ibabao-Estancia, Maguikay, Paknaan, and Tabok in Mandaue City. Additional outages followed hourly in affected areas, including Ermita, Lorega, Mabolo, Tejero, Tinago, Banilad, Lahug, Guadalupe, Kasambagan, Tipolo, and portions of Cebu Business Park, among others.
The final round of rotational outages was implemented at 8:49 p.m. in portions of Alang-Alang, Cambaro, Centro, Guizo, Ibabao-Estancia, Looc, and Mantuyong in Mandaue City.
Visayan Electric said the rotational brownouts were necessary “to balance power supply and demand” following NGCP’s directive for load curtailment.
The utility assured it continues to coordinate closely with NGCP, the Department of Energy (DOE), and power generators to maintain grid stability and minimize prolonged interruptions.
“Visayan Electric continues to serve customers within its franchise area while implementing the necessary operational measures to help manage the impact of current grid conditions,” the company said in a statement.
As part of its contingency measures, Visayan Electric activated its Interruptible Load Program (ILP), where participating commercial establishments voluntarily shift to their own generator sets to reduce pressure on the grid.

Related Tags

Brownout Cebu NGCP
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.