How best to classify products
This post is about a solution I found to classifying products and services.
Why would you need to classify products and services?
When you start a business, the empirical methods you use to get up and running work great in the beginning. You are quick and nimble, and you move from point A to point B, then C, and then point X, as you run through your “Inception Based” mind as an entrepeneur (where you know how the end looks already)
So, you know the ending. You know you are making a lot of money. You are tackling all the problems, and have enough resilience to recompose yourself after near-catastrophic problems affront you.
Fast forward a year and a half, and at this point the business is going great, customers are knocking at your door for your great product and sales are growing. You are in heaven, right?
YES!
But only for a moment. You know that at some point keeping track of all those customers, their orders, invoicing, purchases, warehouses, etc. is going to catch up on you. How do you know this? If you are like me and have at least the most basic experience at running a store, you wonder how they keep track of all those items? And if you also had the privilege of sitting behind the counter of a shop, you know that keeping track of inventory can be a tedious nightmare. Maybe you had some previous schooling and great experience and even a great in-house system on a computer that you learned to use. A pesky, clunky system that despite its unappealing interface (whether a paper notebook, or a sophisticated computer) kept things in check for you. You know you need something more sophisticated like that but you confront the first hurdle: Such a system costs a lot of money. A startup like yours cannot afford this.
You quickly compose yourself as you wake up from the dreamworld where items magically arrange themselves in the warehouse, where nothing ever gets lost or stolen, and where the inventory management software is perfect. You realize that you will need to keep track of the inventory of any supplies your business uses in a more professional manner. You further sober yourself up when you realize that a simple excel workbook with multiple spreadsheets linked by the most intricate formulas you learned at school and in random Google/YouTube sessions, will simply not cut it. Users can easily fool such a system. Or, with even more experience, you are aware of the importance of an ERP software system after trying to navigate through the perils of implementing one where the programmers have been fighting in court for rights to upgrade such a system (spending up to 6 years not being able to implement new features or correcting existing bugs due to copyright restrictions!!!). A situation like the last one makes you want to slam your head hard on the table and simply give up.
It was at this point that I began a frantic but highly focused search for ERP software systems. I bumped into many, but the leaders were Odoo and ERPNext. This part is now history for me, as I picked correctly: ERPNext.
Highly customizable, it supported and exceeded everything I needed and much more, with the potential of many future upgrades given a worldwide community that is very active in making it work. I had dodged a strong punch, and dodged it with finesse and flair. Lucky me. Heaven and reality matched again! I could go back to being in entrepreneurial bliss.
Really?
Yes. Really. Almost.
Except when the time came to categorize items. Surely account nomenclature or charting is a complicated matter but I understood the basics. Only 5 types of accounts, and then you make any account needed. I subjected myself to the recommendation of my accountant, with some personal additions from my previously death-defying experience with a custom made ERP software.
How about Item Groups. Surely it is not that important right? I can start using any item code I want, and group as per logical categories my head came up with. This worked great for about one year as I explored many facets of this new software. I now had all the customer and supplier data in a neat format, searchable, indexable, with multiple contacts, and I was even happy creating custom scripts for these forms, so I could geographically locate the addresses for use in Waze or Google Maps. Getting lost on a delivery run or picking up an item is time seriously wasted, and time is money goes the old-but-cliched saying.
At some point, it became painfully evident that grouping items in a classification system would be necessary, given the incessant questions from staff entering items in the stock module and the purchase invoices. Sales was a different aspect, having only about 250 SKU’s for a Hydroponic vegetable grower is complicated enough, but it is only a subset of items that once created, remain relatively fixed. Adding one more item to the inventory for sale is an easy task.
Purchases were more painful to keep track of. How so? It’s not only about keeping things neat and tidy in their organization trays. The idea behind tracking every item bought, used or sold also helps to reduce mistakes in many ways. Take the purchasing cycle of an item, for example:
Not every toilet paper roll is made alike.
There’s toilet paper:

And then there’s toilet paper:

Obviously, the contrast between both these toilet paper examples makes the first one seem more like this:

