# Symbology

Also written symbol mapping.

*https://stockmarketstack.com/glossary/symbology · next to Stock Market Data APIs*

**Definition:** The conventions a dataset uses to name instruments, and the work of mapping one set of them onto another. It covers the bare ticker, the venue and class decoration bolted onto it, and the permanent identifier underneath. Symbology is a join problem rather than a naming one: two datasets agree about which company they mean and disagree about the key, and the key is what breaks.

## How it works

An instrument's name in a dataset has three layers, and most symbology trouble is a confusion
between them.

**The bare ticker.** Short, human, free, and a description of a listing at a moment rather than of a
security. It is reassigned, it differs per venue and per share class, and it changes when the issuer
does something.

**The qualified symbol.** The ticker plus decoration saying which class, which instrument type, or
which venue. This is where two datasets that agree about everything else disagree on a string. Nasdaq
publishes a ticker symbol convention table for exactly this reason, comparing three of them side by
side: a warrant is written with a dot-WS suffix under the CQS convention, as a plus sign in the
Nasdaq integrated platform's suffix position, and as a space and WS under the CMS convention; a
preferred issue is a trailing lower-case p, a hyphen, and PR respectively; a unit is dot-U, an equals
sign, and U. The page adds that the CQS convention is shown for reference only, and that Nasdaq
protocols do not accept it for sending orders. Three published spellings of one security before a
single vendor has touched it.

**The permanent identifier.** The number that survives the rename. ANNA's ISIN guidelines state the
property that makes this layer worth carrying: ISINs "should never be re-used". A ticker has no such
rule, which is the whole asymmetry. The registries themselves — what CUSIP, ISIN, SEDOL, FIGI, LEI and
CIK each cover and what each costs — are
[a guide of their own](https://stockmarketstack.com/guides/cusip-isin-figi-identifiers); this page is about the mapping.

## The mapping is a choice about what one instrument is

Resolving symbols is a service, and the shape of its answer forces a decision. The OpenFIGI API takes
tickers, ISINs and around thirty other identifier types, qualified by an exchange code or an ISO
market identifier code, and returns FIGIs at three levels: an individual identifier unique to one
instrument at one venue, a composite that links the venue-level identifiers within the same country or
market, and a share class level identifier assigned to an instrument traded in more than one country.

Those three levels are three different answers to "is this the same thing". A portfolio joined at
share class level treats a dual-listed line as one position; joined at venue level it is two rows with
two prices in two currencies. Neither is wrong, and a pipeline that mixes them produces double
counting nobody can find later. Pick the level explicitly, write it down, and normalise both sides
into it.

## What a reassignment does to a series

This is the failure that does not announce itself. When a ticker is dropped by one issuer and later
assigned to another, a dataset keyed on the symbol concatenates two unrelated price histories into one
series. Nothing errors. The gap looks like a halt, the level change looks like a
[corporate action](https://stockmarketstack.com/glossary/corporate-action), and any return, volatility or drawdown figure spanning
the junction is a statement about a company that never existed.

The same mechanism runs the other way: a rename splits one company's history into two symbols, so a
screen keyed on tickers quietly loses it, which is one of the ways
[survivorship bias](https://stockmarketstack.com/glossary/survivorship-bias) gets in through the back door. A vendor that carries
a permanent identifier under the symbol can reconstruct both cases; a vendor that keys on the symbol
cannot, whatever it does afterwards.

## Why it matters here

For cards on this site, symbology is a documentation question with a real answer. A data provider
either publishes its symbology — what the suffixes mean, which identifiers it maps to, whether a
delisted symbol keeps its history — or it does not, and the ones that do are doing you a large favour.
[Databento](https://stockmarketstack.com/tools/databento) and [IQFeed](https://stockmarketstack.com/tools/iqfeed) document theirs in detail;
[Norgate Data](https://stockmarketstack.com/tools/norgate-data) exists partly because keeping the identity of a security straight
across decades is a product in itself.

Three questions worth asking of any source here. What is the key, and is there one that is not a
ticker? What happens to the series when the symbol changes? And are delisted instruments still in the
file under something you can find them by? A dataset that cannot answer the third is also answering
the [point-in-time](https://stockmarketstack.com/glossary/point-in-time) question, badly.

Where this bites first in practice is [SEC filings](https://stockmarketstack.com/how-to/get-sec-filings-as-data), because EDGAR
keys on a CIK rather than a ticker — which is the shape everything above is arguing for.

## Where you will meet this

- [Databento](https://stockmarketstack.com/tools/databento.md)
- [IQFeed](https://stockmarketstack.com/tools/iqfeed.md)
- [Intrinio](https://stockmarketstack.com/tools/intrinio.md)
- [EODHD](https://stockmarketstack.com/tools/eodhd.md)
- [Norgate Data](https://stockmarketstack.com/tools/norgate-data.md)
- [2iQ Insider Transactions Data](https://stockmarketstack.com/tools/2iq-insider-data.md)
- [ClickHouse](https://stockmarketstack.com/tools/clickhouse.md)
- [DolphinDB](https://stockmarketstack.com/tools/dolphindb.md)
- [Apache Druid](https://stockmarketstack.com/tools/druid.md)
- [DuckDB](https://stockmarketstack.com/tools/duckdb.md)
- [InfluxDB 3](https://stockmarketstack.com/tools/influxdb.md)
- [MultiCharts](https://stockmarketstack.com/tools/multicharts.md)

## FAQ

### Which identifier should I join two datasets on?

Anything except the ticker, and then the same thing on both sides. Map each dataset once into a permanent identifier, store the mapping with the date it was made, and join on that. Joining on a symbol works until the first rename, at which point it stops failing loudly and starts producing a series that belongs to two different companies.

### Why does the same stock have three different symbols in my sources?

Because the suffix conventions are genuinely different documents. Nasdaq publishes a comparison table in which a warrant is one thing under the CQS convention, another in the Nasdaq integrated platform, and another again under the CMS convention, and then every vendor picks or invents one. Strip and normalise the decoration deliberately rather than by accident.

## Sources

1. [CQS Symbol Convention](https://nasdaqtrader.com/Trader.aspx?id=CQSSymbolConvention) — Nasdaq, Inc., read 2026-09-21
2. [OpenFIGI API Documentation](https://www.openfigi.com/api/documentation) — OpenFIGI, read 2026-09-21
3. [ISIN Uniform Guidelines relating to ISO 6166 (8th edition), Version 25](https://anna-web.org/wp-content/uploads/2025/11/ISIN-Guidelines-Dec-2025_Amendment_clean.pdf) — Association of National Numbering Agencies, 2025-12-01

*Last updated 2026-09-21. A reference page, corrected in place — not a dated post.*
