BulletinSwift CBPR+ structured-address rule · 14 Nov 2026 · T−30 daysCheck a pain.001 file →

InsightsOctober 14, 2026

Why bank fee statements are hard to check, and where to start

AFP service codes were meant to standardize bank fees. In practice, banks use them differently. Here's how to get a usable view anyway.

Insightf 2:4

The standard that isn’t quite standard

Since 1986, the Association for Financial Professionals has published AFP Service Codes: a taxonomy for identifying the balances and charges on a bank’s account analysis statement. In principle, the same service carries the same code at every bank, so you can compare like with like.

In practice, AFP publishes the codes but doesn’t police how banks use them. Banks apply them inconsistently and mix in their own proprietary codes. Two banks can charge for the same activity under different codes, or bundle activities one bank prices separately.

The formats exist, if you ask

Electronic billing data does exist, usually in one of these forms:

  • EDI 822 (ANSI X12 822), common in North America
  • ISO 20022 camt.086 (Bank Services Billing), which can detail charges down to the transaction level
  • PDF or spreadsheet statements, the most common and the hardest to analyze

If you only receive PDFs, the first step is to ask each bank whether it can deliver 822 or camt.086 files. It costs little to ask, and the answer tells you how much manual work a review will need.

Where discrepancies tend to hide

This is a practitioner’s checklist, not a statistic:

  • Pricing that drifted from the agreed schedule after a renewal, a merger or a system change
  • Services you no longer use, such as account maintenance on dormant accounts or legacy reporting modules
  • Volume tiers applied at the wrong level
  • Duplicate charges for the same activity under two codes
  • Earnings credit changes. On analyzed accounts, balances earn a credit that offsets fees, so a quiet change in the earnings credit rate moves your net cost as much as a price change.

A practical way to start

  1. Collect the last few months of analysis statements for every bank, plus whatever pricing agreements you have.
  2. Map each bank’s codes to AFP categories, and note the ones that don’t map.
  3. Compare charged unit prices against agreed prices, line by line.
  4. Group findings by bank, with the statement page or line as evidence, and raise them in one conversation per bank.

That’s the work our Bank Fee Review does for you, at a fixed fee. A free in-browser fee code decoder is in development.

Next step

Want a second pair of eyes on your own setup? Tell us how many banks you work with and what's getting in the way.

Start a conversation