ON — Bank Fee Analysis from Palm Data¶
Metadata¶
- Customer: ON
- Date: 2026-03-05
- Data source: Palm prod (transactions category = "Cash out: Bank Fees")
- Period analyzed: 2020-10 through 2026-03-05 (focus on full year 2025)
- Source: Notion
- Parent workflow: Bank Fee Analysis
1. Executive Summary¶
ON has 124 bank accounts across 16 banks, 31 entities, and 21 countries. In 2025 alone, Palm captured ~11,850 fee transactions categorized as bank fees. The data is rich enough to support an AI-driven fee analyzer, but several caveats apply (see Section 5).
This document covers:
- What Palm currently contains on bank fees (Sections 2-4)
- Data quality issues that need fixing first (Section 5)
- What an AI fee analyzer could realistically deliver (Section 6)
- Recommended next steps (Section 7)
2. Fee Spend by Bank (2025, full year)¶
Excludes suspected miscategorized CNY transactions (see Section 5).
| Bank | CHF | EUR | USD | GBP | Other CCY | Fee Txns |
|---|---|---|---|---|---|---|
| UBS | -32,775 | -24,153 | -103,436 | -4,828 | -357,589* | 5,796 |
| JP Morgan Chase | — | — | -238,694 | — | -97,216 | 96 |
| Deutsche Bank | — | -1,402 | — | -92,004 | -10,361,920** | 2,445 |
| Commerzbank | — | -8,655 | — | -84,396 | — | 116 |
| Bank of China | — | — | — | — | -73,099 (HKD) | 3,202 |
| Commonwealth Bank | — | — | — | — | -20,173 (AUD) | 57 |
| Sumitomo Mitsui (SMBC) | — | — | — | — | -1,485,721 (JPY) | 36 |
| ASB Bank | — | — | — | — | -39,318 (NZD) | 5 |
| BNP Paribas | — | -472 | — | — | — | 7 |
| Citi | — | — | -771 | — | -4,847 (KES) | 61 |
| ICBC | — | — | — | — | -1,175 (CNY) | 15 |
UBS Other CCY = mostly SEK (-143K), NOK (-118K), DKK (-74K) — Nordics via Switzerland. Deutsche Bank Other CCY inflated by miscategorized CNY payment transactions (see Section 5).
Top fee relationships by materiality (2025)¶
| Bank | Country | Currency | Total Fees | Avg Fee | Largest Single Fee |
|---|---|---|---|---|---|
| JP Morgan Chase | US | USD | -238,694 | -7,956 | -22,272 |
| UBS | CH | USD | -103,436 | -33 | -14,833 |
| Deutsche Bank | UK | GBP | -91,585 | -3,158 | -40,951 |
| Commerzbank | UK | GBP | -84,396 | -1,534 | -9,540 |
| JP Morgan Chase | CA | CAD | -83,277 | -2,313 | -4,084 |
| UBS | CH | SEK | -143,615 | -391 | -11,498 |
| UBS | CH | NOK | -117,701 | -454 | -8,750 |
| UBS | CH | DKK | -73,810 | -289 | -4,808 |
| Bank of China | CN | HKD | -73,099 | -218 | -1,500 |
| ASB Bank | NZ | NZD | -39,318 | -7,864 | -38,339 |
| UBS | CH | CHF | -32,775 | -30 | -1,424 |
3. Fee Type Sub-Classification (2025)¶
Using keyword-based classification on transaction descriptions. "Other/Unclassified" is large because bank fee descriptions are inconsistent across banks and languages.
| Fee Type | Txns | Banks | CHF | EUR | USD | GBP |
|---|---|---|---|---|---|---|
| Account Management | 276 | 3 | -7,117 | -9,644 | -248,106 | -4,657 |
| SWIFT/Wire Fee | 2,278 | 2 | — | -472 | — | — |
| Collection/DD Fee | 3 | 1 | — | — | — | -85,685 |
| FX Commission | 20 | 1 | — | — | — | — |
| EB/Wire Fee | 4 | 1 | — | — | — | — |
| Tax on Commission | 48 | 2 | — | — | -54 | — |
| Transaction Fee | 21 | 1 | — | — | — | — |
| Platform Fee | 3 | 1 | — | — | — | — |
| Other/Unclassified | 9,185 | 11 | -25,658 | -24,567 | -94,741 | -90,886 |
Key observations:
- Account Management is dominated by JP Morgan US (USD 248K). Likely a bundled monthly service charge — the single largest fee line item.
- SWIFT/Wire fees (2,278 txns) are almost entirely from Deutsche Bank CN — small per-transaction wire fees (CNY 1-15 each).
- Collection/DD fees at Deutsche Bank UK (GBP 85,685) are suspicious — see Section 5.
- FX commissions are identifiable at SMBC Japan but likely underreported because most banks embed FX costs in spreads.
4. Monthly Fee Trend (2025)¶
| Month | Txns | CHF | EUR | USD | GBP |
|---|---|---|---|---|---|
| Jan | 782 | -2,248 | -2,401 | -27,173 | -5,277 |
| Feb | 760 | -2,356 | -1,671 | -26,588 | -5,448 |
| Mar | 777 | -1,857 | -2,541 | -24,802 | -6,591 |
| Apr | 811 | -1,240 | -2,189 | -39,358 | -4,412 |
| May | 930 | -1,720 | -1,780 | -27,530 | -6,343 |
| Jun | 834 | -1,761 | -3,421 | -28,084 | -9,832 |
| Jul | 1,132 | -2,392 | -3,803 | -26,811 | -50,858 |
| Aug | 752 | -1,920 | -2,334 | -24,731 | -10,687 |
| Sep | 1,108 | -4,799 | -2,711 | -27,292 | -11,150 |
| Oct | 1,113 | -4,407 | -2,332 | -28,998 | -49,453 |
| Nov | 1,175 | -2,662 | -2,359 | -27,831 | -12,523 |
| Dec | 1,667 | -5,414 | -7,141 | -33,703 | -8,656 |
Observations:
- USD fees stable ~25-28K/month except April spike (39K) — worth investigating.
- GBP spikes in Jul and Oct (~50K each) correspond to GBP 40,951 "BICESTERCHGS" transactions at Deutsche Bank UK — likely quarterly collection charges.
- CHF and EUR spike in Q4/Dec, consistent with annual account management fee billing cycles.
- Dec transaction count jumps to 1,667 (vs ~800-1,100 avg) — year-end reconciliation billing.
5. Data Quality Issues¶
5a. Miscategorized CNY Transactions (Critical)¶
Deutsche Bank Shanghai has large CNY transactions (up to CNY 50.9M) classified as bank fees. These are clearly outgoing SWIFT payments, not fees. Example:
"15.60 NCMS SWIFT 3598901017SH2026022610000089..." Amount: -50,952,115.60 CNY
The "15.60" at the start is the actual fee — the amount field contains the full payment amount. The categorization model misread this.
Impact: Deutsche Bank "Other CCY" fees in the table above are unreliable. The actual Deutsche Bank CN fee load is ~CNY 16K/year (small per-unit SWIFT charges), not the millions reported.
5b. Suspicious GBP Collection Charges¶
Deutsche Bank UK shows 3 transactions labeled "BICESTERCHGS" at GBP 40,951 each. These reference "BGPSERVCHRGTRUST26" and appear to be direct debit collections flowing through the account, not bank fees charged to ON.
5c. ASB Bank NZD Spike¶
A single NZD 38,339 transaction at ASB Bank NZ references "BDO New Zealand" (an accounting firm). More likely an audit/advisory payment than a bank fee.
5d. "DEUT" vs "Deutsche Bank"¶
Two separate bank name labels exist for Deutsche Bank, appearing as separate banks in the data. These should be consolidated. Affects KR and DE accounts.
5e. Missing Fee Types¶
The current "Cash out: Bank Fees" category does not capture:
- Financing costs (RCF drawdown interest, commitment fees, guarantee fees) — likely in "Cash Out: IC Financing" or billed separately
- FX spread costs — not visible as line items; embedded in execution rates
- Custody / investment fees — if applicable
6. What AI-Based Fee Analysis Could Deliver¶
6a. Pricing Agreement Comparison¶
Input needed from ON: Bank fee schedule PDFs (pricing agreements per bank relationship).
Feasibility: HIGH. The main bottleneck is getting the pricing PDFs and building per-bank description parsers. The descriptions in Palm are detailed enough for sub-classification.
6b. Optimization / Routing Analysis¶
Palm already has: Full payment flow data — not just fees but all 483K+ categorized transactions with counterparty info, entity/bank/country mappings, and currency data.
Cross-border banking patterns detected: ON runs a highly centralized banking model — many European entities bank through UBS Switzerland rather than local banks. AI could:
- Compare cross-border wire/SEPA fees at UBS CH vs local bank pricing
- Identify entities where local bank relationships already exist but aren't being used
- Benchmark unit costs per bank
6c. Anomaly Detection¶
With 5+ years of history, AI could flag unusual fee spikes, detect new fee types, identify fee-free periods followed by sudden charges, and track fee trends as transaction volumes grow.
7. Recommended Next Steps¶
Phase 0: Data Cleanup (prerequisite, 1-2 days)¶
- Fix miscategorized CNY transactions at Deutsche Bank Shanghai
- Investigate GBP "BICESTERCHGS" transactions
- Consolidate "DEUT" and "Deutsche Bank" bank name labels
- Review ASB Bank NZD 38K transaction
Phase 1: Fee Sub-Classification (1-2 weeks)¶
Build a fee type classifier using per-bank regex rules + LLM fallback for the 9,185 "Other" transactions.
Output: Dashboard showing fee spend by type, bank, entity, and month — exceeding what Kyriba provides without BSB files.
Phase 2: Pricing Agreement Ingestion (2-3 weeks)¶
ON provides bank pricing agreement PDFs → LLM-based PDF parser → match against classified actuals → discrepancy report.
Phase 3: Optimization Engine (4-6 weeks)¶
Cross-reference fee data with payment flow data for routing optimization, bank consolidation, volume-based renegotiation, FX spread analysis.
What ON Should Provide¶
- Bank pricing agreement PDFs (at least UBS, JPM, Deutsche Bank, Commerzbank)
- Confirmation on whether RCF/guarantee fees appear in bank statements or are billed separately
- Clarification on the "BICESTERCHGS" GBP charges
- Any BSB/camt.086 bank service billing files they receive
- Which bank relationships they want to prioritize
8. CFO-Level Optimization Recommendations¶
Based on what Palm data shows today, without even seeing pricing agreements.
8a. Renegotiate JP Morgan US Account Analysis (est. savings: USD 50-80K/yr)¶
ON Inc pays JP Morgan USD 236K/year in monthly "ACCT SERVICE FEE" charges — 12 monthly bundled account analysis statements averaging USD 19,700/month. This is ON's single largest bank fee line item.
Actions: Request full line-item breakdown, negotiate improved ECR, push for consolidated billing across all JPM accounts, benchmark against Citi or Bank of America.
8b. Review Commerzbank UK Pricing (est. savings: GBP 30-50K/yr)¶
Commerzbank UK charges GBP 75K in fees on GBP 14M of payment flow volume (0.53% fee-to-flow ratio). Deutsche Bank UK handles GBP 471M for GBP 92K (0.02% ratio) — a 25x difference.
8c. Close or Consolidate Dormant Accounts (est. savings: CHF 15-25K/yr)¶
10 accounts with combined ~140 transactions but likely CHF 15-25K in annual maintenance fees. Includes near-dormant accounts at UBS CH, DEUT VN, Citi GB, BNP Paribas FR, and low-activity ZKB accounts.
8d. Evaluate Nordic Cross-Border Fee Premium¶
Nordic entities (Sweden, Norway, Denmark) route nearly all payments through UBS Switzerland — ~1,895 cross-border transactions generating SEK 144K + NOK 118K + DKK 74K in fees. Danske Bank NO handles 16 transactions for zero visible fees.
8e. Consolidate China Banking Relationships¶
ON Running Shanghai has three bank relationships (Bank of China, Deutsche Bank, ICBC). ICBC with 15 fee transactions is nearly dormant.
8f. Benchmark UK Direct Debit Charges¶
If "BICESTERCHGS" (3 × GBP 40,951) are legitimate DD collection fees, that's GBP 123K/year. UK BACS processing is typically GBP 0.05-0.20 per item.
8g. Request Machine-Readable Fee Files from Banks¶
UBS, Deutsche Bank, and JP Morgan all offer BSB (camt.086) files. This is the cheapest quick win for any fee analysis program.
8h. Local vs Cross-Border Payment Routing¶
ON's treasury is heavily centralized through UBS Switzerland. Key opportunities:
Entities WITH a local bank (underutilized):
- France: Already well-balanced — BNP fees are 1/3 of UBS for comparable volume. Model to replicate.
- Germany: Commerzbank DE charges EUR 6.9K on 341 txns while UBS CH charges EUR 1.5K on 1,753 txns. Review or close Commerzbank DE.
- Norway: 494 txns through UBS CH at NOK 65K fees; Danske Bank NO handles 16 for zero fees. Shift volume.
- Spain: Deutsche Bank ES handles 100 txns with zero visible fees. Shift local EUR payments there.
- Hong Kong: Deutsche Bank HK handles only 252 of 5,082 transactions. Route local HKD via DB HK.
Entities WITHOUT any local bank:
- Sweden: 786 txns at SEK 92K fees. Biggest opportunity — local bank could save SEK 60-80K/yr.
- Denmark: 615 txns at DKK 39K fees. Local bank could save DKK 20-30K/yr.
- Austria, Netherlands, Belgium: Fees are low (EUR 379-627 each) — SEPA makes cross-border EUR nearly as cheap as domestic. Weak business case for local banks.
Summary of Estimated Savings Potential¶
| Recommendation | Est. Annual Savings | Effort |
|---|---|---|
| Renegotiate JPM US account analysis | USD 50-80K | Medium (negotiation) |
| Review Commerzbank UK pricing | GBP 30-50K | Medium (negotiation) |
| Close/consolidate dormant accounts | CHF 15-25K | Low (operational) |
| China bank consolidation | CNY 10-15K | Low (operational) |
| UK DD benchmark (if confirmed) | GBP 20-40K | Medium (tender) |
| Open local bank in Sweden | SEK 60-80K | High (new relationship) |
| Shift Norway flows to Danske Bank | NOK 30-40K | Low (re-routing) |
| Open local bank in Denmark | DKK 20-30K | High (new relationship) |
| Route HK flows through Deutsche Bank HK | HKD 30-50K | Low (re-routing) |
| Consolidate NZ routing for Oceania | NZD 20-30K | Medium (re-routing) |
| Germany: renegotiate/close Commerzbank DE | EUR 3-5K | Low (negotiation) |
| Spain: shift local flows to DB ES | EUR 500-700 | Low (re-routing) |
| Total estimated | ~CHF 300-500K equivalent |
These estimates are conservative. Actual savings potential is likely higher because FX spread costs, RCF/guarantee fees, and volume-based tier improvements are not quantified here.