Working on Improving Financial Data Quality

One of the biggest challenges in creating a reliable and useful portfolio and investment tracking app is proving high quality data on a global scale.

The Problem

Listings of the same stock across different exchanges don't have a real connection. If we take the raw data, they're different stocks. That'd be fine if our data providers would give us similar high quality data for every listing. Unfortunately that's far from reality.

Lets take Apple for example. The Apple stock has listings across many different exchanges globally. Some of them are:
AAPL - Nasdaq / US
APC.F - Frankfurt / Germany
APC.XETRA - Xetra / Germany
0R2V.LSE - London Stock Exchange / UK

Usually data like dividends, earnings, ratings and news for the US listing AAPL is quite good. Whereas data for listings in Germany or UK are very spotty. Sometimes earnings data is missing, sometimes dividends. Ratings and news are usually not provided at all.

The solution

Before we can solve this problem, we have to create a connection between these different listings.

Bringing Stocks together

There are some global identifiers we can use. One of them is the International Securities Identification Number, short ISIN. Unfortunately this information is not available across all the data providers as well. So that won't work.

Enter Financial Instrument Global Identifier, short FIGI. FIGI is also a global identifier, but thanks to it's open nature much more available.

FIGI offers a data API for creators like us to use. You can try it yourself here. With this we are able to connect all listings for our stocks. Now we know which listings belong together.

Finding the best data

Knowing which listings belong together helps us viewing stocks as a whole.

Before, we only saw APC.F from Germany or AAPL from the US since we didn't know they are the same company. But now that we know they are the same company, we can find the best data for Apple and use them for all global listings.

Quality Score

Do find the best data, first we look at all the data we have for every listing of a stock and give them a quality score. We do that individually for every data type and the highest quality score wins.

💡
Example:
AAPL has up-to-date dividend data within the past year. That data also has payment, declaration and announcement dates.

The latest dividend data for APC.F is from 3 years in the past and payment dates are missing.

In this scenario, the dividend data from AAPL would get a much higher quality score and win as dividend provider for all of our Apple listings globally.

Conclusion

We're constantly working on improving our data quality. The feedback we get from our users has been a tremendous help in identifying bad data and working on solutions like this. We're looking forward to working together in the future as well.

Get Stock Events for Android and iOS.