History / Originality Got a question about 1982-1992 Camaro or Firebird history? Have a question about original parts, options, RPO codes, when something was available, or how to document your car? Those questions, answers, and much more!

Check digit calculation, anyone remeber how to do it?

Thread Tools
 
Search this Thread
 
Old Feb 11, 2009 | 03:16 PM
  #1  
RPM WOT L 98's Avatar
Thread Starter
Senior Member
iTrader: (3)
 
Joined: Nov 2002
Posts: 887
Likes: 3
From: Chicago, IL
Check digit calculation, anyone remeber how to do it?

Anyone remeber exactly how to calculate the check digit from a VIN?
I know each letter gets assigned a numerical value, is it the letter's numerical order in the alphabet?
Reply
Old Feb 11, 2009 | 07:07 PM
  #2  
wildjeff's Avatar
Senior Member
20 Year Member
iTrader: (1)
 
Joined: Feb 2004
Posts: 627
Likes: 78
From: Seattle
Car: 1983 Trans Am
Engine: L69 5.0L HO
Transmission: Manual
Axle/Gears: 3.73
Re: Check digit calculation, anyone remeber how to do it?

Yes, I have it on my decode page.
http://www.82firebird.com/82decoding.aspx

I also wrote a little app that you can use to find the check digit.
http://www.82firebird.com/downloads.aspx

Here it is though.
To determine the check digit you need to take the VIN and assign any letters in the VIN with the set numbers below:
A = 1, B = 2, C = 3, D = 4, E = 5, F = 6, G = 7, H = 8, J = 1, K = 2, L = 3, M = 4, N = 5, O = 6, P = 7, R = 9, S = 2, T = 3, U = 4, V = 5, W = 6, X = 7, Y = 8, Z = 9
Any numbers in the VIN remain the same and you will end up with a 17 digit number. Then multiply each of the 17 digits by a set "weight" (multiplier). The weight applied to each digit is as follows:
1st = 8, 2nd = 7, 3rd = 6, 4th = 5, 5th = 4, 6th = 3, 7th = 2, 8th = 10, 9th = 0, 10th = 9, 11th = 8, 12th = 7, 13th = 6, 14th = 5, 15th = 4, 16th = 3, 17th = 2
After multiplying each VIN digit by the associated weight - add up the results of all 17 products. Then divide by 11 and the remainder is your check digit.
If the remained is 10, then the check digit is 'X'.
Here's an example:
VIN = 1G1BL52P7TR115520 (note '7' is the check digit)
VIN 1 G 1 B L 5 2 P 7 T R 1 1 5 5 2 0
Assigned Values 1 7 1 2 3 5 2 7 7 3 9 1 1 5 5 2 0
Multiplier 8 7 6 5 4 3 2 10 0 9 8 7 6 5 4 3 2
Add the products: (1 X 8) + (7 X 7) + (1 X 6) ... (0 X 2) = 337 Divide 337 by 11 which gives you 30, and a remainder of 7 which is the same as the 9th digit of the VIN.
Reply
Old Feb 11, 2009 | 09:23 PM
  #3  
RPM WOT L 98's Avatar
Thread Starter
Senior Member
iTrader: (3)
 
Joined: Nov 2002
Posts: 887
Likes: 3
From: Chicago, IL
Re: Check digit calculation, anyone remeber how to do it?

Thanks Jeff!

Let me run this idea that I have past you and see if you can assist with an easier way of me doing this.

As it appears, you have a wealth of info on the early cars. Well I am trying to create something similar on late cars, specifically 1992 Firebirds, more specifically 92 Trans Ams.

I want to create a database of option combination production figures for 92 TAs. I can run the VINs through GM and get RPO printouts, then I can know exactly how many cars were built in a certain color with a certain interior trim and a certain engine etc etc.

