ADVERTISEMENT

Philippine banks boost loan-loss buffers as bad loans hit 8-month high

Published Sep 5, 2025 02:42 pm

At A Glance

  • Philippine banks are shoring up their loan-loss buffers as the industry's bad loan ratio climbed to an eight-month high of 3.4 percent, due to the lingering impact of the pandemic and global uncertainties on borrowers' ability to repay debts.
Philippine banks are shoring up their loan-loss buffers as the industry’s bad loan ratio climbed to an eight-month high of 3.4 percent, due to the lingering impact of the Covid-19 pandemic and global uncertainties affecting borrowers’ ability to repay debts.
According to the latest data from the Bangko Sentral ng Pilipinas (BSP), the banking industry’s nonperforming loan (NPL) ratio worsened from the three-month low of 3.34 percent in June. However, it remained 18-basis-points (bps) lower than the 3.58 percent ratio in July last year.
BSP data showed bad loans increased by one percent to ₱535.4 billion as of end-July from ₱530.3 billion in June. Year-on-year, soured loans hiked by 5.4 percent from ₱508.1 billion in July last year.
Loans become nonperforming if unpaid for at least 90 days past due date, posing a credit risk as borrowers are less likely to repay.
Philippine banks’ total loan portfolio dropped by 0.7 percent to ₱15.77 trillion as of end-July from ₱15.88 trillion in the previous month. Year-on-year, the end-July figure jumped by 11 percent from the ₱14.21 trillion recorded a year ago.
Past due loans increased by 2.6 percent to ₱687.6 billion as of July from ₱670.5 billion a month ago. It also increased by 9.9 percent from ₱625.7 billion in the previous year.
This brought the past due ratio to 4.36 percent, marking the highest record in nine months, or since the 4.4 percent in October last year, which was also the ratio in July a year ago.
Past due loans are those where the borrower has failed to pay principal, interest, or any installment on time, including restructured loans and other financial assets.
Jonathan Ravelas, senior adviser at Reyes Tacandong & Co., said the uptick in the bad loan ratio shows that some sectors, particularly small and medium enterprises (SMEs) and consumer borrowers, are still struggling.
Ravelas noted that many households and firms are adjusting after the pandemic, while global uncertainties such as United States (US) tariffs have also caused growth slowdown globally.
“Lower interest rates may be encouraging borrowing, but not all borrowers are equally resilient,” Ravelas said. As such, banks have become more cautious by “beefing up [loan-loss] provisions.”
For Ravelas, “NPLs may stay elevated in the short term as rate cuts take time to filter through. But if consumer confidence and job creation pick up, we could see stabilization by year-end.”
Similarly, Rizal Commercial Banking Corp. (RCBC) chief economist Michael Ricafort said the eight-month high NPL ratio was mainly due to weaker local growth prospects, which were indirectly affected by the global slowdown.
However, the Bangko Sentral ng Pilipinas’ (BSP) cumulative cuts of 1.5 percentage points (ppt) since August last year “would help reduce interest payment costs that would help some borrowers improve their ability to pay their debts.”

Related Tags

Bangko Sentral ng Pilipinas (BSP) nonperforming loan (NPL) ratio
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.