Skip to main content

Don't use OILS

Don't use OILS.  Ever.  Just don't.

No, I don't mean essential oils, and I don't mean petroleum.  This isn't a post about the evils of the supplement industry or petroleum cartels, although I do love my 2001 Honda Civic GX that runs on compressed natural gas (CNG).

I'm talking about these four letters in the alphabet: O - I - L - S.  That's "oh - eye - eL - ess".  Specifically, don't use these letters for numbering records in business systems (ERP) and their databases.

In ERP and SQL, we assign unique numbers to records like invoices or purchase orders.  This helps users differentiate each records.  We also often use "smart numbering" to differentiate them from other record types.  We may not want sales order 57596 confused with purchase order 57596, so many people will just use SO57596 and PO57596 instead.  Smart, right?   Wrong.  "Smart numbering" has its good and bad points, but don't use the four letters in OILS to do it.  Ever.  They are your enemy.

Why?  Because these four letters are too visually ambiguous.  ERP users and even SQL report writers will inevitably confuse them for other letters or numbers.

First, the letter "oh" is far too easily confused with the number zero, as in "O 0 o".  Sure, I'm enough of a geek to know that the skinny character is the number zero and the other two are letters.  That's obvious, right?  Wrong.

Your vendor's customer service rep will look at your signed, scanned, faxed, fuzzy order.  They'll mis-enter your purchase order number that's supposed to be "PO000003462".  You just wanted a single "oh" and five zeros.

And don't even get me started on the ridiculousness of using leading zeros for future-proof sorting instead of just using an integer.  I don't care how successful your business is.  You're not going to send a billion POs before your numbering scheme is irrelevant.  In the meantime, "How many zeros is it again?  One, two, three,... nope, that's a letter... one, two, three, four,..."

The letter "ess" is similar, since it gets confused with the number five, as in "S 5 s".  Again, it seems easy because you're looking for it right now.  But it's going to cause your business users trouble.  At very least, it will annoy them.

Then we have the letters "eye" and "eL".  These letters are too easily confused, as in "L l 1".  Even with my OCD geeked-out radar, I can barely tell any difference between the lower-case letter and the number.  Even when you see the slight differences, which one is which?  (The number is on the right.)

You might be tempted to think integrated ERP systems (internally) and EDI systems (externally) will save us from this.  You'd be wrong.  I love ERP and EDI.  But in the short-term, they make it worse.  Once a document number is mis-keyed — and they will be — you won't see it until it causes a problem.  In the past, documents went through multiple hands where errors could be caught.  Today, you may not see it until your documents and transactions are posted and can't be changed.

So what's the alternative?  One is to ban letters and smart numbering altogether.  Smart numbering is tempting, but I always beg businesses to avoid it.  In a year or two, that 5-dimension GL code will be a major pain because you suddenly acquired a tenth business unit and your BU dimension is a single character.  Or your new products no longer fit with the smart item numbering scheme you created four years ago.

When you can't avoid smart numbering, just ban OILS.  I know, I know.  Sales orders intuitively want to be "SO", and a purchase order is always referred to as a "PO" in business.  But avoid the temptation.  Using "P" is good enough for a purchase order prefix, and sales orders can live with "K" when your company name is Krispy Kreme... unless, of course, you're acquired by Dunkin' Donuts.

Yes, font creators should be slapped for being more interested in aesthetics than functionality.  One day we will assault them properly, ban certain fonts on pain of death, modify the Latin alphabet worldwide, and let our robot servants identify everything with GUIDs.  Until then, let's just avoid the problem and ban the OILS.

Comments