To do this I need all 92 Firebird VINs. I have about a 3rd. I am particularly interested in L98 Trans Ams which leaves me with about 350 or so. For the VINs that I don't have yet, I was thinking of this:
I know all the VINs will be 1G2FW238 then the check digit then NLxxxxxx. Using your guide, I can calculate the set value for the first 8 characters, and the NL, then I can calculate the value for the sequence number starting from 209xxx which is where my list leaves off and going to 227xxx for the last Firebird made. So by putting the next sequence number into my "created" VIN I can get the check digit, then just punch it into Carfax, not the subscription side of it, but just the initial VIN check. It will tell me if it that sequence number lines up with a L98 TA. If it's not a good VIN then I go to the next seq number.
Yes I am crazy, bc this will be time consuming, but it seems like it will work if I actually were to do this.

Now, do you have any ideas as to how I can make these multiple calculations easier/faster?

Thanks
Mark
Reply
Old Feb 11, 2009 | 11:28 PM
  #4  
wildjeff's Avatar
Senior Member
20 Year Member
iTrader: (1)
 
Joined: Feb 2004
Posts: 627
Likes: 78
From: Seattle
Car: 1983 Trans Am
Engine: L69 5.0L HO
Transmission: Manual
Axle/Gears: 3.73
Re: Check digit calculation, anyone remeber how to do it?

If your crazy then so am I. I have a newer version of my VIN check that will do what you want find the valid VINs. I haven't posted it because I wrote it in .net so it about 60 megs. I've run the calculation and will PM you results. There are about 100K valid VIN combos but you can trim it down quite a bit. I'll just send you the raw data.

With 92 I think your task is easier, with 82 there is less online data.

Keep in mind the list is valid VINs and NOT cars built. the number of real cars is much smaller.

good luck.

Last edited by wildjeff; Feb 12, 2009 at 09:14 AM.
Reply
Old Feb 11, 2009 | 11:45 PM
  #5  
GTA50's Avatar
Member
 
Joined: Jun 2007
Posts: 487
Likes: 1
From: Chilliwack, B.C., Canada
Car: '88 GTA, '89, '94 Firebird, '84 T/A
Engine: 5.0L TPI (GTA); '89 -2.8; '94 -3.4
Transmission: 5 speed (for all 3),auto for T/A
Axle/Gears: 3.45 (GTA only)
Re: Check digit calculation, anyone remeber how to do it?

I think the only problem with the RPO options side of the equation is that I have tried to run VINs through GM here in Canada for a number of GTA owners and only get valid VINs but no RPOs. The problem is that in Canada, they maintained records since 1980 but in the US it was pretty much hit and miss until much later.

On the other hand, I have the RPOs for my Thirdgens (1984 T/A, 1988 GTA and 1989 Firebird) and if you want to see about running the numbers and see if you can match, I'm willing to pm you the RPO's to see about accuracy.

HTH

Gary.
Reply
Old Feb 12, 2009 | 08:58 AM
  #6  
okfoz's Avatar
Moderator
25 Year Member
Liked
Loved
Community Favorite
 
Joined: Mar 2001
Posts: 14,298
Likes: 197
From: Doghouse ······································ Car: 1989 Formula 350 Vert Engine: 350 L98 Transmission: 700R4 Axle/Gears: B&W 3.27
Car: 87 Formula T-Top, 87 Formula HT
Engine: 5.1L TPI, 5.0L TPI
Transmission: 700R4, M5
Axle/Gears: Sag 3.73, B&W 3.45
Re: Check digit calculation, anyone remeber how to do it?

IF you look Europe now has CARFAX, so you may be able to extend your search.

John
Reply
Old Feb 12, 2009 | 09:35 AM
  #7  
daveb123's Avatar
Member
 
Joined: Jan 2008
Posts: 169
Likes: 0
From: Austin TX
Car: 82 Z28
Engine: 305
Transmission: BW T-10
Axle/Gears: 3.23
Re: Check digit calculation, anyone remeber how to do it?

I'm not sure about GM, but most other car makers just skip a # on the check digit for the next VIN, after a 1 comes a 3, and then 5, and so on. I've found this to be true on lots of non-GM stuff. If you have access to GM RPO data , you could easily test my theroy by taking a known VIN and "make up" the next car- if your known VIN has a "7", the next car would have a "9"
Reply
Old Feb 12, 2009 | 12:33 PM
  #8  
