Execution style and the cost of a prediction market trade
Algo primer What are Talos TWAP and Sniper?
TWAP
Talos TWAP executes a fixed total quantity over evenly timed intervals, resting a passive slice at the current touch and stepping forward on a straight schedule. A configurable tracking band (Talos standard: ±5%) keeps it honest: if fills run ahead of schedule it holds back and waits, if they fall behind it crosses the spread to catch back up. Any quantity left at the end of the window sweeps immediately. Best suited to steady, predictable participation rather than opportunistic timing.
Illustrative simulation · target vs. executed quantity inside its tracking band · for illustration only.
Sniper
Talos Sniper is a three-mode adaptive algo built to fill at or better than arrival: faster than a naive peg, smarter than a naive sweep. It PEGs passively near arrival to build up maker fills, opportunistically SNIPEs (crosses the spread) when price dips favorably below a short-term volatility threshold, and SWEEPs any remaining quantity if price drifts past a statistically-derived adverse threshold, capping tail risk that a passive peg alone would not. Snipe and sweep bounds are derived from Talos execution alphas: daily, per-asset forecasts of volume, spread and volatility, recalibrated every day across 25,000+ assets.
Illustrative simulation · PEG/SNIPE/SWEEP zones around arrival · for illustration only.
Cross-market execution result
A negative value is favorable: the algo beat the benchmark, an instant sweep of the book. Unweighted averages across every regime and side row. Each market keeps its full comparison, including slippage against arrival, inside its own section below.
4 views available · click any tab below to switch markets
Order Book Dynamics: combined view
KXWCADVANCE-26JUL15ENGARG-ENG · kickoff verified 19:00:00 UTC (15:00 ET) via FIFA official match centre · YES = England advances
Note: match-clock markers on this chart are approximate, shown for illustration only, not an authoritative play-by-play feed.
Loading the semifinal order book…
Line style = event type (solid=goal, dash-dot-dot=disallowed goal, dash-dot=shot on target, dash=shot off target, medium dash=free kick, dotted=corner, fine dash=card)
Select an event line to read its match clock.
Green = favorable (outperformed benchmark), red = unfavorable. Averaged straight across every regime & side row in the tables below, not weighted by size or duration.
Key takeaway: Sniper consistently outperforms here because it is an opportunistic algo, it can act the moment a favorable price appears instead of working a fixed schedule against the book the way TWAP does.
Buy YES (England advances): TCA comparison · 5 regimes · 100k contracts · top-15% queue · Sniper peg 17.5% POV, snipe −3¢ / sweep +10¢ · green favorable / red unfavorable vs arrival · click a row to drill into child fills →
| Regime | Algo | Start(UTC) | End(UTC) | Duration | Arrival | AvgExec | Slip vsArrival (%) | Slip vsSweep (%) | IntervalVol (%) | IntervalReturn (%) | Maker % | Peg % | Snipe % | Sweep % | Catch-up % |
|---|
Buy NO (Argentina advances): TCA comparison · same settings · NO price = 1 − YES · click a row to drill in →
| Regime | Algo | Start(UTC) | End(UTC) | Duration | Arrival | AvgExec | Slip vsArrival (%) | Slip vsSweep (%) | IntervalVol (%) | IntervalReturn (%) | Maker % | Peg % | Snipe % | Sweep % | Catch-up % |
|---|
| Timestamp (UTC) | Exec Price | Qty | Liquidity | Mode |
|---|
Baseline method TWAP vs. Sniper: assumptions & methodology
Buy 100,000 contracts across five 10-minute windows of the ENG–ARG market, both YES and NO, and score each fill against arrival (mid at t₀). Two execution styles, one shared fill model:
- TWAP: linear schedule (total size ÷ duration(second)). Rests a passive slice at the current bid (reprices as the touch moves); assuming Talos standard boundary, if fills run past the +5% upper band it holds back to schedule, if they fall past the −5% lower band it crosses the spread to catch up. Any remainder swept at the window end.
- Sniper: PEG passively at the bid; SNIPE = cross up to arrival when the mid falls
−3¢below arrival (favorable); SWEEP = clears the remainder when the mid rises+10¢above arrival (adverse tail-cap). Bounds tuned in-sample on this one game. - Passive fills, queue position: both algos sit near the top of the queue (15% of displayed size ahead of us). Rationale: displayed depth is ~20–30× the trade flow, so most of it cancels and you advance to the front quickly. No cancel data → no credit for queue-jumps, so it stays conservative. Same assumption for both algos, so the maker/taker comparison is apples-to-apples.
- Sniper peg participation: the peg works ≤ 17.5% of top-of-book flow per second, with next-second flow predicted from the previous second (no lookahead).
- Benchmarks: slippage vs arrival, vs an instant t₀ sweep, and vs interval market; plus interval realized vol / return, maker %, and the peg/snipe/sweep/catch-up split.
Caveats: single game (N=1), in-sample bounds; one tick ≈ 0.9–2.0% so sub-tick slippage in calm windows is quantization noise; and in a market resolving to 0/1 a low price vs arrival can mean "bought a soon-to-be-worthless contract cheaply"; this illustrates algo mechanics, not P&L. Bound triggers aren't instantaneous; SNIPE/SWEEP check the mid once per second, so if a price move crosses the bound and keeps running within that same second, we only see where price landed at the next 1-second sample, not the path in between. The reaction can look a beat late and the fill can land past the bound; that's a data-resolution artifact of 1-second sampling (matching Kalshi's own polling cadence), not a simulator bug, and it's an acceptable limitation for this analysis.
Order Book Dynamics: Spain vs Argentina (World Cup Final)
KXMENWORLDCUP-26-ES · kickoff 19:00:00 UTC, 2026-07-19 · went to extra time · YES = Spain champion, NO = Argentina champion (complementary, last two teams standing)
Loading the final order book…
Play-by-play event markers hidden for readability; regime windows are still anchored to the confirmed Kalshi/Sportradar milestone timeline (see methodology below).
Green = favorable (outperformed benchmark), red = unfavorable. Averaged straight across every regime & side row in the tables below, not weighted by size or duration.
Key takeaway: Both algos post positive slippage vs arrival in this market, likely because the final was more volatile and higher-volume than the semifinal. But both still beat an instant sweep by a wide margin, which is the more telling comparison: it shows why institutional flow needs an execution algo to trade prediction markets rather than sweeping the book naively.
Buy YES (Spain champion): TCA comparison · 5 regimes · 100k contracts · top-15% queue · Sniper peg 17.5% POV, snipe −3¢ / sweep +10¢ · green favorable / red unfavorable vs arrival · click a row to drill into child fills →
| Regime | Algo | Start(UTC) | End(UTC) | Duration | Arrival | AvgExec | Slip vsArrival (%) | Slip vsSweep (%) | IntervalVol (%) | IntervalReturn (%) | Maker % | Peg % | Snipe % | Sweep % | Catch-up % |
|---|
Buy NO (Argentina champion): TCA comparison · same settings · NO price = 1 − YES · click a row to drill in →
| Regime | Algo | Start(UTC) | End(UTC) | Duration | Arrival | AvgExec | Slip vsArrival (%) | Slip vsSweep (%) | IntervalVol (%) | IntervalReturn (%) | Maker % | Peg % | Snipe % | Sweep % | Catch-up % |
|---|
| Timestamp (UTC) | Exec Price | Qty | Liquidity | Mode |
|---|
Baseline method TWAP vs. Sniper: assumptions & methodology
Buy 100,000 contracts across five 10-minute windows of the Spain–Argentina World Cup Final market, both YES and NO, and score each fill against arrival (mid at t₀). Two execution styles, one shared fill model, identical to tab 1:
- TWAP: linear schedule (total size ÷ duration(second)). Rests a passive slice at the current bid (reprices as the touch moves); assuming Talos standard boundary, if fills run past the +5% upper band it holds back to schedule, if they fall past the −5% lower band it crosses the spread to catch up. Any remainder swept at the window end.
- Sniper: PEG passively at the bid; SNIPE = cross up to arrival when the mid falls
−3¢below arrival (favorable); SWEEP = clears the remainder when the mid rises+10¢above arrival (adverse tail-cap). Bounds tuned in-sample on this one game. - Passive fills, queue position: both algos sit near the top of the queue (15% of displayed size ahead of us). Rationale: displayed depth is ~20–30× the trade flow, so most of it cancels and you advance to the front quickly. No cancel data → no credit for queue-jumps, so it stays conservative. Same assumption for both algos, so the maker/taker comparison is apples-to-apples.
- Sniper peg participation: the peg works ≤ 17.5% of top-of-book flow per second, with next-second flow predicted from the previous second (no lookahead).
- Benchmarks: slippage vs arrival, vs an instant t₀ sweep, and vs interval market; plus interval realized vol / return, maker %, and the peg/snipe/sweep/catch-up split.
Whichever team doesn't win, the other must, so YES/NO stay complementary (YES + NO = 1) exactly as in the semifinal. Regimes are anchored to the Kalshi/Sportradar milestone for this match (id 88d80f92-fc3c-4234-8445-7202564c6b52), same approach as tab 1. Regimes (named by realized volatility rather than by event, since play-by-play markers are hidden here): low volatility period (pre-kickoff), median volatility period (quiet mid-2nd-half), high volatility period 1 (21:00–21:10, the red-card whipsaw), high volatility period 2 (21:24–21:34, the extra-time goal), near end (21:44–21:54, bracketing full time and the market's run-up to settlement). One thing worth flagging:
- Bounds: SNIPE −3¢ / SWEEP +10¢, same as tabs 1 & 3 (tick size here is 0.1¢ vs 1¢ in tab 1, so this is a much finer grid relative to the bound width). An earlier same-bounds grid search on this game (2–6¢ sweep × 1–4¢ snipe) found the sweep width matters far more than the snipe width: a tight 2¢ sweep is much worse for both sides (forces panic-sweeps into unrelated noise), while 3–6¢ all land in a similar range; the wider 10¢ sweep used now sits past that tested range, giving Sniper more room before it's forced to clear the remainder. The dominant driver of Sniper's YES-side result isn't the bounds; it's the single ~16¢ order-book gap during Spain's goal (see caveat below); no bound choice fully rescues that fill, though NO benefits from the same gap since it's the favorable side of that move.
Same fill model, participation cap, benchmarks, and caveats as tab 1 (queue position, 17.5% POV peg, N=1 in-sample; single game, in-sample bounds; sub-tick slippage in calm windows is quantization noise; a low price vs arrival in a 0/1 market illustrates algo mechanics, not P&L; bound triggers check the mid once per second so a fill can land past the bound as a data-resolution artifact, not a simulator bug). Note the red card and both disallowed goals are all adverse-then-favorable whipsaw-prone moments for a Spain buyer; a good stress test for the sweep bound's whipsaw-vs-tail-cap tradeoff discussed for tab 1. Additional caveat specific to this game: during Spain's goal (high volatility period 2), the recorded order book gapped: the best price jumped from ~0.67 to ~0.83 between two consecutive polls with no displayed liquidity in between, so the Sniper sweep filled well past its bound; this is a feature of the data (a real, sudden repricing plus our polling cadence, not a simulator bug), and no bound choice avoids it for a buyer caught on the wrong side.
Order Book Dynamics: BTC daily strike (above/below $60k)
KXBTCD-26JUL0117-T59999.99 · 2026-07-01, 18:30–19:30 UTC · YES = BTC settles above $59,999.99, NO = at or below (complementary)
Loading the BTC daily strike order book…
No play-by-play feed for a price market; regime windows are chosen from realized order-book volatility (see methodology below).
Green = favorable (outperformed benchmark), red = unfavorable. Averaged straight across every regime & side row in the tables below, not weighted by size or duration.
Key takeaway: Algos save more here relative to a sweep than in either World Cup market. With a thinner order book, naive execution costs more, so the choice of algo matters even more.
Buy YES (BTC above $60k): TCA comparison · 3 regimes · 100k contracts · top-15% queue · Sniper peg 17.5% POV, snipe −3¢ / sweep +10¢ · green favorable / red unfavorable vs arrival · click a row to drill into child fills →
| Regime | Algo | Start(UTC) | End(UTC) | Duration | Arrival | AvgExec | Slip vsArrival (%) | Slip vsSweep (%) | IntervalVol (%) | IntervalReturn (%) | Maker % | Peg % | Snipe % | Sweep % | Catch-up % |
|---|
Buy NO (BTC at/below $60k): TCA comparison · same settings · NO price = 1 − YES · click a row to drill in →
| Regime | Algo | Start(UTC) | End(UTC) | Duration | Arrival | AvgExec | Slip vsArrival (%) | Slip vsSweep (%) | IntervalVol (%) | IntervalReturn (%) | Maker % | Peg % | Snipe % | Sweep % | Catch-up % |
|---|
| Timestamp (UTC) | Exec Price | Qty | Liquidity | Mode |
|---|
Contemporaneous correlation between BTC's 1-second log-return and the market's 1-second logit-return (Δlog(p/(1−p)), the unbounded analogue of a return for a [0,1] probability) is r = +0.24 (3,595 paired observations). The strongest correlation is at a 1-second lag (r = +0.33: BTC's return now vs. the market's return 1s later), decaying to noise (|r| < 0.07) beyond 2 seconds; consistent with the market reacting to spot moves with roughly a 1-second delay rather than moving in lockstep.
Worth noting: BTC spot never dipped below the $59,999.99 strike at all during this recorded hour (range $60,017.27–$60,289.63, a swing of under 0.5% around the strike); yet the market's implied YES probability swung from roughly 0.51 to 0.87. That's expected for a forward-looking binary: it prices the probability of ending above/below the strike by expiry (sensitive to realized/implied vol and time-to-expiry), not just "which side of the strike is spot on right now"; so a modest, appropriately-lagged correlation is the right order of magnitude, not evidence of a broken relationship.
Correlation vs. lag (seconds); lag k = corr(BTC return at t, market return at t+k). BTC: log-return of price_close. Market: delta-logit of clipped mid price (p in [0.005,0.995]), i.e. log(p/(1-p)) differenced.
Baseline method TWAP vs. Sniper: assumptions & methodology
Buy 100,000 contracts across three 20-minute windows of the BTC daily strike market (KXBTCD-26JUL0117-T59999.99), both YES and NO, and score each fill against arrival (mid at t₀). Two execution styles, one shared fill model, identical to tabs 1–2:
- TWAP: linear schedule (total size ÷ duration(second)). Rests a passive slice at the current bid (reprices as the touch moves); assuming Talos standard boundary, if fills run past the +5% upper band it holds back to schedule, if they fall past the −5% lower band it crosses the spread to catch up. Any remainder swept at the window end.
- Sniper: PEG passively at the bid; SNIPE = cross up to arrival when the mid falls
−3¢below arrival (favorable); SWEEP = clears the remainder when the mid rises+10¢above arrival (adverse tail-cap). Bounds tuned in-sample on this one game. - Passive fills, queue position: both algos sit near the top of the queue (15% of displayed size ahead of us). Rationale: displayed depth is ~20–30× the trade flow, so most of it cancels and you advance to the front quickly. No cancel data → no credit for queue-jumps, so it stays conservative. Same assumption for both algos, so the maker/taker comparison is apples-to-apples.
- Sniper peg participation: the peg works ≤ 17.5% of top-of-book flow per second, with next-second flow predicted from the previous second (no lookahead).
- Benchmarks: slippage vs arrival, vs an instant t₀ sweep, and vs interval market; plus interval realized vol / return, maker %, and the peg/snipe/sweep/catch-up split.
YES = BTC settles above $59,999.99 (i.e. above $60k) at expiry, NO = at or below. There's no play-by-play feed for a price market, so regimes here are chosen purely from realized volatility in the recorded order book (one continuous hour, 18:30–19:30 UTC on 2026-07-01; not necessarily near the contract's actual settlement time, which we haven't independently confirmed): low volatility period (18:36–18:46, calm chop), high volatility period 1 (18:47–18:57, a rollercoaster down to 0.535 and back), high volatility period 2 (19:10–19:20, a spike to 0.845 and reversal).
- Bounds: SNIPE −3¢ / SWEEP +10¢, same as tabs 1–2 (this market also ticks in whole cents, so the bounds carry over unscaled). Not re-optimized for this market specifically.
- Deeper book here: up to ~35 displayed levels vs. 5 in the football markets, so the same-side gap-risk finding from tab 2 is less likely to dominate; worth checking whether Sniper's sweep fills land closer to its bound here.
Same fill model, participation cap, benchmarks, and caveats as tabs 1–2 (queue position, 17.5% POV peg, N=1 in-sample). This is a single continuously-traded hour rather than a discrete sporting event, so these windows are picked for volatility contrast, not proximity to contract expiry (which we haven't independently confirmed).
Settlement Manipulation Research
Binance spot trades, one week (2026-06-01–06-08 UTC; 2026-06-01–07-02 for BTC) · 5-minute cycles folded onto a common 0–300s clock · testing the "still-live at the bell" order-flow spike from Dai, Jia & Yu, Settlement Manipulation in Prediction Markets (SSRN 7028398 / arXiv 2606.31675)
Loading the Binance order-flow replication…
How to read these charts Methodology
For each coin: bucket Binance spot trades into 10-second bins, fold every 5-minute cycle (aligned to wall-clock :00/:05/:10/... UTC) onto a common 0–300s clock, take the absolute value of signed net flow (buy $ − sell $) per bin, and average across all cycles for that bin position. "Still-live" cycles are the subset where price at ~290s is still close to the cycle's opening price, a proxy for "the outcome is still contested heading into the bell," which is what the paper's own methodology conditions on to reveal the effect. Each chart now also compares 2026 (Polymarket's 5-minute BTC contract live) against the same calendar week one year earlier, 2025 (before the contract existed) as a before/after control. Shown by default: bottom-25% still-live, 2026 (solid orange) and bottom-25% still-live, 2025 (dashed blue); click either checkbox off to hide a year, or toggle above to add the all-cycles, bottom-50%, or bottom-10% cuts (each toggles both years at once).
Coin coverage: Polymarket lists 5-minute up/down contracts on BTC, ETH, SOL, DOGE, and XRP, not BNB. BNB is included purely as an out-of-sample control (a liquid, actively-traded pair with no corresponding 5-minute settlement contract), to check whether any observed pattern is specific to markets with a real settlement incentive or just a generic artifact of 5-minute bucketing.
Key takeaway: There is a clear spike in order flow in the final 10 seconds of the 5-minute window for BTC, consistent with settlement-related manipulation around BTC prediction-market settlement. Polymarket also lists 5-minute contracts on ETH, SOL, DOGE, and XRP, but none of them show the same pattern. BNB is not a Polymarket 5-minute contract at all; it is included purely as a counterexample control.
BTC
ETH
SOL
DOGE
XRP
BNB
Vertical axis: absolute order flow ($M) per 10-second bin. Horizontal axis: seconds into the folded 5-minute cycle, so 290s is the last bin before settlement.
Final-10-second-bin order flow vs. the rest-of-cycle baseline, under the tightest (bottom-10%) still-live conditioning. BTC is the only coin where the final bin sits meaningfully above baseline; the others cluster around or below 1x; consistent with there being no confirmed, actively-traded 5-minute up/down contract on these coins to create a settlement-manipulation incentive in the first place.
The information herein is provided for informational purposes only. Talos Trading, LLC and its affiliates (“Talos”) does not give any representations or warranties in relation to the accuracy, validity, or completeness of the information of this material, including without limitation the factual information obtained from publicly available sources considered by Talos to be reliable at the time. Talos accepts no liability for any consequences of using the information contained in this material. Any opinions or estimates expressed herein reflect a judgment made by the author(s) as of the date of publication and are subject to change without notice. Neither this material nor any copy thereof may be taken, reproduced, or redistributed, directly or indirectly, without Talos’s prior written permission. Any views or opinions expressed are those of the authors and do not necessarily reflect the views of Talos. This communication does not constitute an offer to buy or sell, or a promotion or recommendation of, any digital asset, security, derivative, commodity, financial instrument, or product or trading strategy. This document and information are not intended to constitute investment advice or a recommendation to make (or refrain from making) any kind of investment decision and may not be relied on as such.