Back to Institutional
Prediction market reference data

Symbology Explorer

A working view of the canonical entity, event, and outcome registry behind Oddpool — the reference data layer that maps every Kalshi market and Polymarket condition to a single Oddpool ID. Use the explorer at the top to walk through real cross-venue pairs interactively. The blocks below highlight specific patterns the schema catches — the cases that make a flat “event mapping table” not enough.

Loading...

Patterns the schema catches

Each card below is one specific failure mode of a naive event-pairing approach, and how the symbology handles it.

01

Surface-form drift collapses to one entity

Three different strings across venues, one canonical Oddpool ID. The alias array preserves the original surface forms for round-trip lookup.

Surface forms in the wild
Luiz Inácio Lula da SilvaPolymarket description
Lula da Silvaoutcomes (both venues)
lula da silvacase-folded variant
symbology_entity
oddpool_id
OPE:PERSON:LUIZ-INACIO-LULA-DA-SILVA
kind
person
canonical_name
luiz inacio lula da silva
aliases
["Luiz Inácio Lula da Silva", "Lula da Silva", "lula da silva"]
domain_tags
[brazil, elections, global elections, politics, world]
linked_outcomes
8 outcomes across 3 events
02

Outcome labels parsed into structured fields, not strings

A "Lula da Silva, 0–5%" outcome decomposes into entity_opid + bucket. The schema knows the semantic shape; downstream consumers don't have to parse strings.

Raw outcome labels
KalshiLula da Silva, 0-5%
PolymarketLula da Silva <5%
KalshiLula da Silva, ≥15%
PolymarketLula da Silva 15%+
Decomposed
discrete range
outcome_kind: range_bin
entity_opid: OPE:PERSON:LUIZ-INACIO-LULA-DA-SILVA
bucket: { lo: 0.0, hi: 5.0, units: "%" }
shape: discrete_range
cumulative threshold
outcome_kind: threshold_above
entity_opid: OPE:PERSON:LUIZ-INACIO-LULA-DA-SILVA
bucket: { lo: 15.0, hi: null, units: "%" }
shape: cumulative_threshold
03

Cumulative ≠ discrete, even for the same election

Kalshi's "Mejia ≥30%" resolves YES at any margin above 30%. Polymarket's "Mejia 30–35%" resolves YES only inside that range. Same election, NOT settlement-fungible per outcome.

Kalshi9 cumulative thresholds
Mejia, ≥26%cumulative_threshold
Mejia, ≥29%cumulative_threshold
Mejia, ≥32%cumulative_threshold
Mejia, ≥35%cumulative_threshold
Mejia, ≥38%cumulative_threshold
Mejia, ≥41%cumulative_threshold
Mejia, ≥44%cumulative_threshold
Mejia, ≥47%cumulative_threshold
Mejia, ≥50%cumulative_threshold
Polymarket7 discrete ranges
Mejia <20%discrete_range
Mejia 20-25%discrete_range
Mejia 25-30%discrete_range
Mejia 30-35%discrete_range
Mejia 35-40%discrete_range
Mejia 40%+discrete_range
Othervenue_only
basis_class = settlement_universe. A "Mejia ≥30%" YES on Kalshi can resolve while a "Mejia 30–35%" YES on Polymarket resolves NO (e.g. final margin = 38%). The schema flags this so it isn't mistaken for a clean spread.
04

Same outcome, different deadlines

The same House race resolves three months apart on the two venues. Polymarket settles on election day; Kalshi settles when the new Congress is sworn in. A position open at year-end is hedged on one venue and unsettled on the other.

KalshiKXHOUSERACE-MD02-26
MD-02 House winner?
deadline: 2027-01-31
trigger: winner sworn in for MD-02
source: ballot-listed party
Polymarketmd-02-house-election-winner
MD-02 House Election Winner
deadline: 2026-11-03
trigger: 2026 midterm election day
source: ballot-listed party
basis_class = settlement_window. Same race, same source, 89-day deadline gap. The Polymarket position resolves the night of November 3, 2026; the Kalshi position waits until the winner is sworn in on January 31, 2027. Anything that disrupts that window — death, contested result, certification delay — could resolve them differently.
05

Most cross-venue pairs aren't truly fungible

On a sample of 250 matched events, only about a third are basis_class=identical. The rest carry a real settlement difference, recorded explicitly so it isn't mistaken for a clean spread.

Identical85 events · 34.0%
Settlement window82 events · 32.8%
Settlement universe83 events · 33.2%
06

Polymarket placeholders never enter the registry

Polymarket lists hidden-name candidates as "Person A", "Show C", "Player K" until they're announced. We detect and skip these so the entity registry stays clean of meaningless OPIDs.

Filtered placeholder labels
×Person A
×Person B
×Candidate H
×Show C
×Movie K
×Player J
×Coach T
×Pitcher V
×Artist 3
Real labels admitted
Donald Trump
Connor McDavid
Anne Shirley
Lula da Silva
Analilia Mejia
Manchester United
Bayern Munich
Real Madrid
Tigres de la UANL
Real labels go through normalize → fuzzy alias match → entity OPID lookup or mint.