okfoz's Avatar
Moderator
25 Year Member
Liked
Loved
Community Favorite
 
Joined: Mar 2001
Posts: 14,298
Likes: 197
From: Doghouse ······································ Car: 1989 Formula 350 Vert Engine: 350 L98 Transmission: 700R4 Axle/Gears: B&W 3.27
Car: 87 Formula T-Top, 87 Formula HT
Engine: 5.1L TPI, 5.0L TPI
Transmission: 700R4, M5
Axle/Gears: Sag 3.73, B&W 3.45
Re: Check digit calculation, anyone remeber how to do it?

GM check digits are calculated by turning all letters into reletive numbers, then multiplying each character by a different number for each position, for example the first position I want to think was x10, then x9 etc... then you use the remainder to calculate the check digit.

John
Reply
Old Feb 12, 2009 | 05:36 PM
  #9  
daveb123's Avatar
Member
 
Joined: Jan 2008
Posts: 169
Likes: 0
From: Austin TX
Car: 82 Z28
Engine: 305
Transmission: BW T-10
Axle/Gears: 3.23
Re: Check digit calculation, anyone remeber how to do it?

Originally Posted by okfoz
GM check digits are calculated by turning all letters into reletive numbers, then multiplying each character by a different number for each position, for example the first position I want to think was x10, then x9 etc... then you use the remainder to calculate the check digit.

John

Interesting. I wonder if anyone has a string of good VINs on cars that are all one after the other- it would be cool to see how random the check digits are.
Reply
Old Feb 12, 2009 | 09:52 PM
  #10  
69-er's Avatar
Senior Member
25 Year Member
 
Joined: Oct 1999
Posts: 684
Likes: 222
From: Alamogordo, NM, USA
Re: Check digit calculation, anyone remeber how to do it?

OK, maybe a dumb question, but what is the purpose of the check digit?
Reply
Old Feb 13, 2009 | 08:03 AM
  #11  
okfoz's Avatar
Moderator
25 Year Member
Liked
Loved
Community Favorite
 
Joined: Mar 2001
Posts: 14,298
Likes: 197
From: Doghouse ······································ Car: 1989 Formula 350 Vert Engine: 350 L98 Transmission: 700R4 Axle/Gears: B&W 3.27
Car: 87 Formula T-Top, 87 Formula HT
Engine: 5.1L TPI, 5.0L TPI
Transmission: 700R4, M5
Axle/Gears: Sag 3.73, B&W 3.45
Re: Check digit calculation, anyone remeber how to do it?

Originally Posted by 69-er
OK, maybe a dumb question, but what is the purpose of the check digit?
To verify the VIN, especially when someone goes into the DMV or as we call them in MI the Secretary of State or SOS. Basically it makes sure that the person that is trying to register the car, or get insurance for the car actually writes down the number correctly. Keeps 1's and L's from being mistaken, or numbers transposed.

Originally Posted by 69-er
I'm not sure about GM, but most other car makers just skip a # on the check digit for the next VIN, after a 1 comes a 3, and then 5, and so on. I've found this to be true on lots of non-GM stuff. If you have access to GM RPO data , you could easily test my theroy by taking a known VIN and "make up" the next car- if your known VIN has a "7", the next car would have a "9"
Actually you are correct, to a point. If you have consecutive cars that have the same Engine, and the same options then yes they would be offset by 2, Vin 00001 is a 0 therefore vin 00002 is a 2, then 4 and so on. Unfortunately as soon as you put different engines in the mix, and different options, like Trans Am vs S/E vs Firebird then that completely throws everything off. Basically changing the engine changes the VIN. And changing the body style also changes the VIN... SO with cars that all have the same engine & same body it would ring true. Otherwise not.

Actually the reason for this is really simple, the last digit is multiplied by 2.

Verts also would change the every other number thing as they have a 3 vs a 2...
Reply
Old Feb 13, 2009 | 11:58 AM
  #12  
