Why SEC 13F Option CUSIPs May Fail the Checksum
Summary
The document investigates apparent checksum failures in CUSIP numbers listed in SEC 13F security lists. The author validates extracted identifiers and reports that many listed values do not match the standard CUSIP check-digit calculation, raising the possibility of parsing errors or incorrect source data.
The accepted answer attributes the issue to identifiers the SEC creates for options. These use the first six characters of the underlying equity's CUSIP, followed by codes that distinguish calls from puts, and then reuse the underlying stock's final digit. Because that final digit is not recalculated for the constructed option identifier, the resulting number can fail the normal checksum test. The answer is based on an explanation of the convention rather than official documentation, which it says was not found; a checksum failure alone therefore does not establish that extraction was corrupted.
Key ideas
- CUSIP check digits can flag option identifiers in SEC 13F lists as invalid.
- The answer says the SEC constructs option identifiers from the underlying equity's issuer digits and an option-type code.
- The constructed identifier reuses the underlying stock's final digit instead of recalculating the option's checksum.
- Checksum validation should account for this reported convention before treating listed option identifiers as parsing errors.
Tags
Full text
# SEC 13F Security List has incorrect CUSIP numbers? # SEC 13F Security List has incorrect CUSIP numbers? 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? ## Answer by Eric (score 6, accepted) https://quant.stackexchange.com/a/16539 I've run into this issue as well. I can't find any official documentation, but the issue arises because the SEC makes up CUSIPs for all of the options on the list. It does this by taking the first 6 digits of the underlying equity (which makes sense, as this represents the issuer, which should be the same for the stock and the option), and then for the 7th and 8th digit, it uses 90 for calls and 95 for puts. It then uses the 9th digit from the underlying stock as the 9th digit for the option, which is why the checksum doesn't work.
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.