One day the lookup failed
An earlier article showed how past figures are rewritten on the basis of today. This one is about a problem one step before that: the label that decides which company a figure belongs to can itself shift.
A large US custody bank traded for years under the ticker BK. Today the same company trades under the ticker BNY. Jupick looked up each ticker with a widely used market data library.
BNY works normally. Its market cap shows as $110.6 billion and its price history runs through yesterday. For BK, the lookup itself fails, returning a response that no price data can be found for the symbol. The history has zero rows.
The company is still there. Only the label is gone, and of everything, that one label was what broke on the side that collects the data.
The legal entity did not change its name
There is a public registry that assigns a 20-character identifier to legal entities worldwide. Regulators in many countries built it after the financial crisis to identify the counterparties to transactions, and since lookups need no key, anyone can check it.
Searching for this bank by name returns three different legal entities: one in Belgium, one in New York State and one in Delaware. Similar names do not make them the same entity.
The New York State entity carries a former legal name field. One old name remains in place, tagged as a former legal name. The fact that the name changed is itself preserved as a record.
The listed holding company, however, is the Delaware entity. It was registered on June 6, 2012, and its list of previous names is empty. That means the legal name of the listed entity has never changed since registration.
In short, the legal entity is the same and its identifier is the same; what changed is a single exchange ticker. The firmest value that identifies the company was intact, and only the softest value, the one Jupick was using as a key, moved.
The same ticker points to many things
Financial instruments also have a public identifier system. It assigns a 12-character identifier to individual instruments such as stocks, bonds and futures, and it too can be queried without a key. Jupick looked up BK there.
With the exchange limited to the US, the result is zero. Run again without the exchange filter, the query returns 25 results. Twenty-five different things hang on the same two letters.
Among them is a Canadian closed-end fund. Its ticker is BK, and it has no connection to the bank in question. It is not that a company in another country took over a ticker vacated in the US; each had been using it on its own from the start.
On the Swiss exchange, the bank's common stock is still listed under the ticker BK. The ticker moved in the US, but the old ticker remains in another country. The same shares of the same company carry different labels depending on the country.
Several kinds of commercial paper issued under the company's pre-merger name also carry the same string. In the end, a ticker on its own does not identify anything. Only together with the exchange and the point in time it was used does it point to one thing.
What a permanent identifier looks like
The specification for the same system contains a sentence worth noting. It says that once assigned, an identifier never changes over the instrument's trading life, that when the instrument goes away the identifier is retired but never reused, and that it remains available for lookup.
Three things are in that one sentence: it does not change, it is not reused, and lookups remain after it is gone. A ticker keeps none of the three.
In practice, looking up BNY returns a single 12-character string. Looking up that string in reverse returns an entry that lists the ticker as BNY. The point here is that the direction is reversed.
In this design, the ticker is just one value that can change, and the key is something else. By contrast, most stock services, Jupick included, use the ticker as the key for their records. The moment the key moves, the whole record loses its way.
No bridge from an old ticker to a new key
Since permanent identifiers exist, the problem may look solved. In practice it is not.
As noted above, looking up BK with the US exchange filter returned zero results. That is not a notice saying the ticker has retired and now lives elsewhere; it is simply a response that it does not exist. No pointer to where it went is attached.
So a permanent identifier gives a stable key for something already known, but gives nothing to someone holding only the old name. There is no automatic path from an old ticker to a new one, at least not one open for free.
This asymmetry causes silent failures. When a lookup fails, it is usually treated as a temporary outage and retried on the next run, because a lookup that fails forever and one that failed only today come back looking exactly the same.
Tickers die in more than one way
Jupick also checked the ticker of a large US game company with the same library. It had stopped in a different way from the bank.
Asking for summary information returns a normal response. The status is active, the company name is correct and the market cap is filled in at $52.9 billion. Every field looks like a live stock.
Yet requesting the price history for the same ticker returns zero rows. The description remains; only the trading has stopped.
What makes this case harder is how a stock gets judged. Code that asks whether a stock is alive from a single status value judges this one healthy. When a lookup fails outright, as with the bank, it at least gets noticed, but this one passes without a sound.
Metadata outlives trading. So whether a stock is alive has to be checked not by its description fields but by whether its values have actually been updated recently. The update time is more honest than a field that declares its own status.
Outside finance, old names are kept
A public database that collects music metadata gives each artist a 36-character permanent identifier. Jupick looked up a US rapper there who has changed names several times.
One identifier comes back with more than ten aliases attached. The names used in different periods of the career are all attached as searchable attributes. A search by an old name still leads to the same person.
The structure is the same as the former legal name field in the entity registry above. The key is fixed as one value, and names are kept as several values hanging from that key. It is a design that treats a name change as a normal event, not an accident.
Tickers have no such mechanism. An old ticker is vacated without a trace, and a vacated ticker can later be assigned to another company. For anyone handling data, the chance that a name passes to someone else is more dangerous than losing the name.
How it shows up on Jupick
Jupick also uses tickers as the key for its records, so this is not someone else's story. Jupick opened the stored data and checked.
The bank's stock record stopped updating on July 22 and the game company's on August 17, and both stayed that way until early October. On October 8 the bank was moved in the list to its new ticker, and the game company, with no ticker to move to, was removed from the list. What follows describes the period while they were frozen.
The reason is simple. The daily collection job looks stocks up by ticker and skips a stock when the lookup fails. The records of skipped stocks are not deleted but left as they are, because deleting on failure would make healthy stocks disappear all at once on any day with a temporary outage.
Keeping them is safer, but it has a cost. A record that has stopped updating does not say on its own that it has stopped. The value left on screen is from the last day the job succeeded, and after that the price change stays at 0.
So on the page for such a stock, a price change of 0 should not be read as meaning the stock did not move today. It can mean today's value was not received.
After this article was written, Jupick added a notice to the stock detail page. For a stock where five days have passed since prices were last fetched successfully, a sentence under the price says no new prices have been received since that date. It states the date and nothing more, because the only fact the update date supports is that there have been no new values since then. Collection also runs on days the market is closed and still succeeds in fetching the previous close on those days, so reading the update date as the date the value was set would make the sentence wrong on weekends.
The five-day threshold is disclosed too. Counting the stored records, almost all healthy ones are within a day, so even a two-day threshold would catch every stock that has actually stopped. Five days was chosen anyway because the collection runs on a machine a person keeps switched on, which can be off for a few days. A short threshold would, on such days, report that many healthy stocks had all stopped at once.
Remaining problems are noted as well. The notice appears only on the stock detail page. The watchlist and rankings on the home page, the stock screener and the map view still show a frozen stock's 0 the same way as any other stock's 0. A list has only one line per stock, with no room for the same sentence, and making that room is left as a next task.
Grades were in the same situation. Both stocks still carried the grades assigned before they stopped. As with prices, these were grades from the last successful day and did not reflect any financial data released afterward.
Things to remember
First, when no data can be found for a ticker, the first step is to tell whether the company is gone or only the ticker has moved. Searching again by company name or legal entity identifier usually settles it.
Second, a ticker written in an old article or table may refer to something different from that ticker today. When the two-letter ticker above was looked up without an exchange filter, 25 results came back, including another company in another country and old securities issued under the pre-merger name.
Third, when looking at information on any stock, check when the value was updated as well. Having a value and having a value from today are different things, and the screen shows both in the same form.
This content is for information only and is not investment advice. Jupick does not encourage trading in any particular stock and does not forecast the future direction of stock prices, and the fact that a ticker changed or that data stopped updating is not an assessment or endorsement of the company in any form. Investment decisions and responsibility for them rest with the user.