RPM WOT L 98's Avatar
Thread Starter
Senior Member
iTrader: (3)
 
Joined: Nov 2002
Posts: 887
Likes: 3
From: Chicago, IL
Re: Check digit calculation, anyone remeber how to do it?

Thanks Jeff for the list. I can easily eliminate anything 227xxx forward per check digit, I have everything up to 209xxx so I'll cruch some numbers this weekend and see what I come up with.

I love the off season for doing stuff like this.
Reply
Old Feb 16, 2009 | 03:38 PM
  #13  
kizz's Avatar
Senior Member
iTrader: (1)
 
Joined: Nov 2000
Posts: 960
Likes: 1
From: Fletcher, NC, USA
Car: 1982 Recaro T/A
Engine: LU5 CFI 305 V8
Transmission: TH-200C
Axle/Gears: 3.23 F-body Fanatic: Yes
Re: Check digit calculation, anyone remeber how to do it?

This is kinda nerdy for those who wish to skip it so..

http://ohok.com/82recaro/vin.mv

I don't know if this helps you, RPM WOT L 98, but that's a link to my check-digit calculator that will fill in a missing check digit, and it'll do it on more than one VIN at a time. It's not smart enough to know if the VIN you provided is valid or invalid; all it does is it calculates a check digit on what you fed it. If you feed it an L98 Trans Am VIN like "1G2FW238?NL200001" (notice the unknown field, the check digit, is a question mark), it will assume the sequence number is a L98 Trans Am, regardless of if such a car really exists, and it'll calculate that check digit correctly and return "1G2FW2383NL200001" and provide you a link to Carfax, regardless of if the VIN exists or not.

This is the foundation of how many years ago, I looked up the entire run of 1982 Firebirds and actually found 80% of all VINs using Carfax and Autocheck.com. With 1992 you're only dealing with one assembly plant and only 28,000 cars, as opposed to what I had to deal with, i.e. 2 assembly plants and 116,000 cars. If I could somehow check my list against PHS's, I know my list would be spot on. Anytime I see an '82 Firebird for sale with its VIN posted for example, I check it and it's already in my database, so it's very accurate. That whole project was a very slow, long, tedious process that took months, and required trial&error unix shell scripting, multiple IP addresses (coz they kept banning me, with my millions of requests!), etc. I don't think I could do it again for 1992 or otherwise I'd do it for you.

If you want to do ten at a time, leave off the last digit, as in 1G2FW238?NL20000 or if you want to do 100 at a time use 1G2FW238?NL2000 , etc. I did up to 10,000 and it worked, but it was slow. By using these three entries (1G2FW238?NL20 1G2FW238?NL21 1G2FW238?NL22) you'll get all 28000 VINs and then some, but again it thinks they are ALL L98 Trans Am's because that's what the rest of the VIN says. You gotta change the VIN layout if you're looking for some other type of car.

Last edited by kizz; Feb 16, 2009 at 03:46 PM.
Reply
Old Feb 16, 2009 | 08:59 PM
  #14  
RPM WOT L 98's Avatar
Thread Starter
Senior Member
iTrader: (3)
 
Joined: Nov 2002
Posts: 887
Likes: 3
From: Chicago, IL
Re: Check digit calculation, anyone remeber how to do it?

Kizz, thanks for the info. I got the whole list generated by WildJeff, all L98 TA possibilities with valid check digits. For all digits 1-X. Now, of course they ran from 200001 to 299999 so I can eliminate 27xxx and above bc they don't exist and run the rest thought the initial vin check at carfax or autocheck. The only hurdle that I found is that CFX tells me that every vin on my list is legitimate, well of course, the vin adds up to be a L 98 TA/GTA, but there are no records found for most of the cars. I guess I'll have to consider that the cars that there are no records for are not valid vins. Because as soon as a car is registered it will pop on on CFX or Autocheck, so no records means not valid as far as I can imagine.Unless of course the car just remains on an MSO.

So I am slowly working down the list, I think that this will produce real and factual results. Will keep you guys updated.
Mark
Reply
Old Feb 16, 2009 | 09:07 PM
  #15  