So, managing items became a basic necessity out of keeping morale high in the company (Starting with the restrooms). I have a mantra: Be Specific! and I openly ask people to be so when dealing with me. I will let you know if you are not being specific, for exactly the same reason that you will want to be specific when having someone purchase toilet paper.
Aside from this need for specificity to boost morale and avoid mistakes and time wasted, once you find a solution that works, you want to continue repeating the behavior with the same item that helped you do this. However, when you begin delegating (and trust me, you will begin delegating at some point, lest you go mad) some agents will be quite creative in inventing ways of skimming the cash from the business. I learned this one in my previous job. One of the most blatant examples was when I received three quotations from different suppliers, printed by the purchase manager. One was outrageously high, the other was quite low, and another one was “goldilocks”: just right. All three had their rates, subtotals and final worth altered via computer. Forget the fact that the font might have been different. No, they were careful enough to pick the same Arial font used in all three. It was the color, size and pixelation of the altered text that gave it away. They expected me to pick the “goldilocks” option, and the story does not end so well. But I had to spend time calling others for a more realistic quote, and they are masters in giving you the information in a convoluted state so you have to guess and do weird math just to get a number that you can compare across all quotations for the same Item.
More recently, I got a SAP Business One® generated quote for repairs, and on this quote, despite having obvious rounding errors, the grand total is inflated by 3,000 local monetary units. Clearly an attempt at the shenanigans experienced at my previous job. The amount there is worth one month’s minimum salary where I hail from.
Thankfully, I had ERPNext to dutifully warn me of this attempt at overcharging after entering the quote.
However, the best practice is to set a budget cap on a specific item that you purchase regularly, and to negotiate a better price in advance with the supplier if your volume is not to change too much throughout a year. Another clever way is for historical price tracking of the same item. This becomes tricky if a different item is entered with a different code. This is why I have restricted item creation to a specific process, where you have control over the coding of items and their groups and the accounts. Prices can change freely, but for each purchase instance, a report can be shown in ERPNext where you can track each individual items different purchase price. It has come in handy in detecting prices that vary beyond 50% of their previous purchase value, and in such cases, which are few, a phone call or e-mail can confirm with the business owner. Other times, you can quote elsewhere, and verify the price has indeed gone up.
Now… you would think that all of this is more of an accounting problem, right?
Yes, but not entirely.
Have you tried to come up with your own organizational scheme for each and every product you buy for your company? Have you asked the people that you have hired to do the same? Chances are, you will have weird looks, or in the scenario where you opt to do this yourself out of trust issues (which I clearly learned to have), it is a massive undertaking.
Enter, UNSPSC
I found this while searching for product classification methodologies online. Despite the fact that we use GS1 to code our products for sale, I was not satisfied with GS1 only. GS1 has a system called GPC (Global Product Classification), and although it does a great job in describing items in detail with attributes, it does not list services. One of the things I like to track line by line is services, since this is where amounts can be seriously inflated and altered.
The obvious choice was UNSPSC and its 4 tier classification scheme, where two digit codes combine up to 59 different categories, with an open usage possibility. To be able to submit requests and vote, the minimum amount to be paid for membership is $350 for a Corporate Individual.
I began by downloading a codeset I found in an excel file somewhere online. After studying it for a bit, I was able to create a Python script to parse through the entire code and load it onto a freemind file. Then I was able to setup a method of creating four separate .csv files, one per level, so I could import it into ERPNext. This took me a couple of weeks, and I finally was successful.
Currently I have all the 49,000 + categories (Family, class, commodity, etc.) working in my ERPNext implementation as Item Groups.
It has saved a lot of time instead of creating a completely new classification scheme. It has also opened up a new world of possibilities. One of them is to leverage a new feature in ERPNext called Hub, where users can publish items in their Stock module to share with other ERPNext users. Having a standardized classification scheme for boths products and services will be quite useful in the future when Hub hits primetime. Tracking individual item prices within categories used in hub might prove handy as a reference point when comparing quoted items. The only requirement would be to correctly identify the commodity group as per UNSPSC, and the proper item to refer to. Linking these can help verify if quoted prices are within an acceptable range.
To be continued…
For now, you would be better served by this Wikpedia article on UNSPSC