The ABA Routing Number Checksum: How Banks Catch Typos
Every valid ABA routing number passes a mathematical checksum. Banks use this algorithm to instantly detect mistyped routing numbers before funds are moved.
Every valid ABA routing number passes a mathematical test called a checksum. This simple algorithm, built into the routing number's structure from the very beginning, allows banks and payment processors to catch mistyped routing numbers instantly — before any money moves. Understanding how it works demystifies one of the most reliable safeguards in the US payment system.
What Is a Checksum?
A checksum is a number computed from a set of other numbers according to a fixed formula. Its purpose is error detection: if you retype the number incorrectly, the checksum will almost certainly no longer compute correctly, flagging the typo before it causes a problem. Checksums are used throughout computing — from credit card numbers to file downloads — but the ABA routing number checksum is one of the oldest and most widely deployed in finance.
The ABA Modulo-10 Algorithm
The ABA routing number checksum uses a weighted sum formula. Each digit in the nine-digit routing number is multiplied by a specific weight, the products are summed, and the result must be divisible by 10 for the routing number to be valid.
The weights are: 3, 7, 1, 3, 7, 1, 3, 7, 1. Applied to a routing number with digits d₁ through d₉:
(3×d₁) + (7×d₂) + (1×d₃) + (3×d₄) + (7×d₅) + (1×d₆) + (3×d₇) + (7×d₈) + (1×d₉) ≡ 0 (mod 10)
If the result is divisible by 10, the routing number passes the checksum. If not, it's invalid — meaning the number was either mistyped or doesn't correspond to a real ABA routing number.
A Worked Example
Let's check the routing number 021000021 (JPMorgan Chase, New York):
| Position | Digit | Weight | Product |
|---|---|---|---|
| 1 | 0 | 3 | 0 |
| 2 | 2 | 7 | 14 |
| 3 | 1 | 1 | 1 |
| 4 | 0 | 3 | 0 |
| 5 | 0 | 7 | 0 |
| 6 | 0 | 1 | 0 |
| 7 | 0 | 3 | 0 |
| 8 | 2 | 7 | 14 |
| 9 | 1 | 1 | 1 |
Sum: 0 + 14 + 1 + 0 + 0 + 0 + 0 + 14 + 1 = 30. Since 30 ÷ 10 = 3 with no remainder, this routing number passes the checksum.
What the Checksum Catches (and Doesn't Catch)
The checksum is very good at catching single-digit errors and transpositions of adjacent digits — the two most common types of typos. Swapping two adjacent digits almost always changes the weighted sum in a way that breaks divisibility by 10.
However, the checksum cannot guarantee that a number actually belongs to a real, active financial institution. A number could pass the mathematical test but still not correspond to any bank in the Federal Reserve directory. That's why it's important to verify routing numbers against the actual FedACH directory — which our lookup tool does automatically.
Why Does This Matter for You?
Payment processors, banks, and payment apps all run this checksum before accepting a routing number. If you mistype a routing number, you'll almost always get an immediate error rather than discovering the problem days later when your payment fails to arrive. This instant feedback loop has prevented an incalculable number of misdirected payments since the algorithm was formalized.
You can use our routing number lookup tool to verify any routing number against the Federal Reserve directory. For credit unions and banks by state, browse our state directory. Our guides section covers more routing number topics in depth.