CUSIP

A CUSIP is a nine-character numeric or alphanumeric code that uniquely identifies a North American financial security for the purposes of facilitating clearing and settlement of trades. All CUSIP identifiers are fungible, which means that a unique CUSIP identifier for each individual security stays the same, regardless of the exchange where the shares were purchased or venue on which the shares were traded. CUSIP was adopted as an American national standard by the Accredited Standards Committee X9 and is designated ANSI X9.6. CUSIP was re-approved as an ANSI standard in December 2020. The acronym derives from Committee on Uniform Security Identification Procedures.

The CUSIP system is owned by the American Bankers Association (ABA) and is operated by FactSet Research Systems Inc. The operating body, CUSIP Global Services (CGS), also serves as the national numbering agency (NNA) for North America, and the CUSIP serves as the National Securities Identification Number (NSIN) for products issued from both the United States and Canada. In its role as the NNA, CUSIP Global Services (CGS) also assigns all US-based ISINs.

History
The origins of the CUSIP system go back to 1964, when the financial markets were dealing with what was known as the securities settlement paper crunch on Wall Street. At that time, increased trading volumes of equity securities, which were settled by the exchange of paper stock certificates, caused a backlog in clearing and settlement activities. In fact, stock markets had to close early on some days just to allow back-office processing to keep pace. To address the challenge, the New York Clearing House Association approached the ABA to develop a more efficient system for the trading, clearing, and settlement of securities trades by uniquely identifying all current and future securities. Their work was unveiled four years later, in December 1968, with the first publication of the CUSIP directory.

Over the ensuing years, a growing number of market authorities and regulators came to recognize the value of the CUSIP system and embrace its usage. With sustained reinvestment from the operators of the CUSIP system, CUSIP coverage has steadily grown over the years. It now includes following asset classes: government, municipal, and international securities (through the CUSIP International Numbering System, or CINS); initial public offerings (IPOs); preferred stock; funds, certificates of deposit; syndicated loans; and US and Canadian listed options. The CGS databased contains issuer and issue-level identifiers, plus standardized descriptive data, for more than 62 million financial instruments and entities. CGS is also the designation numbering agency responsible for assigning the ISIN in over 35 countries.

CUSIP operates with insight and guidance from the industry-appointed CUSIP Board of Trustees, made up of senior-level operations and data executives from major banks and other financial institutions.

Antitrust review
In November 2009, the European Commission charged S&P Capital IQ with abusing its position as the sole provider of ISIN codes for U.S. securities by requiring European financial firms (in the European Economic Area) and data vendors to pay licensing fees for their use. The European Commission described the behavior as unfair pricing, noting that in cases such as clearing or regulatory compliance, there are no acceptable alternatives.

In its formal statement of objections, the European Commission alleged that S&P Capital IQ was abusing its position by requiring financial services companies and information service providers to pay license fees for the use of U.S. ISINs. The European Commission claimed that comparable agencies elsewhere in the world either do not charge fees at all, or do so on the basis of distribution cost, rather than usage.

While strongly disagreeing with the European Commission, CGS/S&P Capital IQ offered to create a low-cost, low-value feed of certain US ISINs for use by market participants in the European Economic Area. A formal agreement was reached on November 15, 2011.

Format
A CUSIP is a nine-character alphanumeric code. The first six characters are known as the base (or CUSIP-6), and uniquely identify the issuer. Issuer codes are assigned alphabetically from a series that includes deliberately built-in gaps for future expansion. The 7th and 8th digit identify the exact issue. The 9th digit is a checksum (some clearing bodies ignore or truncate the last digit). The last three characters of the issuer code can be letters, in order to provide more room for expansion.

Issuer numbers 990 to 999 and 99A to 99Z in each group of 1,000 numbers are reserved for internal use. This permits a user to assign an issuer number to any issuer which might be relevant to his holdings but which does not qualify for coverage under the CUSIP numbering system. Other issuer numbers (990000 to 999999 and 99000A to 99999Z) are also reserved for the user so that they may be assigned to non-security assets or to number miscellaneous internal assets.

The 7th and 8th digit identify the exact issue, the format being dependent on the type of security. In general, numbers are used for equities and letters are used for fixed income. For discount commercial paper, the first issue character is generated by taking the letter code of the maturity month and the second issue character is the day of the maturity date, with letters used for numbers over 9. The first security issued by any particular issuer is numbered "10". Newer issues are numbered by adding ten to the last used number up to 80, at which point the next issue is "88" and then goes down by tens. The issue number "01" is used to label all options on equities from that issuer.

Fixed income issues are labeled using a similar fashion, but due to there being so many of them they use letters instead of digits. The first issue is labeled "AA", the next "A2", then "2A" and onto "A3". To avoid confusion, the letters I and O are not used since they might be mistaken for the digits 1 and 0.

CUSIP also reserves the special characters '*', '@' and '#' for use with private placement numbers (PPNs) used by the insurance industry.

The 9th digit is an automatically generated check digit using the "Modulus 10 Double Add Double" technique based on the Luhn algorithm. To calculate the check digit every second digit is multiplied by two. Letters are converted to numbers based on their ordinal position in the alphabet, starting with A equal to 10.

TBA CUSIP format
There is a special assignment of CUSIP numbers for TBA Security. Working with the MBSCC, CUSIP Global Services (CGS) developed a specialized identification scheme for TBA (To Be Announced) mortgage-backed securities.

TBA CUSIPs incorporate, within the identifier itself, a security’s mortgage type (Ginnie Mae, Fannie Mae, Freddie Mac), coupon, maturity and settlement month.

TBA Algorithm:
 * Position 1–2: Product Code (e.g., single-family mortgage, ARM, Balloon, etc.)
 * Position 3: Type of Mortgage (Ginnie Mae, Fannie Mae, Freddie Mac)
 * Position 4–6: Coupon
 * Position 7: Maturity
 * Position 8: Settlement Month
 * Position 9: Check Digit
 * The exact values for each position are available in a spreadsheet called the TBA Grid.

Check digit lookup table
The values below are summed for the first 8 characters, then reduced to 1 digit by $$modulo(10 - modulo(sum, 10), 10)$$:

Check digit pseudocode
algorithm Cusip-Check-Digit is input: cusip, an 8-character CUSIP. sum := 0 for 0 ≤ i < 8 do c := the ith character of cusip if c is a digit then v := numeric value of the digit c else if c is a letter then p := ordinal position of c in the alphabet (A=1, B=2...) v := p + 9 else if c = "*" then v := 36 else if c = "@" then v := 37 else if c = "#" then v := 38 end if if i is not even then v := v &times; 2 end if sum := sum + int(v div 10) + v mod 10 repeat return (10 - (sum mod 10)) mod 10

Examples

 * Apple Inc.: 037833100
 * Cisco Systems: 17275R102
 * Google Inc.: 38259P508
 * Microsoft Corporation: 594918104
 * Oracle Corporation: 68389X105
 * 3½% Treasury Gilt 2068: EJ7125481