ADVERTISEMENT

High debt, spending curbs cause Philippines to lag Asia in fiscal recovery

Published Oct 23, 2025 02:56 pm
Fitch Solutions’ unit BMI expects the Philippines’ fiscal deficit to narrow to 5.5 percent of gross domestic product (GDP) as government spending slows following the flood control fiasco, but the country is projected to recover more slowly than its regional peers.
“We expect a narrower fiscal deficit for the Philippines of 5.5 percent in 2025, down from 5.7 percent in 2024,” BMI said in a commentary published on Thursday, Oct. 23. Its forecast matches the government’s target.
For 2026, a narrower deficit would be supported by a “one-off privatization amounting to 0.3 percent of GDP, which the government has penciled in for 2026.” Its 5.4-percent forecast is a tad wider than the government’s target of 5.4 percent.
Meanwhile, BMI believes relying on non-tax collections is “fiscally unfeasible over the long run.”
It noted that the country’s public finances remain fragile, with the share of debt to output rising to around 60 percent from 40 percent before the Covid-19 pandemic.
The government aims to achieve a debt-to-GDP ratio of around 60 percent by the end of the Marcos administration in 2028.
“This places the country among the regional laggards in fiscal recovery,” BMI said, adding that “elevated borrowing costs and a narrow revenue base further limit Manila’s ability to deliver large-scale fiscal support without compromising debt sustainability.”
Total revenues collected through August reached ₱3.09 trillion, 3.3 percent higher than last year’s ₱2.99 trillion. This represents 68.4 percent of the revised full-year target of ₱4.52 trillion.
Meanwhile, public spending as of end-August expanded 7.1 percent to ₱3.95 trillion from ₱3.69 trillion a year earlier. This stood at 65 percent of the revised full-year target of ₱6.08 trillion.
“The slowdown in spending was due to curbs on pre-election spending and weak infrastructure disbursements,” BMI noted.
Infrastructure and other capital outlays declined by 21.8 percent to ₱84.9 billion in August, compared to ₱108.6 billion in the same month last year.
According to the Department of Budget and Management (DBM), the reduction could be blamed mainly on the “ongoing validation of the status of implementation, quality, and completion of infrastructure projects implemented by the DPWH [Department of Public Works and Highways] nationwide.”
Year-to-date, the government’s infrastructure spending decreased by 5.6 percent to ₱798.4 billion from ₱845.3 billion in the same seven-month period last year.
Despite this downturn, BMI still expects the spending shortfall to narrow, but it will likely fall short of the ₱1.51 trillion full-year target.
“Budget Secretary Amenah Pangandaman has warned that government spending may slow as the probe into alleged corruption intensifies,” BMI further noted.
Infrastructure spending is expected to hit ₱1.56 trillion in 2026, ₱1.69 trillion in 2027, ₱1.9 trillion in 2028, ₱2.03 trillion in 2029, and ₱2.2 trillion in 2030.
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.