Why title-matching alone fails
Simple text matching — comparing words directly — breaks down quickly in practice. Synonyms, date formats, capitalization choices, and varying levels of specificity all produce titles that mean the same thing but look different to a string-comparison algorithm. Naive keyword matching also creates false positives: two questions that share words but ask about different events can appear more similar than they actually are.How semantic matching works
Arbitrage uses semantic embedding vectors to compare market titles. When a new market arrives, its title is converted into a vector representation and compared against existing canonical questions. Semantically similar titles cluster together even when the exact words differ. Vector similarity is then combined with lexical and structural signals — entity hints, time window alignment, and category — to produce a composite confidence score. This hybrid approach reduces both false positives (unrelated markets incorrectly matched) and false negatives (related markets missed because the text looks different).Three match methods
Every linked market-to-question pair carries amatch_method that tells you how the connection was established:
Confidence scores
The matching engine assigns aconfidence score between 0 and 1 to every proposed link. Three bands determine what happens next:
You can see the confidence score for each linked market in the
markets[] array returned by GET /api/v1/questions/{id}. Use it to gauge how certain Predexy is that two listings represent the same event.QuestionMarket fields
Each entry in themarkets[] array of a question detail response includes matching metadata alongside pricing data:
A
semantic_similarity close to 1.0 means the market titles are nearly identical in meaning; a value closer to 0.7 indicates a borderline match that may have required human review.
