ADVERTISEMENT

Meralco hit ₱26-billion profit as electricity demand dips

Published Jul 29, 2026 03:33 pm
Manila Electric Co. (Meralco) reported a 3.8 percent increase in first-half core net income, boosted by expanding power generation assets and retail market growth despite the slight dip in distribution volumes.
Meralco Senior Vice President and Chief Finance Officer Betty Siy-Yap reported that the country’s largest electricity distributor’s consolidated core net income reached ₱26.5 billion in the first six months of the year from ₱25.5 billion in the same period last year.
Meralco’s reported net income climbed 11 percent to ₱26.3 billion. Total revenues expanded 15.7 percent to ₱283.71 billion, driven by higher electricity revenue, which rose 16.7 percent to ₱279.04 billion.
The power generation unit, Meralco PowerGen Corp., saw its core net income contribution surge 11 percent to ₱10.5 billion, accounting for 39 percent of the group’s total.
Higher energy output, the full six-month contribution of domestic liquefied natural gas assets, and new solar operations underpinned the generation segment’s expansion.
However, Meralco’s distribution utility remained the primary earnings engine, contributing ₱12.7 billion, or 48 percent of total core profit, while the retail electricity supply and non-electricity businesses generated the remaining 13 percent.
At end-June, distribution energy sales volume edged down 0.5 percent to 26,967 gigawatt-hours during the period. Warmer weather in the second quarter helped cushion a sluggish first quarter, while the increased adoption of rooftop solar systems reduced grid demand by an estimated 372 gigawatt-hours.
Meralco’s commercial volumes remained flat at 10,084 gigawatt-hours, residential volume declined 0.7 percent to 9,712 gigawatt-hours, and industrial sales fell 0.6 percent to 7,097 gigawatt-hours due to operational headwinds in the local steel and plastics sectors.
Meralco Chairman Manny Pangilinan noted that exposure to global volatility presented headwinds for the company's first-half performance.
“Meralco recognizes that the persistent conflict in the Middle East continues to exert pressure on global fuel supply and on prices and, consequently, electricity rates,” Pangilinan said.
“While many of these factors are beyond our control, we remained focused on what we could manage—working closely with our fuel suppliers, exercising prudent sourcing strategies, strengthening our network, and pursuing efficiencies to contain costs.”
Average retail electricity rates increased 15 percent to ₱13.09 per kilowatt-hour, driven by higher pass-through generation and transmission charges. Higher fuel prices, local currency depreciation, and increased spot market prices raised purchased power costs by 19 percent to ₱220.5 billion.
Consolidated capital expenditure totaled ₱39 billion, with ₱26 billion directed toward renewable energy and energy storage projects, and ₱12.9 billion allocated to utility network upgrades.
The board approved an interim cash dividend of ₱11.758 per share, payable on Sept. 23 to shareholders of record as of Aug. 28, representing a 50 percent payout ratio of core earnings per share.

Related Tags

Manila Electric Co. (Meralco)
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; } }

{{ static_articles_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.