I'm building database of 13F sec.gov forms with 13F security lists (http://www.sec.gov/divisions/investment/13flists.htm). Along with integrity checks.
I implemented CUSIP digit check algorithm to check if I'm getting correct CUSIP numbers and don't mess anything while parsing PDFs.
I found that half of CUSIP numbers on 13F Security Lists are incorrect - checksum digit is different than computed by algorithm checksum (algorithm described here: http://en.wikipedia.org/wiki/CUSIP#Check_digit_pseudocode).
For example, take 3rd page of http://www.sec.gov/divisions/investment/13f/13flist2014q3.pdf where you can find line:
D18190 90 8 DEUTSCHE BANK AG CALL
We read CUSIP from line as D18190908. Now, check this against available on-line CUSIP validator (i.e.: http://www.topyields.nl/validate-cusip.php) and you'll get that this CUSIP is INVALID!
From algorithm I'm getting checksum digit equals to 6 so CUSIP should got as D18190906. Check this modified CUSIP against on-line validator and you'll see replacing 8 with 6 makes CUSIP valid.
I've done some more research to check if it's not some one time error and found that 50% of CUSIPS in 10 most recent 13F Security Lists are invalid the same way as described in example.
Have you faced this issue? Whats wrong with 13F Security Lists?