ADVERTISEMENT

Vivant's profit resumes growth in H1 2025

Published Aug 15, 2025 12:33 pm  |  Updated Aug 15, 2025 05:56 pm
Despite lingering market pressures and last year’s sharp profit drop, Vivant Corp. quietly staged a recovery in its first-half net income by over a tenth this year.
In a disclosure to the Philippine Stock Exchange (PSE), the company said its end-June net income stood at ₱962 million, 11-percent higher than its earnings last year of ₱877.4 million.
The increase marks a turnaround from the first half of 2024, when Vivant’s net income dropped by 40 percent from ₱1.5 billion in the previous year.
Arlo Sarmiento, Vivant’s chief executive officer (CEO), explained that its presence in the reserve market became a primary factor in the company’s earnings from January to June.
“Despite the lower WESM [Wholesale Electricity Spot Market] prices in the first half of the year, the team’s collective effort secured strong returns,” he said.
“As we enter the second half of the year, we remain excited about the company’s future while we aim for continued earnings growth. Our business development teams in energy and water are committed to launching impactful projects that will create solutions for our changing world,” he added.
Its energy business saw a ₱1.4-billion contribution to Vivant’s income. Power generation contributed ₱908 million, while its distribution utility (DU) business had a ₱589-million share.
The retail energy aspect, however, saw a ₱62-million loss due to lower average selling price from retail electricity supply (RES) sales during this period.
Vivant’s conventional plants, like its diesel and coal assets, had a 21-percent decline to 1,972 gigawatt-hours (GWh).
Despite this, four of its power plants were able to participate in the reserve market. They included Cebu Energy Development Corp. (CEDC), Therma Visayas Inc. (TVI), 1590 Energy Corp. (1590 EC), and Meridian Power Inc. (MPI).
Reserve market nominations from these entities rose more than sixfold year-on-year, driven by a full six months of operations in 2025 compared to just one month in 2024 due to a temporary suspension.
In the DU aspect, Visayan Electric Co. (VECO) had a flat growth due to higher operating expenses (opex) and finances, as well as the one-time refund to customers for unutilized regulation costs that were ordered by the Energy Regulatory Commission (ERC).
Meanwhile, Vivant’s water business grew to ₱93 million during the first six months of 2025 due to the recently signed joint venture agreement (JVA) between Vivant Hydrocore Holdings Inc. (VHHI) and Metropolitan Cebu Water District (MCWD).
This JVA would supply water to Metro Cebu through the 20 megaliter-per-day seawater desalination plant.
Subsequently, income from Faith Lived Out Visions 2 Ventures Holdings (FLOWS) rose 13 percent to ₱5 million, driven by higher wastewater volumes and increased service fees at Puerto Princesa Water Reclamation and Learning Center.
Looking ahead to the second half of the year, Vivant plans to join the fourth Green Energy Auction (GEA-4) and start commercial operations of its 22-megawatt (MW) San Ildefonso solar project. Its seawater desalination plant in Cebu is also expected to be completed within the year.

Related Tags

Vivant Corp.
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.