Picture this: you’re driving to work and swing by Starbucks to buy your usual Venti mocha with an extra shot. Don’t worry, you funded your “☕ Fancy Coffee” category, so there is zero guilt or second-guessing with this purchase. Just pure mmmm.
But later that week, when you’re approving transactions, you don’t see “Starbucks.” Instead, you see a payee like this:
POS Withdrawal STARBUC #3562 2024-09-14 dbt crd exp on 05/28AUSTIN TX US
That’s what we at YNAB call a “messy payee.” And we don’t like them one bit.
If your bank has ever done this to you, you know it can be annoying to clean it up. And of course, if you’re spending money with a partner, it’s worse. Instead of funding your wish farm together on your money date night, you’ll be combing through transactions like a crime scene, accusing each other of spending $350 on ice cream at a shop called “Coned,” before one of you realizes that it’s actually your shared “Con Edison” electric bill.
So, here’s the good news: We fixed a lot of those messy payees!
The next time you import transactions, you’ll see more familiar names and a lot less junk. And maybe this is something you’ve noticed, and I want to explain why. It’s also a chance for me to really geek out on where tech meets helping people love how they spend money, which is my happy place.
Why do messy payees exist in the first place?
At YNAB, we want you to love how you spend your money. But of course, you need to know how you spend your money, and where you spent your money in the first place. Unfortunately, many banks and merchants make this harder than it should be.
Let’s go back to that Starbucks example. Here’s what it looks like coming into YNAB:
POS Withdrawal STARBUC #3562 2024-10-14 dbt crd exp on 05/28AUSTIN TX US
Many of the banks and transaction providers that we use do their best to fix this by removing some of the cruft, but you can still be left with less-than-helpful payees like “STARBU” or “CONED.” Up until recently, this was a pretty hard problem to solve. Luckily, we now live in the future.
Why has it traditionally been hard to fix?
Take a payee like this:
wholefds bnd 2 10/20 #xxxxx#### purchase wholefds bnd 104 bend
It’s somewhat straightforward, albeit time-consuming, to write a program to get rid of a lot of the stuff we don’t care about in a payee like that, like dates, xxxx’s, store numbers, etc. After running a program on the payee above, you’d be lucky to be left with “wholefds” That’s better, but of course, what you really want to see in your list of transactions is “Whole Foods.”
It’s pretty easy for a human to see that this is “Whole Foods,” but unfortunately we have to tell a computer exactly what to do. We haven’t had the luxury of writing a program that asks the computer, “What do you think this messy payee should be?”
Now some of you might be thinking, “No problem! Write a program that says if a payee has ‘wholefds’ in it, just translate that to “Whole Foods.” Admittedly, that rules-based system works for some payees, but there are millions, billions—one might even say kajillions—of distinct payees. Furthermore, this breaks down as soon as you have a meaningful variant like “wholefds cafe” or subtle variants like “whole fds,” “whole foo,” etc. The list quite literally goes on and on.
And that’s just for one grocery store. Imagine trying to account for every single coffee shop location, online store, and tech savvy Girl Scout that accepts credit cards for her cookies. The system quickly falls apart.
Why is it easier to fix now?
Recently, there have been incredible advances in “Large Language Models” (LLMs). LLMs—ChatGPT is an example many people have heard about—are programs that make it possible to process language in a “natural” or “fuzzy” way that we couldn’t before. Whereas traditional programs need to be told exactly how to turn “wholefds” into “Whole Foods”, new language models can be programmed to recognize things that simply look like “Whole Foods”. In fact, in a manner of speaking, they actually do now let us write code that asks, “What do you think this messy payee should be?”
So before, that old messy payee looked like this:
wholefds bnd 2 10/20 #xxxxx#### purchase wholefds bnd 104 bend
And now, the cleaned up payee looks like this:
Whole Foods
The ability to process imprecise language at scale like this is something that we programmers only dreamed of until now. I have been programming for YNAB since 2006, when it was still a wee spreadsheet, and to say I’m extremely excited about this advancement in technology would be an understatement. This has already unlocked things that were previously impossible, and promises to enable so much more for your YNAB experience.
Payee perfection?
Will all your payees be perfect from here on out? Not quite. For this first release, we focused on the most popular million or so payees, so some merchants might get missed. And of course, some messy payees will slip through since banks are coming up with new ways to make payees even messier all the time.
Lastly, YNAB will occasionally recognize a payee incorrectly—say, cleaning “American A” to “American Airlines”. That’ll be right 99.9% of the time for 99.9% of people, but for someone like me who frequents “American Armadillo Supplies,” it’s a miss. (Don’t worry: My “😍 Fluffy the Friendly Armadillo 😍” category is well funded.) We did our best to prevent this of course, but if something like this happens to you, rename the transaction and YNAB will remember it going forward.
Enjoy that clean payee feeling
The next time you review your transactions, we hope these cleaner payees allow you to spend more time genuinely reflecting on your spending, and less time asking Google or your spending partner what the heck “OTF Charlottesville” was.* Now if you’ll excuse me, I’ve got some armadillo supplies to pick up.
*To save you some time, “OTF Charlottesville” is “Orangetheory Fitness.”
YNAB feature updates are always fun, but the thing we’re most excited about updating is your money mindset. With the YNAB app and method, you’ll find joy in spending you never thought possible. Try it free for 34 days!
Publisher: Source link