ADVERTISEMENT

Philippine banks' bad loan ratio eases in May on strong lending, lower borrowing costs

Published Jul 11, 2025 12:15 pm  |  Updated Jul 11, 2025 01:39 pm

At A Glance

  • The Philippine banking system's gross non-performing loan (NPL) ratio slightly eased to 3.38 percent in May, as continued double-digit growth in bank lending expanded the loan base and, along with the central bank's cumulative 1.25-percent policy rate cut, helped reduce borrowing costs and improve borrowers' ability to repay.
The Philippine banking system’s gross non-performing loan (NPL) ratio slightly eased to 3.38 percent in May, as continued double-digit growth in bank lending expanded the loan base and, along with the central bank’s cumulative 1.25-percent policy rate cut, helped reduce borrowing costs and improve borrowers’ ability to repay.
According to the latest data from the Bangko Sentral ng Pilipinas (BSP), the banking industry’s NPL ratio slightly improved in the middle of the second quarter from the higher 3.39 percent in April.
Still, May’s bad loan ratio remains eight basis points (bps) higher than March’s 3.3 percent. Year-on-year, however, it was lower than the 3.57-percent gross NPL ratio seen in May 2024.
BSP data showed bad loans increased by 1.6 percent to ₱527.4 billion as of end-May from ₱519.2 billion in April. Year-on-year, soured loans hiked by 6.4 percent from ₱495.7 billion in May last year.
Loans become non-performing 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 increased by 1.8 percent to ₱15.34 trillion as of end-May from ₱15.62 trillion in April. Year-on-year, the end-April figure jumped by 12.5 percent from the ₱13.89 trillion recorded a year ago.
Past due loans increased by 0.9 percent to ₱659 billion as of May from ₱653.3 billion a month ago. It also increased by 8.4 percent from ₱608.1 billion in the previous year. This brought the past due ratio to 4.22 percent, easing from 4.26 percent in April and lower than last year’s 4.38 percent.
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.
Rizal Commercial Banking Corp. (RCBC) chief economist Michael Ricafort said the slight easing seen in May’s NPL ratio was due to “the continued double-digit growth in bank loans,” increasing the total loan base. This consequently reduced the share of bad loans.
Ricafort noted that the BSP's cumulative key interest rate cut of 1.25 percent since it began easing in August last year has “effectively reduced borrowing costs, easing the burden on some borrowers and improving their ability to repay their loans.”
He also noted that banks’ NPL ratio is at its lowest level since December 2023 and is also among the best in nearly four years, last seen in August 2020.
“Improvement in banks’ asset quality and NPL ratio was also due to banks’ adoption of global best practices on credit risk management,” Ricafort said.

Related Tags

Bangko Sentral ng Pilipinas (BSP) non-performing 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.