ADVERTISEMENT

Bank of Commerce first-half profit surges 13% on core lending drive

Published Aug 10, 2026 11:08 am
San Miguel Corp. affiliate Bank of Commerce (BankCom) reported a 13 percent improvement in net income to ₱2.11 billion in the first half of the year from ₱1.86 billion in the same period last year, driven by continued growth across its revenue streams.
In a disclosure to the Philippine Stock Exchange, the bank said it achieved record-high profitability ratios post-initial public offering, with return on equity (ROE) reaching 11.56 percent and return on assets (ROA) at 1.47 percent.
“These results underscore the strength of the Bank’s disciplined growth strategy and ability to generate sustainable returns for shareholders, year after year,” BankCom said.
It added, “Despite the prevailing market and geopolitical uncertainties, BankCom’s strong first-half results demonstrate its resilience and the confidence of its growing customer base.”
The double-digit earnings growth was underpinned by the robust performance of its core banking business, complemented by foreign exchange gains from client-driven transactions.
Net interest income grew 19 percent to ₱6.11 billion from ₱5.15 billion recorded in the same period last year. This was driven by strong contributions from the bank’s lending activities and investment securities portfolio, owing to higher average daily levels, along with a lower cost of funds despite a challenging interest rate environment.
The wider spread between the growth of revenues from interest-earning assets and the cost of interest-bearing liabilities contributed to a record-high net interest margin (NIM) of 4.68 percent.
Despite challenging market conditions, the bank maintained a diversified revenue base that continued to support overall earnings growth.
Other income amounted to ₱785.38 million, fueled by Real and Other Properties Acquired (ROPA) sales-related gains—which rose 18 percent year-on-year to ₱340.69 million—and foreign exchange gains from client-related transactions of ₱109.58 million, up six percent from the first half of 2025.
These revenue sources, along with fee-generating activities, mitigated the impact of trading losses arising from market volatility stemming from geopolitical tensions in the Middle East.
Operating expenses, excluding provisions for credit and impairment losses, reached ₱4.05 billion, up 13 percent from ₱3.60 billion in the same period last year. This was due to BankCom’s continued strategic investments in human capital, branch lites, technology, and other business expansion initiatives.
The bank maintained strong asset quality, with provisions for credit and impairment losses declining 13 percent to ₱7.98 million compared to the same period last year, reflecting disciplined risk management practices.
As of June 30, 2026, total assets stood at ₱287.51 billion, translating to an ROA of 1.47 percent.
Total loans and receivables, which comprise 53 percent of total assets, stood at ₱153.56 billion, resulting in a loan-to-deposit ratio of 70 percent.
Asset quality remained in check, with gross non-performing loans (NPL) ratio at 1.43 percent and net NPL ratio at 0.63 percent.
Total deposits reached ₱223.64 billion. The deposit mix consisted of ₱202.59 billion in current and savings account (CASA) deposits and ₱21.05 billion in time deposits, representing a low-cost CASA ratio of 91 percent. (James A. Loyola)

Related Tags

Bank of Commerce San Miguel Corporation
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; } }

{{ static_articles_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.