Methodology
How Resolv prices
an event contract.
The short version is on the main page. This is the long version: what goes in, what the model does with it, when it refuses to answer, and how we check ourselves.
The pipeline
From headline to sized position,
in one pass.
Five deterministic stages. Click any one to look inside; the same pipeline runs on every refresh.
01 · INGEST
Aggregate
The two models
Different questions need
different maths.
Some contracts have something you can actually track: a price, a level, a date. Others don't. Using one formula for both would be wrong, so we don't.
There's a live price, a target, and a deadline. That's the same shape as an option, so we price it like one: how far away the target is, how much the thing moves, and how much time is left.
d₂ = [ln(S/K) + (μ − σ²/2)T] / σ√T
The Black-Scholes digital formula. N(d₂) is the probability the target is cleared by the deadline.
There's no price feed for a committee decision. So we start from what the market already believes, and move it only as far as new evidence justifies, the way a forecaster updates a view.
Working in log-odds keeps every factor additive, so the pieces sum exactly to the answer.
No unexplained residual. If a number can't be traced to a line in this table, it doesn't ship.
A call only fires when the gap is big enough and we're confident enough. Otherwise the answer is "sit this one out", with the reason attached.
Most contracts, most of the time, are priced about right. A tool that always has an opinion isn't a model.
Worked example
One contract,
end to end.
The stages above are explained one at a time. Here is the contract from the tables, “Fed cuts rates” trading at 58.0¢, walked through the whole pipeline in order: what comes in, what links, what the model does, what the gate says, and how much to risk.
-
INGEST
Pull the market
Both exchanges are polled; this venue prints 58.0¢, the other prints a touch lower, and the contract's resolution text comes along with the snapshot.
This exchange 58.0¢ Other venue lower Rules text captured -
LINK
Attach the evidence
Three headlines share enough words and entities with this contract to link to it, each weighted by relevance, source credibility, and recency.
Linked headlines 3 Older news fades Total nudge capped -
PRICE
Reprice it
A committee decision has no price feed, so the log-odds model starts from the market's 58.0¢ and moves it exactly as far as the evidence justifies, no further.
What moved itChangeExchange price58.0¢Crowd bias correction+0.5News+5.6Other exchange disagrees−0.4Vague rules discount−0.6Fair value63.1¢Model confidence 73% -
GATE
Pass the gate
The gap between 63.1 and 58.0 is +5.1 points; that clears the 4 point bar, confidence clears 50%, and evidence exists, so the call fires instead of “sit this one out”.
Edge ≥ 4 pts +5.1 ✓ Confidence ≥ 50% 73% ✓ Evidence ≥ 1 source 3 ✓ -
SIZE
Size the position
Half of the full Kelly stake for this edge and this confidence works out to 3.5% of bankroll, well under the 15% ceiling.
Half-Kelly stake 3.5% of bankroll Hard cap 15%BUY Fair value 63.1¢ vs 58.0¢ market · +5.1 point edge · 73% confidence · 3.5% of bankroll
Nothing here is a special demo path: the same walk-through runs on every contract, on every refresh.
Every price cites its evidence.
Headlines link to the contracts they move.
No black box. Ever.
How a headline reaches a price
News is matched to contracts by the words and entities they share, not by a language model guessing at relevance. That keeps it reproducible: the same headline and the same contract always produce the same link.
Each linked headline becomes a small nudge, weighted by how relevant it is, how credible the source is, and how recent it is. Older news fades. The total nudge is capped, so twenty versions of the same story can't run a price away.
If nothing links to a market, it gets no news adjustment, not a guessed one. Staying near the exchange price is the honest default when there's no evidence.
Resolution risk
Right call. Wrong payout.
Contracts settle on their written rules, not on what everyone agrees happened. When those rules are vague, you can be correct and still not get paid, so we price that risk instead of ignoring it.
We read the rules
Resolution text is scanned for weasel words, undefined terms and missing sources of truth. Each market gets a vagueness score.
Vague rules pull toward 50/50
The vaguer the rules, the closer we push our estimate to a coin flip, and the lower our stated confidence.
Flagged before you size
Markets where the payout could contradict a correct call are surfaced before you decide how much to risk, not after settlement.
Calibration
How we check ourselves.
A forecast that says 70% should be right about 70% of the time. That's a measurable claim, so we measure it, on data the model has never seen.
Each dot groups forecasts of similar confidence. On the line means well calibrated; above means we were too cautious, below means too bold.
What the scores mean
Log loss punishes confident mistakes hardest. Lower is better. A model that hedges everything at 50% scores about 0.69; we need to beat that to be worth anything.
Brier score is the average squared miss between forecast and outcome. Also lower-is-better, and easier to read: 0.25 is a coin flip.
From the current validation run on sample history. These get refit, and republished, as real resolved contracts accumulate. We'd rather show a modest honest number than a flattering one.
FAQ