Skip to main content

Interest & Fees

Overview

Interest and fees are the primary ways banks generate revenue from accounts and products. Understanding how they work is important for product configuration, posting logic, and customer disputes.


Interest — The Basics

Interest is the cost of borrowing money, or the reward for saving it:

From Customer's ViewFrom Bank's View
Saves money → earns interestPays interest on deposits (liability)
Borrows money → pays interestEarns interest on loans (asset)

Interest Rate Types

TypeDescriptionExample
Fixed RateRate locked for a term5.00% p.a. for 12 months
Variable RateCan change at bank's discretion (follows RBA cash rate)RBA rate + 2.50%
Introductory RatePromotional rate for new customers (limited period)5.50% for 4 months, then 3.00%
Tiered RateDifferent rates for different balance bands0–$10K: 2%, $10K+: 4%
Bonus RateExtra interest if conditions met (e.g., deposit each month)Base 2% + Bonus 3% = 5%

How Interest is Calculated

Simple Interest (Daily Accrual)

Most bank accounts use daily accrual — interest accumulates every day based on the closing balance:

Daily Interest = (Annual Rate / 365) × Balance

Example:
Balance: $10,000
Rate: 5.00% p.a.
Daily rate: 5.00 / 365 = 0.013699%
Daily amount: $10,000 × 0.013699% = $1.37

Monthly: ~$41 (varies by days in month)
Yearly: ~$500

Compound Interest (Interest on Interest)

Formula: A = P × (1 + r/n)^(n×t)

Where:
P = Principal ($10,000)
r = Annual rate (0.05)
n = Compounding frequency per year (12 for monthly)
t = Years (1)

A = $10,000 × (1 + 0.05/12)^12 = $10,511.62
Interest earned = $511.62 (vs $500 simple)

Banks use compound interest for loans — it means customers pay more over time.


Interest in Banking Systems

Accrual vs Capitalisation

ACCRUAL:        Interest earned but NOT yet paid
Recorded as a liability (owed to customer) or receivable (owed by customer)

CAPITALISATION: Accrued interest is added to the principal balance
(For savings: credited to account)
(For loans: added to outstanding balance if not paid)

Payment Frequency

ProductTypical Interest Payment
Savings accountMonthly (end of month)
Term depositMaturity / monthly / annually
Home loanMonthly (deducted from payment)
Credit cardDaily accrual; billed monthly
OverdraftDaily; debited monthly

Common Bank Fees

Account Fees

FeeDescriptionTypical Amount
Monthly account feeCharged for maintaining account$5–$15/month
Excess transaction feeFee per transaction over monthly limit$0.50–$2 each
Paper statement feeFee for receiving paper statements$2–$5/month
Account closure feeSometimes charged on term deposits if broken early$0–$50

Payment Fees

FeeDescriptionTypical Amount
International transfer feeSWIFT outbound payment$15–$30 per payment
Currency conversion marginSpread on FX rate1%–3%
BPAY feeUsually nil (absorbed by bank)$0 (retail)
Real-time payment feeNPP — usually nil for consumers$0

Penalty / Event Fees

FeeDescription
Dishonour feeDirect debit or cheque bounced due to insufficient funds — $10–$15
Overdrawn feeAccount went negative without approved overdraft — $10–$20
Late payment feeCredit card or loan payment overdue — $20–$30
Break feeExiting a fixed-rate product early (e.g., fixed home loan) — can be thousands

Fee Posting in the System

When a fee is charged, a debit posting is made to the customer's account:

Fee event trigger (e.g., end of month, dishonour event)


Fee calculation engine
(looks up product config, calculates fee)


Post debit to customer account:
DR Customer Account $10.00 (Fee: Dishonour fee)
CR Fee Income Account $10.00 (Bank's P&L)


camt.054 notification:
CdtDbtInd: DBIT
BkTxCd: PMNT/FEES/SRVC
Amount: $10.00
Narrative: "Dishonour fee - DD returned insufficient funds"

Regulation: Responsible Lending & Fee Caps

Banks are subject to regulatory limits on fees:

RegulationRequirement
National Consumer Credit Protection ActResponsible lending; fee disclosure
Credit Code (NCCP)Maximum default fees; comparison rate disclosure
ASIC oversightUnconscionable fees; deferred sales model
RBA guidanceSurcharging rules (merchant passing on card fees)
Fee-free basics (COBA)Mutual/community banks offer fee-free basic accounts

Interest on a Home Loan — How It Works

Home Loan: $500,000 at 6.00% p.a., 30 years, monthly payments

Month 1:
Daily rate: 6.00 / 365 = 0.016438%
Days in month: 31
Interest: $500,000 × 0.016438% × 31 = $2,547.95

Monthly payment: $2,997.75 (fixed, from amortisation schedule)
Principal paid: $2,997.75 − $2,547.95 = $449.80
New balance: $500,000 − $449.80 = $499,550.20

Month 2:
Interest: $499,550.20 × 0.016438% × 28 = $2,299.49
(fewer days)

Over 30 years:
Total paid: ~$1,079,190 (more than double the loan)
Total interest: ~$579,190

RBA Cash Rate and Its Effect

The RBA Cash Rate is the benchmark interest rate set by the Reserve Bank of Australia. It flows through to customer rates:

RBA Cash Rate (e.g., 4.35%)


Bank Funding Cost (deposits, wholesale)


Retail Lending Rates (mortgages, personal loans)
= Cash rate + Bank's margin

Retail Deposit Rates (savings)
= Cash rate − Bank's margin

When RBA raises rates:
├── Variable mortgage rates increase (bad for borrowers)
└── Savings rates increase (good for savers)

Java Spring Notes — Fee Processing

@Service
public class FeePostingService {

@Scheduled(cron = "0 0 2 1 * *") // 2 AM on 1st of each month
public void processMonthlyAccountFees() {
List<Account> feeableAccounts = accountRepository
.findAccountsEligibleForMonthlyFee();

feeableAccounts.forEach(account -> {
BigDecimal fee = feeCalculator.calculateMonthlyFee(account);

if (fee.compareTo(BigDecimal.ZERO) > 0) {
ledgerService.postDebit(
account.getId(),
fee,
"Monthly account fee",
BankTransactionCode.FEES_MONTHLY
);
notificationService.sendFeeAdvice(account, fee);
}
});
}

@EventListener
public void onDishonour(DishonourEvent event) {
BigDecimal dishonourFee = productConfig
.getDishonourFee(event.getAccountType());

ledgerService.postDebit(
event.getAccountId(),
dishonourFee,
"Dishonour fee - " + event.getPaymentReference(),
BankTransactionCode.FEES_DISHONOUR
);
}
}