Standards
The identifier standards of global finance, and the open Finance Foundation Schema for entities and relationships.
Identifiers — the four questions
Every financial fact needs four resolutions: who (entity), what (security), where (venue) and in what unit (currency). These are the standards that answer them.
| Code | Standard | Answers | Steward |
|---|---|---|---|
| LEI | Legal Entity Identifier20-char code identifying any legal entity party to a financial transaction. Free and open by G20 mandate. | Who — the legal entity | GLEIF (open, ISO 17442) |
| ISIN | International Securities Identification Number12-char code identifying a security across venues. Openly usable; allocation is per-country. | What — the security | ISO 6166 via national agencies |
| MIC | Market Identifier Code4-char code identifying exchanges and trading venues (XNYS, XNAS, XLON…). | Where — the venue | ISO 10383 (open registry) |
| FIGI | Financial Instrument Global IdentifierOpen, free alternative to licensed instrument codes; mappable via the OpenFIGI API. | What+where — instrument at venue | OMG / OpenFIGI (open) |
| Ticker | Exchange ticker symbolVenue-local and ambiguous across markets — convenient for humans, unsafe as a primary key. | Local shorthand | Each venue |
| ISO 4217 | Currency codesUSD, EUR, JPY… the one identifier layer finance fully agrees on. | Unit of account | ISO (open) |
Coverage — what is actually filled in
A standard is only useful to the extent the dataset carries it. This is every collection against every identifier we hold, counted from the data on each request rather than written down. 1,286 codes across 13 standards are resolvable at /identifiers and through /api/v1/resolve.
An empty cell is not automatically a gap. A sovereign wealth fund has no ticker because it is not traded, and an index has no ISIN we can publish because index identifiers sit behind the same licence as index values. The note on each row says which it is.
LEI 119/121 98%
Checked against GLEIF: every stored LEI resolves to a live record naming an entity of the right kind, in the country we file the company under. Five carry a registration status other than ISSUED — four LAPSED, meaning the holder has not renewed and the reference data behind the code is unmaintained, and one PENDING_ARCHIVAL, which despite the name is a transfer between LEI issuers rather than a retirement. In each case the code still identifies the company, so it stays. Where a company has none at all, GLEIF publishes no record for the listed parent and we do not substitute a subsidiary's.
ISIN 121/121 100%
Allocation is national, so coverage follows the numbering agencies rather than our effort. Where we track a US ADR line, the ISIN is the ADR's — a different security from the ordinary share.
FIGI 121/121 100%
Share-class level, confirmed by lookup in OpenFIGI. Composite and venue-level FIGIs exist for the same company and are not what we store.
CUSIP 61/121 50%
Never stored. CUSIP is a licensed identifier; for US and Canadian securities it is characters 3–11 of the ISIN, so the resolver derives it rather than republishing a licensed database.
CIK 79/121 65%
Read back out of the EDGAR URL on each filing we cite. Only companies that file with the SEC have one, which excludes most non-US issuers without a US listing.
MIC 48/48 100%
Every venue validated against the ISO 10383 registry, segment MICs included.
LEI 46/48 96%
The operator's LEI, taken from the ISO 10383 registry itself for 25 of the 27. Two are not the registry's own binding and say so on the venue page: Toronto and the London Metal Exchange, where the registry leaves the column blank and the LEI comes from GLEIF directly. Shenzhen has none at all — three registries were checked, and GLEIF holds no record for the exchange under any spelling.
Ticker 21/32 66%
Only the 18 exchange-listed funds have one. An institutional pool such as a sovereign wealth fund is not traded and has no ticker.
LEI 25/32 78%
The LEI of the fund itself, not of its manager — GLEIF issues these to funds as entities in their own right. The seven without one are not an oversight: three genuinely have none (Norway's oil fund, Temasek and the SPDR gold trust, each checked by name and by ISIN), and four name a strategy or a family rather than a legal person, where the candidates that exist belong to a feeder, a Cayman vehicle or a subsidiary. Publishing one of those would put a real code against the wrong entity, which is the failure this dataset has already had once.
SEC series ID 16/32 50%
Applies to US registered investment companies only (20 of ours file with the SEC). A series ID names one fund inside a trust that may hold dozens.
BIC 15/20 75%
Who to pay, as distinct from who the institution is. A large bank publishes a code per branch and desk — JPMorgan's record carries 141 — so one is chosen by rule: the only head-office code registered in the entity's own country. Where several survive that test the standard does not rank them and neither do we, so five banks carry the reason instead of a code.
LEI 18/20 90%
The operating bank, not its listed parent — for most of these that is a different legal entity with a different LEI, and the point of the field is to say which one the page is about. Morgan Stanley is the exception and carries none: the figures on its page describe the group rather than a bank subsidiary, so the page falls back to the parent's LEI and says so.
Country code 37/37 100%
ISO 3166-1, alpha-2 and alpha-3. Twenty of the alpha-3 codes come from World Bank Open Data, a source already credited here. Taiwan's does not: the World Bank does not list Taiwan at all, so TWN is recorded by hand from ISO 3166-1 itself — one value on a different footing from the other twenty, which is worth saying rather than letting the column look uniform.
Currency code 37/37 100%
ISO 4217 alphabetic.
DTI 5/9 56%
ISO 24165, the one identifier standard written for digital tokens, read from the registry that maintains it. The four without one are stablecoins whose registry entries we could not match to the token this row means with enough confidence to publish.
iso4217 4/14 29%
ISO 4217 treats precious metals as currencies and gives four of them codes. It stops there: copper, oil and grain have no identifier standard at all, and the symbol shown for those is an exchange contract root rather than a code anyone is obliged to recognise.
FIGI 17/17 100%
Index identifiers are open even though index levels are licensed — a distinction worth keeping straight. Hang Seng is deliberately absent: its candidate ISIN resolved to two different instruments, and a code that resolves to two things is wrong about at least one.
Ticker 56/56 100%
A symbol, not a standard identifier. Assets in this set are reference concepts — an index, a benchmark yield, a metal — and most have no security identifier because they are not securities.
Every stored LEI, ISIN and FIGI is re-checked against its issuing registry by scripts/identifiers/verify.py, which CI runs before a deploy. It tests three things a checksum cannot: that the LEI names an entity of the right kind, that it is registered in the country we file the company under, and that GLEIF’s own ISIN-to-LEI mapping agrees with the LEI we hold. On 31 August 2026 that check found four LEIs which passed every check digit and resolved to live records, and named the wrong company — a same-named Australian sole trader for Coca-Cola, the Russian subsidiary for Abbott, and the French and Norwegian branches for Adyen and Tata Consultancy Services. They have been corrected.
Finance Foundation Schema v0.1
A minimal, open schema for financial entities and their relationships — the shape this site and its API are built on. Machine-readable at /api/v1/schema. Published under CC BY 4.0.
Entity types
| Entity | Fields | External identifiers |
|---|---|---|
| Company | id, name, legal_name, ticker, exchange, country, sector, industry, market_cap_usd_bn, currency, website, founded, description | ticker, LEI, ISIN, FIGI, CUSIP (derived, not redistributed) |
| Market | id, mic, name, country, type, currency, timezone, operator, note | mic |
| Asset | id, name, symbol, type, category, currency, market, issuer, description | symbol |
| Fund | id, name, symbol, type, manager, strategy, country, aum_usd_bn, description | symbol |
| Bank | id, name, company, country, type, gsib, total_assets_usd_tn, description | — |
| Country | id, code, name, currency, gdp_usd_tn, central_bank, markets | ISO 3166-1 alpha-2 |
| Indicator | id, name, unit, frequency, sources, description | — |
Relationship types
| Relationship | Direction | Note |
|---|---|---|
| lists_on | Company → Market | primary listing venue |
| domiciled_in | Company → Country | country of incorporation / HQ |
| located_in | Market → Country | |
| managed_by | Fund → Company | where the manager is a covered listed company |
| domiciled_in | Fund → Country | |
| operated_by | Bank → Company | where the bank is a covered listed company |
| chartered_in | Bank → Country | |
| denominated_in | Asset → Currency | |
| member_of | Company → Asset | index membership (covered subset, not the full index) |
| holds | Fund → Company | Asset | top holdings among covered entities, approximate |
Cheat sheets — parse and validate
Copy-paste implementations of the check-digit algorithms each standard defines. Same logic runs in the validator.
ISIN — ISO 6166 (12 chars, modulus-10 check digit)
LEI — ISO 17442 (20 chars, ISO 7064 MOD 97-10)
MIC — ISO 10383 (4 chars, operating vs segment)
Classifications
Sectors
Finance Foundation uses an 11-sector taxonomy aligned with common market practice (GICS/ICB are the licensed industry standards; our taxonomy is open and mappable to both): Technology, Financials, Healthcare, Consumer Discretionary, Consumer Staples, Energy, Industrials, Materials, Communication Services, Utilities, Real Estate.
Asset classes
Assets are typed as Equity Index, Government Bond, Currency, Commodity, or Crypto, with a free-form category beneath (e.g. Crypto → Stablecoin). Typed assets keep filters and agent queries unambiguous.