ADVERTISEMENT

Philippine banks' bad loan ratio falls to over 5-year low in December 2025

Published Feb 12, 2026 03:10 pm

At A Glance

  • Amid improving asset quality, supported by cautious lenders, Philippine banks' bad loan ratio dropped to 3.08 percent as of end-December 2025, hitting its lowest level since August 2020's 2.84 percent.

Amid improving asset quality, supported by cautious lenders, Philippine banks’ bad loan ratio dropped to 3.08 percent in December 2025, hitting its lowest level since August 2020’s 2.84 percent.

The latest data from the Bangko Sentral ng Pilipinas (BSP) showed that the banking industry’s non-performing loan (NPL) ratio improved from 3.32 percent in November 2025.

Bad loans in December likewise stood lower than the 2025 peak of 3.5 percent reached in August and lower than December 2024’s ratio of 3.27 percent.

As of end-December 2025, NPLs decreased by 3.3 percent to ₱526.7 billion from ₱544.9 billion in November. Year-on-year, however, soured loans increased by 5.2 percent from ₱500.4 billion in December 2024.

Loans become non-performing if they remain unpaid for at least 90 days past the due date, posing a credit risk as borrowers are less likely to repay.

Philippine banks’ total loan book increased by 4.2 percent to ₱17.1 trillion as of end-December from ₱16.41 trillion in November. Year-on-year, the end-December figure climbed by 11.6 percent from ₱15.32 trillion in 2024.

Past-due loans decreased by 3.1 percent to ₱674.4 billion in December from ₱696 billion in November.

However, they rose by 11.4 percent from ₱605.2 billion in 2024. This brought the past-due ratio to 3.94 percent, down significantly from November’s 4.24 percent. It also dropped slightly from 3.95 percent in December 2024.

Past-due loans are those for which the borrower has failed to pay principal, interest, or any amount due.

Private-sector economists pointed to improving asset quality, slower loan growth, and lenders’ general caution.

Jonathan Ravelas, senior adviser at Reyes Tacandong & Co., said the decline in the soured loan ratio mirrors “both real improvement and caution.”

Ravelas said asset quality improved as borrowers became more capable of repaying loans and banks adopted stricter lending standards. “At the same time, slower loan growth also played a role—fewer new loans mean fewer potential problem accounts entering the system,” he added.

While the latest development is seen as a “healthy” signal, Ravelas said this could partly be attributed to cautious lending. For him, the “real test” is whether bad loans remain muted once credit expansion surges again.

Philippine Institute for Development Studies (PIDS) senior research fellow John Paolo Rivera agreed with Ravelas but noted that the low share of NPLs to gross loans could be attributed to a lower base effect from slower loan growth.

Rivera said stronger household incomes from service-sector jobs, remittances, and post-pandemic financial recovery have bolstered borrowers’ ability to repay, while banks have continued prudent lending and provisioning.

“On the other hand, the moderation in loan expansion, now at its slowest pace in nearly two years, has also helped contain the formation of new bad loans, mechanically easing the ratio,” he said.

“Overall, it suggests a more stable banking system, though risks remain, as slower economic growth and cautious business sentiment could still create pockets of credit stress in 2026,” said Rivera.

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.