Entity & ticker linking

Resolve company mentions to securities using issuer, exchange, and instrument context.

Step 01

Define and Align

Review representative examples and annotate the fields that need to change. Explain the edge cases to teach your team’s policy.

Output schema
Match statusChoose one

Whether the supplied context identifies a single security.

  • resolved
  • ambiguous
  • unmatched
TickerText · optional

Ticker from the supplied master; null unless resolved.

ExchangeText · optional

Exchange from the supplied master; null unless resolved.

InstrumentText · optional

Instrument from the supplied master; null unless resolved.

app.sutro.sh/functions/entity-ticker-linking
Collecting feedback · 1/3
Link the mention to a security in the supplied security master.
Example 1 of 3

Shared ticker needs exchange context

Model input
Matching rules
Synthetic security master and mentions. Match issuer, exchange, and instrument using only supplied candidates. Resolve only when the supplied context identifies exactly one security. Return ambiguous for multiple plausible candidates and unmatched for no candidate. For ambiguous or unmatched results, return null identifiers. Never invent tickers.
Security master
Harbor Robotics | HBR | XNYS | common_stock; Harbor Retail | HBR | XLON | common_stock; Cedar Energy | CDR | XNAS | common_stock; Cedar Energy | CDR-P | XNYS | preferred_stock
Mention
Synthetic feed: HBR shares moved higher. The feed supplies no issuer name or exchange.
Model output
Match status
Ticker
Exchange
Instrument

Step 02

Model Sweep

Compare models on the same expert annotations, then choose a quality–cost tradeoff.

Compare models on expert agreement and cost. The interactive chart uses illustrative measurements.

Illustrative sweep · select Value or Best to use that model in your function.

Step 03

Deployment

Call Sutro Functions like any other software. Swap the model as soon as something more performant is released.

Selected modelWaiting for sweep results.

Real-time

import sutro as so

input_data = {
    "matching_rules": "Synthetic security master and mentions. Match issuer, exchange, and instrument using only supplied candidates. Resolve only when the supplied context identifies exactly one security. Return ambiguous for multiple plausible candidates and unmatched for no candidate. For ambiguous or unmatched results, return null identifiers. Never invent tickers.",
    "security_master": "Harbor Robotics | HBR | XNYS | common_stock; Harbor Retail | HBR | XLON | common_stock; Cedar Energy | CDR | XNAS | common_stock; Cedar Energy | CDR-P | XNYS | preferred_stock",
    "mention": "Synthetic feed: HBR shares moved higher. The feed supplies no issuer name or exchange."
}

result = so.run_function(
    "entity-ticker-linking",
    input_data,
)

Batch

import sutro as so

job_id = so.batch_run_function(
    name="entity-ticker-linking",
    data="entity_ticker_linking.csv",
)
results = so.await_job_completion(job_id)

Ready to get started?

Book time with the team

Join the self-serve waitlist

What are your bottlenecks? (Select any that apply)