wildjeff's Avatar
Senior Member
20 Year Member
iTrader: (1)
 
Joined: Feb 2004
Posts: 627
Likes: 78
From: Seattle
Car: 1983 Trans Am
Engine: L69 5.0L HO
Transmission: Manual
Axle/Gears: 3.73
Re: Check digit calculation, anyone remeber how to do it?

I like how the VIN generated can be clicked and it will go to carfax, thats handy.

Something else to think about. computer records for most states start in the mid 90's. so if a cars was bought in 90 and totaled and crushed in 91. carfax would probably not have a record of it. The only thing that you could really get from them is that a car did exist but not that it didn't.
Reply
Old Feb 16, 2009 | 10:05 PM
  #16  
RPM WOT L 98's Avatar
Thread Starter
Senior Member
iTrader: (3)
 
Joined: Nov 2002
Posts: 887
Likes: 3
From: Chicago, IL
Re: Check digit calculation, anyone remeber how to do it?

Originally Posted by wildjeff
Something else to think about. computer records for most states start in the mid 90's. so if a cars was bought in 90 and totaled and crushed in 91. carfax would probably not have a record of it. The only thing that you could really get from them is that a car did exist but not that it didn't.
Now is that really true Jeff? Every VIN that I have run from your list on CFX has come up as a Trans Am/GTA, but with no records, I've only done about 20 so far. I used to think that if CFX came back with a car description on a vin that meant that the car existed, but now after my search I find that it seems that CFX decifers the vin and if the check digit matches like it does in the list that you gave me, it tells you that the car can theoretically exist, basically tells you that the vin is properly matched, but there are just too many that I am finding with 0 records and not one vin that I have put in has come back as not existing.

So the way I see it from my experience so far is that CFX will tell you if the vin is "possible" and with your correctly generated list I am willing to bet that all the vins will come back possible even past the 227xxx cutoff point even though we all know that is impossible. But the ones with no history are prolly not real cars. So just running a vin through cfx and getting a result of the car description I don't think means that a car existed or exists.
Reply
Old Feb 16, 2009 | 10:18 PM
  #17  
kizz's Avatar
Senior Member
iTrader: (1)
 
Joined: Nov 2000
Posts: 960
Likes: 1
From: Fletcher, NC, USA
Car: 1982 Recaro T/A
Engine: LU5 CFI 305 V8
Transmission: TH-200C
Axle/Gears: 3.23 F-body Fanatic: Yes
Re: Check digit calculation, anyone remeber how to do it?

The only way to know for (relatively) sure that a VIN is valid, is if Carfax or Autocheck come back and say "we found 6 records" or some other number above 0 records. It will say it found 0 records for *any* VIN as long as it's in a valid format for a plausible car with valid check digit.

