Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a way to determine a government bill's or bond's maturity date by looking at its CUSIP?

For example, the CUSIP for US T-Bills with a maturity of 12/1/11 is 9127953V1. As you probably know, the first six characters of a CUSIP represent the item in question (e.g. US TBills); the last digit is an error correction code; the seventh and eighth characters are specific to the maturity. So in this case, "3V" maps to 12/1/11.

Do you know the algorithm that's used to map the two digit code to a maturity? I can obtain the maturity by hand using the internet or Bloomberg but would prefer to have an algorithm if possible. Any ideas?

share|improve this question

CUSIP and ISIN codes are issued in the US by CUSIP Global Services, run by S&P. While the data structure follows a certain logic, there is no way to extract relevant security information from the number. You generally have to rely on a data vendor for specific data such as the maturity date for a bond.

In the case of US Treasuries, however, the Treasury Direct website provides a database of relevant information for every security, including maturity date and CUSIP. The database covers security issued since 1980.

Also note that a variety of CUSIPs can be assigned to Treasury securities before their auction date and are later transferred to a "permanent" CUSIP. For example, a standard bond will go to three auctions before reaching its full size. For ease of use bonds will be issued a temporary CUSIP before auction to differentiate the auctioned bonds from the rest of the issue.

share|improve this answer

CUSIP Global Services gives the following explanation regarding fixed incomes:

The issue identifier assigned to an issuer’s fixed income securities may consist of two alphabetic characters (AA etc.), one alphabetic character followed by one digit (A2 etc.), or one digit followed by one alphabetic character (2A etc.), assigned in that order. A separate issue identifier is assigned to each rate and/or maturity for each issue of bonds—thus a serial bond having 40 different maturities is assigned 40 separate issue identifiers—but general obligations of a municipality having the same issue date, rate and maturity are normally assigned the same identifier regardless of purpose. The alphabetic letter “I” and numeric “1” as well as the alphabetic “O” and numeric zero are not used in the assignment of issue identifiers to fixed income securities.

There is no algorithm, unfortunately. The Treasury simply purchases CUSIP numbers from Global Services. There's no guarantee that the code will even be an increment from the previous issue.

So you are stuck with looking up codes from a data vendor.

share|improve this answer
I discovered that the information is freely available from a major vendor's web site. You enter a CUSIP in a search box and it returns a ton of info (including maturity). I ended up writing a program to do an "HTML scrape" from that site and wrapped it in a nice little API. Of course, if the vendor ever changes the layout of their site I'll have some re-coding to do... but it's the best solution I could find for now. – Chad Decker Feb 5 '13 at 18:43
@ChadDecker Glad to hear you found a solution. I had to send multiple emails to the Treasury to get an answer from them. – chrisaycock Feb 5 '13 at 19:19

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.