# Serial Number Generation

I am working on a product that will need a unique serial number for each device.

Are there any "recommended practices" for serial number generation?

Since I never saw a device with serial number 1, 2, 3 (as they should be to be considered "serial"), I wonder what are the applications of using true serial numbering for the purpose, why the industry doesn't use it and if there is a common standard on this.

• More often than not, there is a random element to serial numbers to prevent somebody from guessing a valid serial number. – Matt Young Mar 18 '16 at 20:23
• it depends what you want the serial numbers to do. Sequential makes them easy to assign, and easy to recall ranges of product in the event of faulty build. Cryptographically secure is necessary if you are going to key software to it, and will stop competitors guessing how many products you have build (Wikipedia 'German Tank Problem'). Once you know what you want your serial numbers to do, you'll know how to generate them. – Neil_UK Mar 18 '16 at 20:28
• It depends on the purpose of the serial number. You may want to put date information to identify failed lots. You may have a fixed size for a barcode, etc... There is also the famous history about German tanks' serial numbers : en.wikipedia.org/wiki/German_tank_problem – TEMLIB Mar 18 '16 at 20:28
• @Neil_UK : Ha ! Same idea as you at the same time ! – TEMLIB Mar 18 '16 at 20:29
• Good records. However you generate the numbers, record them, the date, the production revision etc. It can help identify patterns in failures etc. An anecdote : I help run a mailing list for a specific brand of pre-WW2 lathe (machine tool). The serial number let's people see fairly accurately the age of their machine - and in some cases (the Admiralty model) trace the specific ship in the Royal Navy it was issued to in WW1. – Brian Drummond Mar 18 '16 at 20:55

I can be as much as you want it to be.

Since I never saw a device with serial number 1, 2, 3

That's why we start at 1001 and increment. But an example of a serial number that contains some lifecycle data is that of an eWON unit:

eWON Serial Number: 0607-0003-88
The first 4 digits denote the production year and week. (0607 = YYWW)
The next 4 digits represents a sequential production number. (0003)
The last 2 digits denote the product code which identify the eWON type. (88 = eWON 4001)

This tells you something about the age, the location and batch of production, and the specific type is was configured to (if applicable). Obviously you can expand this with checksum digits or anything you like.

Above serial number can be really helpful if you know that units produced between week 6 and 7 have a problem. You can lookup which customers bought units that match 1806-xxxx-xx to 1807-xxxx-xx and issue RMA.

But you can also hide this data behind 1402 in a database.

• What do you mean by "behind 1402"? – Adam Haun Aug 14 '18 at 20:26
• Generally speaking this is the msot standard approach although encoding differs based on requirements and production database systems. When you are staring at a spreadsheet of hundreds of serial numbers, having semantically useful numbers can be beneficial, you can sort/filter by substring and other details without needing a database connection or cross reference. – crasic Aug 14 '18 at 21:02
• @AdamHaun Number 402, since we start at 1000. – Jeroen3 Aug 15 '18 at 5:32

There is no single answer or standard. However, typically people have some combination of a random/sequential index and a smart number that encodes some information. Additionally, in complex products, major subparts (e.g. PCB's) are usually individually serialized as well.

Remember, generally speaking it is not design engineers that deal with serial numbers day-to-day. (Empathetic engineering)

However, regardless of what scheme choose, I would make sure it plays nice with any company database systems. Which may be prescriptive or inflexible in implementation.

As an example, a major chip manufacturer was recently acquired by another company, and as a result issued thousands of product change notices because the new parent company business systems did not support the - character in the existing part and serial numbers...

I would also encourage you to consider the following

1. Is it sufficient for a unit to be uniquely identifiable?
2. Do you anticipate many alternate manufacturers and complex supply chain?
3. Do you anticipate many variants and subtypes that you may want to differentiate in serial number
4. Is it important for a repair person or a customer to know what parts/lots are inside an assembled unit without needing to open it?
5. Is it critical that competitors and customers can learn no internal information from the serial number (production numbers, lots, and date codes may be trade secret in certain instances).
6. If you have to do a recall, service bulletin, or other service event, is it important that you can call out ranges of serial numbers without having to list them individually?

Other things to consider:

• The needs of Service and Sales personnel.

It may seem reasonable to query a production database today, but may become problematic if you have a large repair crew or contractors/distributors/affiliates that now require those databases to be exposed or otherwise shared.

• The needs of contract manufacturers and mfg personnel

Contract manufacturers can save you effort by serializing for you, if they can do that without asking you for a batch of new numbers it can save you time and effort

• Sanity

Meaningless, long numbers are easier to lose track of. If a production technician can look at a unit and determine what it is and if its in the right place based on the serial number, this can save much time and frustration vs a computer lookup.