Security master cover

Research in your inbox

Quant research, market data and microstructure. No noise.

Security Master Data: The Foundation of Backtest Integrity

/

6 min read

A backtest can run without a single missing price and still trade the wrong security. The failure often starts with a familiar request: take a list of ticker symbols, fetch their historical prices, and calculate returns. The query succeeds, the chart looks plausible, and the error remains hidden until someone asks what each ticker meant on each date.

Tickers are labels used in a market at a particular time. Companies change them, mergers end one listing and begin another, and symbols get assigned to different securities. A ticker alone therefore cannot serve as the permanent key for a historical equity database. The question a research pipeline must answer is: which security did this ticker identify on the date of the observation, and what happened to that security afterward?

What security master data holds

Security master data is the reference information that identifies and describes the instruments in a financial database. A security master typically holds security identifiers, names, security types, exchange information, listing status, and cross-references to external identification systems. For historical research, it also needs dated relationships that establish when a name, ticker, or identifier applied, whether those relationships sit in the master itself or in companion lookup files.

That reference layer determines which instrument a price belongs to. A series of perfectly valid prices can produce an invalid backtest if the join attaches them to the wrong constituent, or treats the end of a ticker as the end of an investment. MetroPCS and T-Mobile provide a concrete example of how this happens, with an additional complication: the old ticker later appears against a different security.

Follow PCS through the change

The combination of MetroPCS and T-Mobile USA closed on April 30, 2013. The combined company, T-Mobile US, began trading under TMUS on May 1. Those dates appear in T-Mobile’s announcement and results, and the same transition is visible in algoseek’s reference records.

In algoseek’s ticker-to-SecId lookup, PCS maps to SecId 146189 from April 19, 2007 through April 30, 2013. TMUS maps to SecId 4022531 beginning May 1, 2013. A third record assigns PCS to SecId 9567413 beginning August 1, 2025. The symbol has returned, but the earlier MetroPCS record and the later PCS record have different security identities.

Now consider a backtest holding PCS on April 30, 2013. Resolving that position against the later PCS mapping selects SecId 9567413, whose recorded interval starts more than twelve years after the observation. Alternatively, fetching only rows labelled TMUS excludes the earlier PCS period. Both mistakes follow directly from dropping the effective date or assuming that the current symbol contains the whole history.

Mergers create a further ambiguity. The target may cease trading, its holders may receive cash, shares of the acquirer, or a combination, and the acquiring company’s price series may continue. Following the acquirer’s ticker backward does not reconstruct the target’s investment return. Nor does joining the target’s final close directly to the acquirer’s next close describe the exchange terms. The identity mapping tells the researcher which securities are involved; corporate action terms and adjustment data determine the economic return.

These mistakes affect more than a single chart. A ticker-based join can change constituent membership, contaminate factor exposures, and introduce survivorship bias when delisted names disappear from a current universe, even if the subsequent return calculations are implemented correctly.

Why an external identifier still needs a history

CUSIP illustrates why replacing a ticker with an industry identifier does not finish the job. This nine-character identifier distinguishes financial issues, and a merger or reorganization can require a new one. CUSIP Global Services’ permanence policy states that a new CUSIP will continue to be assigned for a new legal entity created through a merger or reorganization. A researcher still needs the relationship between the earlier and later records.

ISIN, the international securities identification number defined by ISO 6166, supports identification across markets. FIGI, the Financial Instrument Global Identifier, supplies venue-level, composite, and share-class relationships; the distinction matters when matching a listing to a broader instrument record. OpenFIGI documents those levels. These identifiers help reconcile outside datasets, while a dated vendor mapping connects them to the particular security records carrying that vendor’s prices.

SecId and ASID resolve different parts of the join

Within algoseek’s data, SecId remains stable across ticker and name changes, but certain security restructurings can produce a new SecId. ASID, the algoseek Security ID, provides the persistent relationship across those changes, linking related SecIds over the security’s economic life. The ASID Lookup covers listed and delisted U.S. equity securities from 2007 onward.

The two layers let a researcher retain the identity used for each historical segment and the relationship connecting the segments. In the PCS/TMUS case, the ticker-to-SecId lookup first resolves the dated observation. The ASID lookup then shows that SecIds 146189 and 4022531 belong to ASID 1010000000020643. The later PCS record belongs to ASID 1010000000028074.

Observation dateTickerSecId resolved for that dateASID
April 30, 2013PCS1461891010000000020643
May 1, 2013TMUS40225311010000000020643
August 1, 2025PCS95674131010000000028074

The ASID file records the date interval behind each row, and every date in the table falls inside it. A single example therefore tests both requirements: retaining a connected history through a change and preventing a reused ticker from importing a different security’s observations.

The Security Master supplies the descriptive records and cross-references, including FIGI and ISIN, for reconciliation with other sources. Keeping the original ticker, dated SecId, and ASID together makes it possible to explain why a particular observation was selected, rather than presenting a continuous series whose joins are hidden.

That continuity does not establish the return across April 30 and May 1. The position still needs the applicable corporate action terms and adjustment treatment. When the combination closed, MetroPCS holders received a special cash dividend of $4.0491 per share and the stock was reverse split one for two, so a series stitched across the boundary without those terms misstates both the share count and the cash. An ASID chain neither supplies a missing cash payment nor determines the value of shares received. This distinction matters especially at acquisitions, spin-offs, bankruptcies, and liquidations, where the end of a price series may leave part of the investment outcome unaccounted for.

Build the join in the order events occurred

For a point-in-time backtest, make the historical resolution explicit:

  1. Construct the universe that applied at each rebalance, retaining securities that subsequently delisted.
  2. Resolve each ticker using its observation date and applicable market context. Keep the original ticker and date alongside the selected SecId, and route unmatched or ambiguous results for review.
  3. Attach price observations through the dated security mapping. For ticker-organized files, retain the historical symbol needed to retrieve each segment.
  4. Use the ASID relationship where the research requires continuity across a documented SecId change, preserving the underlying SecIds and their intervals.
  5. Apply the relevant corporate action and adjustment treatment before calculating returns across an event.

The dates deserve their own checks. Within the intended market and security type, a ticker and trade date should not silently select two unrelated records. Around the PCS/TMUS boundary, the expected result is 146189 on April 30, 2013 and 4022531 on May 1, both connected to the same ASID. A lookup that selects the later PCS SecId for the 2013 observation has failed before any return is calculated.

Keep the mapping version or a retained data snapshot used for a production backtest, together with the retrieval date and checksums, so the result can be replayed when reference data is corrected later. An effective date tells you when a relationship applied; it does not establish when that relationship became available to a researcher. Reconstructing what was known at a historical decision time requires that additional evidence.

External identifiers belong in this audit trail as cross-checks. Compare FIGI, CUSIP, or ISIN where available when joining fundamentals, holdings, or another price feed. If an external ID changes while the ASID continues, investigate the event rather than forcing the columns to agree. If the same ticker appears under different ASIDs in different periods, the later PCS mapping shows why that can be evidence of reuse rather than a duplicate to remove.

The PCS/TMUS chain gives a backtest a traceable route through a symbol and SecId change, while the separate later PCS record establishes where that route must stop. Preserving those boundaries makes the reference join auditable before price adjustments and return calculations enter the picture. A reliable historical query needs two keys: the identifier and the date on which it applied.


The views, analysis and figures are the author’s own and do not necessarily reflect those of algoseek. This content is for educational purposes only and is not investment advice.