This is where it gets more hard and tedious. those 27xxx VIN's jeff generated for you, they are all for L98 Trans Am's only, because the rest of the VIN is hardcoded that way. The tough part is you have to come up with all possible variations of the VIN. I'm not that familiar with 1992 VINs so I don't know how many combos there are, but for each of the combos you have to run 27xxx more tests. But for example if there's 4 engine types (V6 LB9 LO3 L98 or whatever), there's 2 body codes (vert and non-vert), there's 2 model codes (Firebird and Formula code versus TA and GTA code), that's 4 x 2 x 2 = 16. That means you have to run 16 x 27569 (which is 441104) VINs thru Carfax *and* Autocheck if you want maximum results (that's 882208) to grab them all. You see the scale of a project like this? Nobody's gonna sit there and click eight hundred thousand times and jot down the results manually. You'd need a batch script to run them through Carfax for you and sort the results. That's the hard part. In my case with the 1982 VIN run, it wasn't 882208 combos, but 3730976 different combos to look up. Yikes, eh. I wrote some custom scripts to do it for me, which I have long since erased.
Reply
Old Feb 16, 2009 | 11:10 PM
  #18  
wildjeff's Avatar
Senior Member
20 Year Member
iTrader: (1)
 
Joined: Feb 2004
Posts: 627
Likes: 78
From: Seattle
Car: 1983 Trans Am
Engine: L69 5.0L HO
Transmission: Manual
Axle/Gears: 3.73
Re: Check digit calculation, anyone remeber how to do it?

I emailed both autocheck and carfax and asked if they would print me a list of VINs for 82s that they have on file, it would be super easy for them. wouldn't take more the 15 minutes and of course I offered to pay but they both came back and said they don't do custom jobs.

Here is a sample of the issue kizz was talking about

Here are two cars, both can't exist
(Real)1G2FW2181KL221184
(Fake)1G2FS2187KL221184

The first one, carfax returns 19 records, the second one it returns 0 records but does not complain because the VIN is valid.

What you can do is run all possible combos then you could eliminate the cars you don't want. but that would take awhile
Reply
Old Feb 17, 2009 | 08:52 AM
  #19  
okfoz's Avatar
Moderator
25 Year Member
Liked
Loved
Community Favorite
 
Joined: Mar 2001
Posts: 14,298
Likes: 197
From: Doghouse ······································ Car: 1989 Formula 350 Vert Engine: 350 L98 Transmission: 700R4 Axle/Gears: B&W 3.27
Car: 87 Formula T-Top, 87 Formula HT
Engine: 5.1L TPI, 5.0L TPI
Transmission: 700R4, M5
Axle/Gears: Sag 3.73, B&W 3.45
Re: Check digit calculation, anyone remeber how to do it?

Has anyone ever considered making a program that would do it for you? Spammers do it all the time, I am not sure how to do it nor do I know if it is technically legal. As long as you do not crash their site, I am not sure if they would really care.

This is how I would think it would work.
Basically have a program that would generate the possible VINS for each number IE sequence number IS 10000
Therefore the following VINS would be returned for 1989 Firebirds
1G2FS2184KL210000 L98 Formula 350
1G2FS21F6KL210000 LB9 Formula
1G2FS21E7KL210000 LO3 Formula or Firebird
1G2FS21SXKL210000 V6 Firebird ***
1G2FW2189KL210000 L98 T/A or GTA
1G2FW21F0KL210000 LB9 T/A or GTA
1G2FW21E1KL210000 LO3 T/A
1G5FW2176KL210000 TTA

Then have the program automatically check each number, one at a time, when it got a record that was > 0 then it would take that number and put it into a database. The Program would have to be written so not to CRASH the site, so you would have to make it so that it only did one per second or so.

In the case above it is the V6 firebird.

Again, I am not trying to make any would be criminals, but it is an idea.

To save time, I would probably write it so that it checked the MOST COMMON vin first, for example, start with the V6 cars and then the LO3 Firebirds, It is called profiling, but in reality it is playing the odds...

Honestly I know someone has the program out there somewhere...

A means to program which engine to check first, second, third, etc would be handy... If I knew more about VB I would probably personally attempt it, go to a public place, like an internet cafe, and let the program go.

John
Reply
Old Feb 17, 2009 | 09:03 AM
  #20  
RPM WOT L 98's Avatar
Thread Starter
Senior Member
iTrader: (3)
 
Joined: Nov 2002
Posts: 887
Likes: 3
From: Chicago, IL
Re: Check digit calculation, anyone remeber how to do it?

Lucky for me all I am looking at is L98 TAs, no other combos. So the list that I will have will be a total of abour 350 cars in the end. So it won't be quite as many numbers to run that I can do them manually. But I agree that doing both cfx and autocheck is a good backup idea.
Reply
Related Topics
Thread
Thread Starter
Forum
Replies
Last Post
GeneralIesrussi
Carburetors
6
Jun 20, 2024 07:21 PM
db057
TBI
14
Apr 28, 2019 07:45 AM
64goatman
Cooling
2
Sep 9, 2015 01:09 PM
383cam
Electronics
5
Sep 9, 2015 06:01 AM
TBRays98
Tech / General Engine
6
Sep 6, 2015 05:05 PM




All times are GMT -5. The time now is 03:26 PM.