To the human part: If you send a letter to a residence; and only include a street address plus 5-digit Zip code, or a street address plus city/state without a Zip code; that's enough to get the letter through. The envelope might be scanned at the originating point, and the image sent to a human for review, or the letter might make it to a post office at/near the destination, and a human will take it.
Sticking with the "rd" / "road" example: When the bank goes to mail something to you, I wouldn't be surprised if they run the address through a validation program. That validation program would catch things like "rd", replace it with the appropriate term, and also generate the Zip+4 code. What's missing is feedback from that program. So the bank might continue to have "rd" in your address, even though it's wrong.
1600 PENNSYLVANIA AVE NW
WASHINGTON DC 20500-0005
I've used this tool before to double-check some more wonky addresses before sending mail to them. I'd be surprised if they don't also offer an API for the service.
They managed to deliver mail to the previous address for years, so I guess they were able to figure it out.
Why do you think I’m upset? It was slightly annoying but not really a big deal, easy enough to fix, just thought it was a funny story.