Royal Bank of Canada’s discretionary and technology-related spending accounted for 23% of the bank’s non-interest expenses in the third quarter.
In Q3 2023, the $1.4 trillion bank’s non-interest expenses increased 22% year over year to $5.8 billion, which included equipment and amortization costs, professional fees and marketing, travel and training expenses, according to the bank’s Q3 earnings presentation Thursday.

BIGGER PICTURE: “The core drivers of organic expense growth were investments in people and technology,” Nadine Ahn, chief financial officer of Royal Bank of Canada (RBC), said during the bank’s Q3 earnings call.
Technology investment accounted for 3% of the bank’s total expenses during the quarter, according to the earnings presentation.
Additionally, the bank’s investment in its people accounted for 4% of expenses as its full-time employee base increased 6% YoY to 67,959, according to the earnings presentation.
BY THE NUMBERS: RBC reported for Q3:
- Revenue increased 6% YoY to $3.9 million;
- Active digital users grew 7% YoY to 8,837; and
- Active mobile users grew 11% YoY to 6,639.
FLASHBACK: The bank was upgrading its tech stack to better serve customers, particularly in areas of AI, in Q1.
“Expense growth over the last 12 months has reflected strategic investments in client-facing roles and technology to enhance our value proposition and infrastructure, including artificial intelligence capabilities,” Chief Executive Dave McKay during the Q1 earnings call in March.
FORWARD LOOK: Integration costs linked to RBC’s acquisition of HSBC Canada contributed to 10% of RBC’s expense growth during Q3, according to the earnings presentation.
The transition with HSBC Canada will be underway next year, RBC Chief Executive David McKay said during the earnings call. He said he is “very excited about HSBC as we move forward and continue to plan for and wait to hear on approvals but also plan for conversion and close in the coming quarters.”
Editor’s note: All figures have been converted to USD.
[stock_market_widget type=”inline” template=”generic” assets=”RY” markup=”{name} ({symbol}) is trading at {price} ({change_pct})” display_currency_symbol=”true” api=”yf”]






