What is an ISIN (International Securities Identification Number)?

An ISIN is a 12-character code, defined by the ISO 6166 standard, that identifies one specific security such as a share class, a bond or an ETF. It names the instrument itself, not the company that issued it and not the exchange where it trades.

Updated

3 min read

Key facts

StandardISO 6166
Format2-letter country code, 9-character national identifier, 1 check digit
US securitiesUsually the US prefix, followed by a nine-character national identifier. US-listed foreign securities can carry another country’s prefix
Changes whenSome corporate actions can change it, though not every one does
In algoseek dataISIN and ISINStartToEndDate in the US Equities Security Master File, and an ISIN column, which may be blank, in the daily datasets

How is an ISIN structured?

Its structure is simple to read once the parts are separated. The first two letters are a country code, the next nine characters are a national security identifier and the last character is a check digit calculated from the other 11.

Apple’s ISIN, US0378331005, starts with the country code US and ends with the check digit 5, and algoseek’s US Equities Security Master File (US1027) stores the full code in ISIN:

US Equities Security Master File · CSV extract

SecIdTickersISINPrimaryExchangeFIGI
33449AAPLUS0378331005NASDAQBBG000B9XRY4

What does an ISIN look like in algoseek data?

That same code travels with the security into the market data. Daily products such as Primary Exchange Daily OHLC (US1013) and Trade and Quote Daily Bar (US1038) carry an ISIN column, described in the catalog as the “ISIN as of this trade date”.

The column also appears in the Detailed Adjustment Factors (US1005) and both IPO datasets (US1020, US1021):

US Equities Primary Exchange Daily OHLC · CSV extract

TradeDateSecIdTickerPrimaryExchangeISINClosePrice
2023080233449AAPLNASDAQUS0378331005192.58

With one shared code on each file, a price series, its adjustment factors and a third-party fundamentals feed can be matched without relying on a ticker string that may since have been reused.

The daily column is marked optional, though, so some rows arrive blank and a join needs a fallback for them.

Why does an ISIN change?

Where the ISIN gets harder to use is over long stretches of time, because the code follows the security’s registration and a corporate event that changes the registration can retire one ISIN and issue another.

The Security Master keeps this history in ISIN and ISINStartToEndDate as semicolon-separated lists, with an end date of 29991231 meaning no end date has been assigned. SecId 33008, whose tickers have included AA, ARNC and HWM, has carried four ISINs:

US Equities Security Master File guide · SecId 33008

ISINISINStartToEndDate
US013817101420070103:20161005
US013817507220161006:20161031
US03965L100820161101:20200331
US443201108220200401:29991231

ISIN and ticker change on separate schedules, so neither one alone follows a stock through its whole history.

When is an ISIN not enough?

Venue is the other gap. A stock that trades on NASDAQ, on other exchanges and through the FINRA trade reporting facilities has one ISIN across all of them. PrimaryExchange names the exchange where it is listed, not where each trade took place, so venue-level work needs the exchange field on each trade and quote in the TAQ products.

Given both limits, algoseek tracks a security’s history with two identifiers of its own. The SecId usually survives ticker and name changes, but a restructuring can create a new one, and the ASID from the ASID Lookup (US1028) links those SecIds into one continuous security. ISIN remains the bridge to outside data, and joins on it work best date by date, matching each row’s trade date to the ISIN in force on that day.

Frequently asked questions

  • Who issues ISINs?

    +

    Each country’s national numbering agency. In the US, that agency also assigns the nine-character identifier inside every US ISIN.

  • How is the ISIN check digit calculated?

    +

    Letters in the first 11 characters are converted to numbers, from A = 10 to Z = 35, and the Luhn algorithm is applied to the resulting digits. The result is the twelfth character.

  • What is the difference between an ISIN and a FIGI?

    +

    An ISIN identifies a security once, across every venue. A FIGI is issued at several levels, including one per exchange listing and one for the security across all of them, so a join on FIGI needs to use the same level on both sides.