Skip to content
All library documents

Why Historical CUSIP Matching Can Fail Between IBES and Compustat

Article Quant Q&A · Author: altabq

Summary

The document considers whether the first six CUSIP characters are enough to link analyst forecasts in IBES with firm accounting data in Compustat. Although those characters identify a company, the accepted answer highlights a timing mismatch: Compustat’s CUSIP is a current header value, while IBES records historical identifiers as of particular dates. A direct match can therefore work for many records but may be wrong when identifiers have changed.

The recommended standard approach is to link the datasets through CRSP, using a linking table or matching procedure. The document mentions the WRDS ICLink macro and scripts that automate the process, including a Python implementation, but does not evaluate their accuracy or compare error rates. The practical lesson is that identifier similarity alone does not guarantee a reliable historical link; the mapping should account for when identifiers applied. Forecasts tied to securities, such as EPS, may also make security-level distinctions relevant, though the document does not develop that issue in detail.

Key ideas

  • The first six CUSIP characters can identify a company but do not ensure a valid historical dataset match.
  • Compustat CUSIPs are described as current header values, whereas IBES CUSIPs are historical.
  • Direct CUSIP matching may succeed in many cases while failing when identifiers change over time.
  • The standard linking approach described uses CRSP and an associated link table.
  • Available macros and scripts can automate matching, but the document provides no accuracy evaluation.

Tags

Full text
# Mapping I/B/E/S to Compustat via 6-digit CUSIP


# Mapping I/B/E/S to Compustat via 6-digit CUSIP












I am trying to link Thomson Reuter's I/B/E/S dataset with Compustat. Both I obtained via WRDS. The only halfway useful info I could find was on a two year old forum post, which suggests to go through a third database (CRSP) via a link table.

My question is, why wouldn't we just use the 6-digit CUSIP to map the two datasets?

It can be constructed from, both, the 8-digit "old" CUSIP of I/B/E/S as well as the "new" 9-digit CUSIP on Compustat. As this website (as well as the wikipedia article) explain, the first 6 digits identify a company, the subsequent 2 digits a specific issue of a security, and the 9th digit is a checksum. Since Compustat is firm-specific, it shouldn't matter for most forecasts which security we're looking at.

Moreover, most forecasted measures, such as ROA or turnover, also seem firm-specific, not security-specific to me. I'm not fully sure for EPS forecasts, but usually we wouldn't see multiple simultaneous issues at the same time either if I'm not mistaken.

## Answer by phdstudent (score 3, accepted)

https://quant.stackexchange.com/a/39232

The main problem of linking Compustat with IBES is not the fact that Compustat's cusip is 9 character, whereas IBES is 8-character. The main issue is that Compustat Cusip is header (most recent), whereas IBES Cusip is historical (as of date).

Therefore matching through Cusips is likely to be correct for many cases but not all. The standard way of doing the matching is indeed as you say to through CRSP.

There are many scripts out there that can do the matching for you. One potential script that will match it for you in less than a minute:

https://gist.github.com/JoostImpink/0e5a8ae738cc8ef14baf

which makes use of the WRDS macro iclink to merge CRSP and IBES:

https://wrds-web.wharton.upenn.edu/wrds/research/macros/sas_macros/iclink.cfm

## Answer by altabq (score 2)

https://quant.stackexchange.com/a/39255

Since I don't have SAS, I wrote a python script to create the mapping table between Compustat and IBES via CRSP. The code is available on my GitHub:

https://github.com/snauhaus/link_compustat_ibes

It does not require any input other than valid WRDS login credentials.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.