Vendor Match version 2

Elliot Koss
6 min readJan 31, 2021

**I’m launching a newsletter in 2022 called Personal Finance in the Blockchain Age. It would make my day if you sign up.**

When using a financial management tool, the most foundational elements are connecting bank accounts, categorizing all transactions, and showing accurate data. If you mess up on ANY of those key features, you will lose trust while retention plummets. It’s still early days for PluFin, which is the right time to get the fundamentals in a solid place.

When it comes to categorizing transactions, PluFin didn’t have the right tool in place to easily categorize my own transactions without feeling overwhelmed. At a high level, you want to categorize each transaction so that you can track budgets, but even more importantly, you want to make sure that the different types of transactions are identified and catalogued correctly, such as expenses vs income vs investments vs transfers vs payments vs fees, etc. It’s basically one of the most essential parts of building out any financial planning tool, and if I find the current features hard to use, there’s no way that a random user would find the experience positive.

The ideal solution is a machine learning model that categorizes transactions automatically so that users just connect their bank account and all of their transactions are categorized instantly (and accurately). Automatic categorization is generally what the competition already does to varying degrees of accuracy, and it’s the source of the most frequent complaints when I talk with users and for me as well.

Automatic categorization can get so granular and provide so much value that some companies are trying to build an entire business just to identify subscriptions and notify users. This is simply one of many features that PluFin will have baked into the product in a month or two — how often do you need to review and reduce your subscriptions anyway?

Still other companies use the ability to categorize fees accurately as a way to alert the user and encourage specific action, such as recommending that you ask your bank to waive a $15 overdraft fee. In other cases, they will offer to do these services for you. It’s not yet clear the types of fees that my users may be dealing with. It’s very possible, based on initial interest plus the pricing model I’m adopting, that PluFin will be naturally more useful for those with wire fees than overdraft fees.

There are a lot of different features that can be built once transactions are accurately categorized, but until the accuracy is reliable, it won’t matter how many features PluFin launches since users will find no reason for a repeat visit.

A machine learning model that would handle transaction categorization at this level would require a large data set of transactions / vendors that have already been categorized manually by users to ‘seed’ the machine learning model. The better and more diverse the seed data, the more precise the categorization-matching machine learning model.

To be honest, a complete machine learning model at this point is probably overkill. PluFin has little seed data (my own plus a few subscribers), and it will probably need 100K+ categorized transactions for the model to categorize most of the transactions that are input. On top of this, I haven’t done much machine learning work, so there’d be some lost time in that learning curve.

But I have and could build a recursive model, which would technically meet the definition of machine learning. I just refuse to call it machine learning since it’s using very basic logic to do the actual matching, but it should improve over time.

And that’s what I did. I built a new version of the Vendor Match tool that is another step towards a more complete automated vendor matching experience.

Features

The Vendor Match tool in PluFin just underwent a major upgrade. There are a few things to unpack, so let’s start with the visual design which includes many more options for categorizing a transaction and matching it with a vendor. Plus, it dynamically changes to show or hide info, including all of the transactions that were grouped by the ‘Best Guess’. And there is an option to add a new vendor, category, or subcategory.

PluFin’s Vendor Match version 2

If you’re seeing this for the first time, you likely don’t recognize the differences or improvements over the current experience. So here’s a screenshot for reference.

PluFin’s Vendor Match version 1

The original Vendor Match feature (bottom) was intended to make it easy to categorize transactions. You’d match a transaction with a vendor, and you’d match the vendor with a category / subcategory. This works in most cases, so it was generally a good solution.

But version 1 was a huge pain in the ass. While you could categorize one transaction / vendor and then PluFin would identify and categorize similar transactions that weren’t categorized yet, there was no language explaining this, and it certainly wasn’t intuitive. Plus, it was severely limited in the controls the user had to change and edit data about the transaction. I was overwhelmed trying to categorize 700+ transactions and having to click sooooo many buttons. I’m definitely going to cherish my first users who actually use this tool since they are helping to make PluFin better and more useable by increasingly more users.

The new experience (top) groups transactions that PluFin has detected are related so that you can match the vendor, category, and subcategory one time and apply it to each grouped transaction. By showing the user the grouping with the highest number of transactions, the manual categorization process help the user move faster with their transaction categorization and it will pull in more data faster that should help improve automated categorization for future users.

For now, only the vendor with the most grouped non-matched transactions is shown to the user. One at a time will help the user focus, but I’d like to add more so that the user can choose to skip over a vendor for a bit while they categorize ones that are easier. For now, you have to make your changes to the vendor’s categorization and then click a button to submit.

Going with only one vendor at a time is a technical limitation. While I know that there is a workaround to increase the number of inputs that can be posted via a form, increasing the number of fields on a page does nothing to speed up the user experience. Rather than use the workaround (which may also be more expensive), I’m planning to add a new feature in the next few weeks that autosaves every change that you make. This will increase the number of vendor groupings PluFin can load on the page.

When a user matches a transaction with a vendor, category, subcategory, or subscription, it’s added to the user’s rules so that going forward, similar transactions will be classified the same way. Once we have categorization data for a vendor / transaction / user, we’ll begin using the data in the future for identifying new user transactions based on the most common categorization of the same vendor / transaction by all users.

This feedback loop creates the same type of self-improving model that you’d find in machine learning. It’s low-grade machine learning, but I’m definitely not using a complex matching algorithm for the transaction details data, so I’m trying to not just use a buzz word.

Wrapping Up

It took a few weeks to put all the details of this feature in place to launch the initial working version 2, and yet there are more elements that are needed to make version 2 complete.

Over the next few weeks, I’ll be working on some subtle improvements to the visual user experience and invisible (yet incredibly important) improvements that match vendors and categories increasingly better and faster as more data is available.

If all goes well, you won’t even be aware all this work happened since the auto matching experience will simply work. Until then, the manual vendor match experience needs to be simple, effective, and fast. And this launch was a big step forward to that end.

If you enjoyed this update, please clap for / follow me on Medium or Twitter. I write a weekly update about PluFin as a part of my Build In Public commitment. If you’re an investor interested to learn more about the business, please signup to receive the monthly update. The first one will go out in early Feb, and I’ll also write a tweet thread with a summary.

--

--