ADVERTISEMENT

MTerra Solar starts supplying power to Luzon grid

Published Mar 14, 2026 04:16 pm

Meralco PowerGen Corp. (MGEN) has started delivering electricity from its flagship solar facility to the Luzon grid, marking a key milestone for what is expected to become the Philippines’ largest integrated solar and battery storage project.

In a statement on Saturday, March 14, MGEN said its affiliate Terra Solar Philippines Inc. (MTerra Solar) has successfully energized the MTerra Solar project as a generator, allowing the facility to begin supplying electricity to the Luzon grid.

The milestone marks the first electron generated by the facility being transmitted to the grid just 16 months after its groundbreaking. The initial phase is expected to deliver up to 85 megawatts (MW) of mid-merit power to help support daytime peak demand, marking the project’s first delivery to Manuel V. Pangilinan-led Manila Electric Co. (Meralco).

Following the energization, the project will gradually ramp up its output in the coming months in coordination with National Grid Corp. of the Philippines (NGCP), in line with its system impact study (SIS) and operational plan.

“This is a defining moment for MTerra Solar. With the facility now operational, we have started a bigger journey–ramping up generation and steadily delivering capacity that strengthens energy security and advances the Philippines’ self-reliance. This milestone comes at a critical time as we continue to expand the country’s energy capacity,” said Emmanuel V. Rubio, president and chief executive officer (CEO) of MGEN.

“MTerra Solar exemplifies Filipino ingenuity and pride–built by Filipinos for the Filipinos. The project is now delivering reliable and clean energy which will power progress for industries and communities. We remain in close coordination with NGCP to ensure that project is safely integrated into the grid,” said Dennis B. Jordan, president and CEO of MTerra Solar.

Once fully completed, the project is expected to generate 3,500 megawatt-peak (MWp) of solar photovoltaic capacity paired with a 4,500 megawatt-hour (MWh) battery energy storage system (BESS).

The facility is projected to supply clean electricity to about 2.4 million households while avoiding an estimated 4.3 million tons of carbon emissions annually, equivalent to removing more than three million gasoline-powered vehicles from the road.

Phase one of the project is targeted for completion this year, while phase two is already under construction and expected to follow a year later. The project spans four municipalities across the municipalities of Nueva Ecija and Bulacan provinces.

MTerra Solar is a joint investment between SP New Energy Corp. and global infrastructure investor Actis.

Once fully operational, the project is expected to help support the Philippines’ renewable energy (RE) targets of 35 percent by 2030 and 50 percent by 2040, while contributing additional domestic power capacity to strengthen energy security.

MGEN, the power generation arm of Meralco, operates a diversified portfolio of thermal, liquefied natural gas (LNG), and RE assets across the Philippines and Southeast Asia, with a combined net saleable capacity of 5,069.7 MW as of January 2026. - Gabriell Christel Galang

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.