---
title: "The Hidden Path to Every Ticker: 15% to 22% Coverage, Zero Look-Ahead"
description: "How NOSIBLE used Atlas to lift ticker coverage from 15% to 22% of World events by following products, people and subsidiaries, with zero look-ahead bias."
url: "https://nosible.com/blog/the-hidden-path-to-every-ticker"
---

[NOSIBLE World](https://nosible.com/blog/tag/nosible-world)

[Information Retrieval](https://nosible.com/blog/tag/information-retrieval)

[Trading Signals](https://nosible.com/blog/tag/trading-signals)

# The Hidden Path to Every Ticker: 15% to 22% Coverage, Zero Look-Ahead

[Stuart Reid](https://www.linkedin.com/in/stuartgordonreid/)

2026-10-06

11 min read

Copy as Markdown

![The NOSIBLE Relevance Lab showing what Atlas links to Eli Lilly, with selpercatinib traced to Eli Lilly through Loxo Oncology.](https://nosible.com/images/2026/10/atlas-tickers-relevance-lab-2000x857.png)

When we rebuilt ticker mapping for NOSIBLE World around [Atlas](https://nosible.com/blog/announcing-atlas-the-point-in-time-knowledge-graph), our point-in-time knowledge graph, the share of World's 16.9 million events tagged with a ticker rose from about 15% to 22%. Almost all the gain comes from Atlas, which reaches text that never names a company through its products, people and subsidiaries. Every tag uses only connections Atlas knew on the document's date. This post shows how it works, and how you can use Atlas.

Before going further, open [tickers.nosible.com](https://tickers.nosible.com/) to see what Atlas connects to a listed company: each entity's route back to it, how strongly the entity points there and when Atlas first knew. Eli Lilly alone has more than a thousand.

## Why ticker mapping is hard

Ticker mapping attaches stock tickers to text, and you need it before you can count events per company, build a text-based signal or run a backtest. A sentence that says "Eli Lilly raised its forecast" is easy to map. Much of what is written about Eli Lilly never says "Eli Lilly"; it names Zepbound, David Ricks or Loxo Oncology. We follow Lilly (LLY.US) through the three cases that make ticker mapping hard. Every result below is real and comes from the mapper that tagged the World V2-Preview archive, with each example sentence sent on its own.

### 1. The ambiguous name

Writers shorten Eli Lilly to "Lilly": in a sample of 482 titles about the company from World's source articles, 36% use the short form alone. But "Lilly" is also Lilly Pulitzer, a clothing brand owned by Oxford Industries, and a common first name. A mapper that tags every "Lilly" as LLY.US fills a portfolio's data with resort wear and strangers; one that ignores the short form misses a third of the company.

### 2. The missing name

Much of what is written about Lilly never names Lilly. It names Zepbound or Mounjaro, the drugs; David Ricks, the chief executive; or Loxo Oncology, a subsidiary. A document about Zepbound sales is about Lilly's revenue as surely as one that says "Eli Lilly", yet no name match will find it. Recovering these mentions takes knowing what Lilly makes, who runs it and what it owns, and keeping that knowledge current.

### 3. The moving target

Those relationships change, and a backtest must see each one as it stood on the document's date. A 2015 quote from David Ricks is not a quote from Lilly's chief executive. Loxo Oncology traded as LOXO until Lilly bought it in 2019. The FDA approved Zepbound on November 8, 2023, so mapping a June 2023 document through that link uses knowledge nobody had in June 2023 and builds look-ahead bias into the backtest.

## Three roads to a mapped ticker

The mapper reads a World event's title, text, named entities and source articles, and proposes companies by three routes. A re-ranker then gives each candidate a calibrated probability that the text concerns it, and by default the mapper returns tickers scoring 0.45 or more.

### 1. Company names

The first route matches company names and resolves the ambiguous name. A company goes by many names, and the mapper seeks them all: every name in our company reference, every name Atlas records for the company, short forms such as "Lilly" and acronyms. Atlas alone holds Lilly under 12 spellings, and its `formerly_known_as` links carry names a company has dropped. "Facebook reported higher quarterly revenue" maps to Meta Platforms at 0.91, and "Royal Dutch Shell" to Shell plc at 0.94.

Each match is judged on how it is written, the words around it and who else claims the name. "Eli Lilly raised its full-year revenue forecast" maps to LLY.US at 0.91, and the same sentence with "Lilly" at 0.72. In "Lilly Pulitzer opened a new store in Palm Beach" a longer name continues the match, and Atlas maps it to Oxford Industries (OXM.US) at 0.66. "Lilly, 34, said she had waited three months for a prescription" reads as a person and returns nothing.

### 2. Explicit tickers

The second route reads explicit symbols in the text. A cashtag such as `$LLY` maps to the one US listing with that symbol. Without a US listing it maps to the only listed company anywhere using the symbol, and a symbol several companies share is dropped. An exchange-prefixed symbol maps to the listing on that exchange, whether the exchange is written by name, abbreviation or ISO market identifier code, so `NYSE: LLY` and `XNYS:LLY` both resolve to Eli Lilly's LLY.US at 0.85.

Symbols are rare in prose but almost never wrong, so they add precision cheaply. "$LLY rose 3% in early trading" maps to LLY.US at 0.65. A symbol also confirms the company name beside it: "Eli Lilly (NYSE: LLY) rose 3% in early trading" scores 0.99, against 0.91 for the name alone, because the re-ranker treats an explicit ticker as its own evidence. Whatever listing a document cites, the mapper returns the company's primary listing, with depositary receipts and secondary listings folded into it.

### 3. Atlas relationships

The third route solves the missing name, handling text that names a product, person or subsidiary instead of the company. "Zepbound is now approved for chronic weight management" maps to LLY.US through Eli Lilly → created → Zepbound. "David Ricks said demand for obesity drugs would keep growing" maps to LLY.US at 0.90 when dated 2025 and nothing when dated 2015. "Loxo Oncology presented new data on its lead drug" maps to LOXO.US in 2018 and to LLY.US in 2019.

Atlas holds 35 million corroborated facts about people, organisations, products, places and countries, drawn from 16.9 million World events since 2010, and records the day each fact became knowable. For ticker mapping it links 1.24 million entities to 32,708 listed companies. As of September 27, 2026, 1,044 entities link to Eli Lilly: 336 products, 393 organisations, 302 people and 13 places. Browse every one of them, with its path, specificity and the day it became usable, at [tickers.nosible.com](https://tickers.nosible.com/).

## How Atlas scores a link to Lilly

In a graph this size almost anything connects to Lilly. Indianapolis is Lilly's headquarters, but most text about Indianapolis is not about Lilly. So every entity needs two numbers: specificity, how strongly it points to Lilly alone, and prominence, how much it matters among Lilly's own links. Personalized PageRank gives both when the walk starts from the company ( [Jeh and Widom, 2003](https://doi.org/10.1145/775152.775191) ).

### The walk

For a cutoff day *t*, the graph keeps only evidence dated strictly before *t*. Each edge is weighted by how many distinct days sources reported it, so ten articles on one day count once. By September 2026, Lilly's edge to Zepbound carried 179 days of `brand_of` evidence and its edge to Jardiance 25 days. Generic nodes with more than 20,000 relations absorb the walk instead of passing it on.

The walk restarts at Lilly with probability *α* = 0.30 and otherwise follows an edge, chosen in proportion to its evidence. Atlas holds Lilly under 12 root nodes, one per spelling, and restarts are shared among them by evidence: 73% go to "Eli Lilly". The share of time the walk spends at entity *v* is its forward mass, *mat(v)* = *P(v | Lilly)*.

### Specificity

Forward mass says how often Lilly's walk reaches Zepbound. Ticker mapping needs the reverse: given a mention of Zepbound, how likely is the text to be about Lilly? On an undirected graph, reversibility gives it without a second PageRank:

*spec(v) = P(Lilly | v) = mat(v) × s(Lilly) / s(v)*

where *s(v)* is the total edge weight at *v* ( [Lofgren, Banerjee, and Goel, 2015](https://arxiv.org/abs/1507.08705) ). An entity connected to many things gets low specificity. Figure 1 shows the arithmetic.

![Figure 1. Specificity in toy graphs with restart probability 0.30. Adding a second issuer halves the product's specificity for issuer A. One extra evidence day on A's edge raises it from 0.206 to 0.275.](https://nosible.com/images/2026/10/atlas-tickers-toy-graphs.svg) Figure 1. Specificity in toy graphs with restart probability 0.30. Adding a second issuer halves the product's specificity for issuer A. One extra evidence day on A's edge raises it from 0.206 to 0.275.

With one issuer and one product joined by an edge of weight 1, the walk's masses satisfy *mₐ* = 0.30 + 0.70 *mᵥ* and *mᵥ* = 0.70 *mₐ*, so *mat(v)* ≈ 0.412 and, with equal weights, *spec(v)* = 0.412. A second issuer claiming the product leaves issuer A's forward mass unchanged but doubles the product's weight, so specificity halves to 0.206. One more evidence day on A's edge gives A two-thirds of the product's weight and lifts specificity to 0.275, from the day after that evidence.

Lilly's real graph behaves the same way. Drugs only Lilly sells score between 0.28 and 0.32. Jardiance, which Lilly sells with Boehringer Ingelheim, scores 0.19. Indianapolis, connected to a great deal besides Lilly, scores 0.004.

### Prominence

Some links are specific but obscure, others prominent but shared. Scoring needs both:

*score(v) = min(1, √(spec(v) × min(1, mat(v) / mat₁₀)))*

Links are kept when specificity reaches 0.03, and *mat₁₀* is the tenth-largest forward mass among kept links (0.00326 for Lilly). Zepbound has specificity 0.295 and forward mass above *mat₁₀*, so it scores √0.295 = 0.543. David Ricks has specificity 0.313 but forward mass at 0.57 of *mat₁₀*, so he scores 0.422. Boehringer Ingelheim is among the entities Lilly's walk visits most, but its specificity of 0.014 drops it.

![Figure 2. Specificity against prominence for every entity Eli Lilly's walk reached as of September 27, 2026. Filled squares are the 1,044 kept links; outlined squares fall below the 0.03 floor. Boehringer Ingelheim is prominent but not specific to Lilly.](https://nosible.com/images/2026/10/atlas-tickers-lilly-links.svg) Figure 2. Specificity against prominence for every entity Eli Lilly's walk reached as of September 27, 2026. Filled squares are the 1,044 kept links; outlined squares fall below the 0.03 floor. Boehringer Ingelheim is prominent but not specific to Lilly.

The walk is computed by local forward push, and every specificity carries a certified error bound of at most 0.001. Scoring Lilly's whole graph takes 0.14 seconds.

### Which paths may tag

PageRank measures closeness, and a supplier can sit close to Lilly without being the company the text is about. So the path itself must qualify. Its last step must run from the company to the entity through a relationship such as `created` (Zepbound), `brand_of`, `owns` or `subsidiary_of`. A person's role counts only once it is known: Lilly announced on July 27, 2016 that Ricks would become chief executive, so his `ceo_of` link is usable from the next day. A bare alias never tags on its own. The path must also reach 80% of the specificity of the mention's strongest company link, and a link needs specificity of at least 0.10 to tag.

## Maintaining Point-in-time Integrity

Atlas handles the moving target by dating every link. By default the API reads Atlas as it stood on each document's `as_of` date. The FDA [approved Zepbound on November 8, 2023](https://www.fda.gov/news-events/press-announcements/fda-approves-new-medication-chronic-weight-management), and Atlas's first evidence for the link is dated that day. Because a cutoff uses only earlier evidence, the link is first usable on November 9: the API returns nothing for November 8 and LLY.US at 0.50 for November 9, with the path Eli Lilly → created → Zepbound and `knowable_from: 2023-11-09`.

Later evidence strengthens a link without moving its start date. A new drug's specificity is near its final value from the first day, because only Lilly makes it. Its prominence among Lilly's links grows as evidence builds. Zepbound's forward mass grew 44-fold by September 2026, its link score rose from 0.19 to 0.54, and the ticker score for the same sentence rose from 0.50 to 0.65.

![Figure 3. Lilly's link to Mounjaro, Zepbound, Kisunla and orforglipron, rescored monthly from evidence dated before each day. Specificity is near 0.3 from the first day; the link score rises as each drug becomes prominent among Lilly's links.](https://nosible.com/images/2026/10/atlas-tickers-link-score-over-time.svg) Figure 3. Lilly's link to Mounjaro, Zepbound, Kisunla and orforglipron, rescored monthly from evidence dated before each day. Specificity is near 0.3 from the first day; the link score rises as each drug becomes prominent among Lilly's links.

Acquisitions work the same way. When a listing ends in an acquisition, the company's name maps to the acquirer from the day Atlas records the completed deal, which is why Loxo Oncology maps to LOXO.US in 2018 and to LLY.US in 2019.

Rerunning PageRank for every company on every day since 2010 would be too slow. Instead the build processes evidence in date order, once per company, and repairs only the nodes that new evidence touches, using the dynamic push method of [Zhang, Lofgren, and Goel](https://doi.org/10.1145/2939672.2939804). It stores each link's score whenever it changes, and the API looks up the stored state for `as_of` at request time.

One boundary applies: `as_of` rewinds Atlas paths only. Name and symbol matches use the release's current company list, so a company listed after the document's date can still match by name in earlier text. If your backtest needs historical listings, check those matches against a historical security master.

## From candidates to a ticker score

The three routes can propose different companies for the same text. A logistic regression re-ranker scores every candidate on about 90 features, including how the name is written, how ambiguous it is, the graph link's specificity, and whether the evidence sits in the title, the text or the source articles. Its output is calibrated: of tickers scored 0.9, about nine in ten are right. At the default threshold of 0.45, cross-validated precision on World events is about 87%. Each response shows the text spans behind a match and, on request, the Atlas path behind it.

## Precision and Recall on Hand-Labelled Data

On hand-labelled holdout sets never used for tuning, the mapper scores as follows at the default threshold. A company is central when the event is mainly about it.

| Holdout set | Precision | Recall, central companies | Recall, all companies |
| --- | --- | --- | --- |
| World V2 holdout: 180 random events | 80.3% | 70.7% | 61.5% |
| test-v4: 150 events | 88.3% | 86.4% | 80.7% |

The sets are small, so read each number as plus or minus about six points. Raising the threshold from 0.45 to 0.63 lifts precision on a 10,000-event GLM-judged sample from 80.8% to 87.2%, while recall of all companies falls to 59.7%.

Across the 16.9-million-event archive, the share of events tagged with a listed company rose from about 15% to about 22%. Almost all of the gain comes from Atlas paths. Most remaining misses are missing data: relationships Atlas lacks (will be solved in V2).

## What Atlas gives a research team

For Eli Lilly, Atlas turns mentions of Zepbound, Mounjaro, David Ricks and Loxo Oncology into LLY.US, and keeps Lilly Pulitzer with Oxford Industries. Every tag comes with the path that produced it and the first day that path was usable, so a backtest uses only connections that existed on each document's date. Research on economically linked firms, such as [Cohen and Frazzini's](https://doi.org/10.1111/j.1540-6261.2008.01379.x) work on customer-supplier return predictability, depends on exactly that.

We deliver the whole dated graph to your own infrastructure. Your team can audit the evidence behind every fact and add its own entities and facts to a private copy, such as a private supplier or an internal product code. The mapper uses them alongside the public graph, and your data stays with you.

S3 delivery, local API, or web API.

## Start your 90-day trial 90-day trial

Review the diligence documents, schema, sample data, and delivery options. Then start your trial.

[Start trial](https://nosible.com/start-trial)

[Review docs](https://docs.nosible.com/)

[All Research](https://nosible.com/blog)

Related Research

![Compression is intelligence: NOSIBLE Search indexes the web, World produces events, and Atlas maps facts into a knowledge graph.](https://nosible.com/images/2026/09/atlas-nosible-stack-3640x1560.png)

[NOSIBLE World](https://nosible.com/blog/tag/nosible-world)

[Information Retrieval](https://nosible.com/blog/tag/information-retrieval)

[Web Search](https://nosible.com/blog/tag/web-search)

### [Announcing Atlas: The Point-in-time Knowledge Graph](https://nosible.com/blog/announcing-atlas-the-point-in-time-knowledge-graph)

2026-09-30

20 min read

![NOSIBLE World knowledge graph showing entity connections over a decade](https://nosible.com/images/2026/07/kg-hero-decade.png)

[Web Search](https://nosible.com/blog/tag/web-search)

[Information Retrieval](https://nosible.com/blog/tag/information-retrieval)

[NOSIBLE World](https://nosible.com/blog/tag/nosible-world)

### [Point-in-Time Knowledge Graphs over Named Entities with NOSIBLE World](https://nosible.com/blog/point-in-time-knowledge-graphs-over-named-entities)

2026-07-16

8 min read

![S&P 500 news-stress overlay with drawdown and signal thresholds](https://nosible.com/images/2026/06/news-stress-overlay-hero.png)

[Trading Signals](https://nosible.com/blog/tag/trading-signals)

[Risk Indicator](https://nosible.com/blog/tag/risk-indicator)

[NOSIBLE World](https://nosible.com/blog/tag/nosible-world)

### [Turning News into a Risk-On/Risk-Off Equity Signal](https://nosible.com/blog/turning-news-into-a-risk-on-risk-off-equity-signal)

2026-06-16

9 min read

> How NOSIBLE used Atlas to lift ticker coverage from 15% to 22% of World events by following products, people and subsidiaries, with zero look-ahead bias.

**URL:** https://nosible.com/blog/the-hidden-path-to-every-ticker
