ADVERTISEMENT

Philippine inflation seen falling to 9-year low in 2025, before rising in 2026: Moody's Analytics

Published Dec 22, 2025 02:31 pm
The Philippines is likely to end 2025 with a nine-year-low, below-target inflation rate, even as annual price increases would rise in 2026 before gradually stabilizing around the midpoint of the government’s target range by 2027, driven by lingering supply pressures, according to Moody’s Analytics.
In a Dec. 19 report, the global economic research firm forecasts December inflation at 1.6 percent year-on-year, slightly higher than November’s 1.5 percent. “Our higher inflation forecast reflects emerging supply-side pressures following recent natural disasters,” Moody’s Analytics economist Sarah Tan told Manila Bulletin in an email on Monday, Dec. 22.
If this forecast is correct, headline inflation would average 1.6 percent in 2025, below the two- to four-percent target band of manageable price hikes deemed conductive to economic growth. It would also be the lowest inflation rate in nine years, or since the 1.3 percent posted in 2016, historical Philippine Statistics Authority (PSA) data showed.
For 2026, Moody’s Analytics expects inflation to reach 2.3 percent, citing low base effects and the lingering impact of natural disasters that struck in the fourth quarter of 2025.
“The impact on agricultural output, infrastructure, and supply chains is likely to persist into 2026, which will constrain supply and push up costs,” Tan explained.
Despite these pressures, Tan emphasized that inflation is expected to remain within the Bangko Sentral ng Pilipinas’ (BSP) target range and settle near the midpoint by 2027.
The latest PSA data showed that inflation eased to 1.5 percent in November, largely due to lower food prices. Headline inflation averaged 1.6 percent during the first 11 months of 2025.
“The country now sits under a formal state of national calamity after Typhoon Kalmaegi [‘Tino’] devastated infrastructure and farmland and displaced hundreds of people,” Tan said. “Disrupted logistics, damaged supply-chain infrastructure, and loss of harvests are expected to push costs up, not just for food but also for utilities, fuel, and essential services, which are vulnerable when power lines, roads, and supply routes are impaired.”
In response, President Ferdinand R. Marcos Jr. last month declared a state of national calamity following the widespread destruction caused by “Tino,” which killed at least 188 people as it devastated several regions across the country.
In Proclamation No. 1077, the President said the declaration will remain in effect for one year unless lifted earlier, allowing the government to fast-track emergency relief, rehabilitation, and recovery operations.
This declaration of a state of national calamity automatically triggered a 60-day price freeze, or until early January 2026, on basic necessities nationwide under the Price Act or Republic Act (RA) No. 7581. This means prices for items like canned goods, noodles, water, coffee, and soap must stay at pre-typhoon levels, with the departments of Trade and Industry (DTI) and of Agriculture (DA) enforcing compliance to prevent overpricing. 
Last week, London-based think tank Capital Economics also projected year-on-year consumer price index (CPI) inflation at 1.6 percent in 2025 and 2.3 percent in 2026—forecasts that align with Moody’s Analytics—before rising to three percent in 2027.
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.