CUSIP / ISIN / SEDOL / FIGI Validator

About this tool

This tool validates and generates check digits for four financial security identifier systems. It also includes a bundled CUSIP↔ISIN cross-walk of 16 well-known US equity mappings. All computation runs in your browser — no data leaves this page and no network requests are made.

The four identifier systems

  • CUSIP — 9 chars, North American. Assigned by CUSIP Global Services (FactSet). Algorithm: Mod-10 with letter-to-number mapping (A=10..Z=35), doubling body positions i=1,3,5,7.
  • ISIN — 12 chars, international (ISO 6166). Starts with a 2-letter country code. Algorithm: Luhn mod-10 on the alphanumeric expansion.
  • SEDOL — 7 chars, UK. Algorithm: fixed-weight sum with weights 1,3,1,7,3,9,1 (check digit included in the weighted sum).
  • FIGI — 12 chars, global (OMG / Bloomberg). Starts with G. Algorithm: Luhn mod-10 on the alphanumeric expansion.

What the check digit detects

A check digit detects single-character transcription errors — most typos and copy-paste mistakes produce a different check digit, so the tool can flag them. The check digit does NOT verify that the security exists, is correctly assigned to the issuer you think, or is a current instrument. It is a structure-only check.

The "Suggest fix" feature on an Invalid result runs a brute-force search: for each position in the body, it tries every possible character and keeps the substitutions that produce a matching check digit. With low-entropy systems (SEDOL in particular) there may be multiple valid corrections; the tool shows the lex-smallest plus a count of alternatives.

Cross-walk (CUSIP↔ISIN)

The cross-walk ships with 16 verified mappings sourced from Wikipedia (CUSIP article Examples and company article infoboxes), Wikidata property P946, and SEC EDGAR company submissions. The cross-walk is fully local — no external API is consulted. This is a deliberate choice: the free OpenFIGI API does not return ISIN or CUSIP values (per their own licensing policy) and blocks browser-direct calls via CORS. A future enhancement could add a Cloudflare Worker proxy to enable live cross-walks; v1 ships with the bundled sample only.

Format error vs. check-digit mismatch

The tool distinguishes two failure modes:

  • Unparseable — the input doesn't match the chosen system's grammar (wrong length, character class, or prefix). The error message names the specific rule.
  • Invalid — the input parses but the check digit doesn't match. A "Suggest fix" appears below.

Educational only. Not investment advice.

All computation runs in the browser. No identifier input is sent to any server. The tool does not maintain a security master database and does not verify that an identifier is actually assigned. Verify any trading decision with your broker before execution.

Comments

Please accept the "Functionality" cookie category to view and post comments.