Poly Research & Robotics
PR&R / Trader Report
Home / Reports / BillBenter2026
Polymarket / On-chain

BillBenter2026

On-chain analysis of Polymarket trader BillBenter2026. Active over 27 days with 892,903 trades across 10,243 markets, netting +$96,765 at +0.7% ROI.

Published May 08, 2026 ~9 min read By PR&R Research View on Polymarket →
Volume traded
$14.88M
27-day window
Realized return
+0.7%
Cash-flow accounting
Top category share
29%
Tennis of total volume
Both-sides rate
79.1%
Market-maker shape
// 001 / Analysis

The portfolio shape, and where the edge appears to come from.

Wallet activity across 27 days, every fill mapped, profile traced.

BillBenter2026 is a high-volume both-sides spread capture bot with a genuine directional overlay. The name is apt: the real Bill Benter built his fortune by layering a directional model on top of a structural edge, and this wallet does something structurally similar on Polymarket. It buys both sides of the same event on 79.1% of its active markets, locking in spread income whenever the paired VWAP clears below $1.00. On top of that foundation, it tilts heavily toward one outcome when its signal is confident, and that tilting is where the directional P/L lives.

The headline numbers are enormous in scale but modest in ROI: 892,903 trades across 10,243 markets, $14.9M deployed, +$96,765 net P/L, +0.65% ROI over 27 days. That sub-1% ROI on capital deployed sounds thin until you realize the capital turns over multiple times per day. This is a volume business. The P/L decomposition makes the architecture clear: the spread engine is structurally underwater (paired costs averaging $1.033 across the book, well above $1.00), which means the spread leg is not a reliable profit center. All the real money comes from the directional tilt when the dominance ratio is high.

KEY FINDINGMarkets where the bot tilts at 3x or higher dominance (4,505 markets) have a dominant-side win rate of 73.0% - that is the load-bearing edge. The 1.0-1.5x bucket barely clears 54%. The directional signal is real and it sharpens dramatically above 3x.

The portfolio shape

The universe is broad and sports-heavy: Soccer (366K trades, $3.75M), Tennis (293K trades, $4.34M), NBA (25K trades, $1.06M), Other (135K trades, $3.8M including esports), plus smaller MLB, NHL, and NFL slices. Tennis and Soccer together account for 73% of trade count and 54% of capital deployed. Both verticals include match-winner, set-winner, and game-level markets, giving the bot enormous granularity to construct paired positions and tilts. The NBA is a small share of trades but the single best-performing category at +9.6% ROI (+$101K on $1.06M). The esports component (League of Legends, Valorant, Counter-Strike) is embedded within "Other" and appears in the best-market list repeatedly, suggesting the directional model performs particularly well there.

The size profile is bounded but has meaningful concentration at the top: median fill is $5.80, P99 is $150, and the top 5% of trades by size carry 39% of total capital. The max single fill is $2,040. This is not a flat-clip strategy; the bot scales its clips when confident, and the very large fills (the $2,040 outlier, the $312+ clips visible in the CSV's earliest trades) represent the high-conviction end of its sizing curve.

Architecture in one sentence: A paired-position spread-capture bot that systematically over-weights the side it believes will win, generating P/L almost entirely from the directional tilt rather than the spread mechanic.

Where the edge appears to come from

The dominance analysis tells the story cleanly. At 1.0-1.5x dominance, the dominant side wins 54.4% of the time - barely above chance, consistent with pure spread capture with no signal. At 1.5-2.0x, it's 58.0%. At 2.0-3.0x, 61.1%. At 3.0x or higher, 73.0%. This is a calibrated conviction curve: the bot bets bigger exactly when it is right more often. Whatever model sits behind this - Elo-based, historical line movement, external odds feeds - it has real predictive power in the high-conviction range.

The median second-side lag is 634 seconds (about 10 minutes), meaning the bot typically enters the dominant side first and adds the hedge leg within roughly 10 minutes. This is deliberate pairing, not coincidental: the bot constructs the spread intentionally but sizes the two legs asymmetrically based on its directional confidence.

The hour and day patterns reinforce the "model-driven" interpretation. There is no sleep window - trading spans all 24 UTC hours with only modest variation. The best hours by win rate are 09:00 (60.3% WR), 10:00 (57.9%), and 08:00 (58.1%), which corresponds to European morning - the highest-liquidity window for Soccer and Tennis. The worst hours are 07:00 (52.6%) and 01:00-04:00 UTC (53-54%), when fewer high-quality sporting events are live and the signal has less to work with.

One market, trade by trade

Consider Cavaliers vs. Pistons (nba-cle-det-2026-05-07) from the tail of the CSV. Within roughly 11 minutes of each other, the bot buys Pistons at $0.71-0.77 (the dominant side, resolving correctly) and also buys Cavaliers at $0.24-0.29 (the hedge). The Pistons fills are systematically larger: multiple clips of 8-18 shares at $0.71-0.77, while the Cavaliers fills are 22-27 shares at $0.24-0.29. The paired cost across this event sequence is approximately 0.74 + 0.26 = $1.00 on matched share count - right at the break-even line. The dominance ratio skews above 3x because the Pistons notional dwarfs the Cavaliers hedge. Pistons resolves as the winner. The directional tilt pays; the hedge costs a small tax. This is the model in miniature, repeated thousands of times per day across Soccer, Tennis, NBA, and esports.

VOLUME CONTEXT892,903 trades in 27 days = 33,070 trades per day on average. That is not a human. This bot runs around the clock, fires multiple fills per second during peak hours (40% of consecutive fills are under 10 seconds apart), and covers 10,243 distinct markets - an average of 379 markets per day.

What you can copy

The directional overlay is the replicable component. The dominance ratio curve is a real signal: when the bot puts 3x or more on one side, the dominant side wins 73% of the time. A replicator can use this as a filter on its own entries, or build a simpler version: enter only the dominant side when conviction is high (3x+), skip the hedge entirely, and operate in the +9-18% ROI territory the high-conviction bucket generates. The NBA and esports verticals are the sharpest performers in absolute P/L terms and are worth over-weighting.

The $0.00-$0.10 entry band is the other portable insight. 24,246 trades at sub-$0.10 prices yielded +$83K P/L on $136K deployed - a 61% ROI. This is the longshot-tilt wing of the book: the bot buys tiny hedges and occasional speculative longshots at near-zero prices, and the few that hit pay 10x+. This is structurally similar to buying insurance that occasionally pays catastrophically well.

What you probably can't copy

The spread mechanic at scale. The bot's paired cost averages $1.033 across all markets - meaning it is, on net, paying for the privilege of having both sides covered. The spread leg is a loss center in aggregate, compensated by the directional wins. Trying to replicate only the spread component without the directional overlay would produce consistent losses. The pairing also requires simultaneous access to both sides of every market at reasonable prices, which implies either maker relationships or a fast enough taker that the hedge fills before the book moves against the position.

The raw throughput may also be challenging to replicate at the same scale. 33,000+ fills per day across 379 markets requires robust infrastructure: persistent WebSocket connections, a nonce manager capable of handling sub-second multi-fill bursts (the CSV shows 6-12 fills within the same second at window open), and enough liquid capital to hold many concurrent open positions without running dry.

// 002 / Figure

Cumulative P/L over the window.

The line is daily cumulative net P/L. Mouse along it for daily detail. The dashed grey trace, when present, is cumulative BUY notional deployed.

// 003 / Reverse-engineering report

Reverse-engineering report

Every fill mapped, the asymmetric profile traced, the math behind the edge.

Wallet: 0x84ad9c5c547a82ec9a08547b94bd922446e5bfb7 Window: 2026-04-11 → 2026-05-07 (27 calendar days, 27 active) Universe: 892,903 trades · 10,243 markets · 4,521 events · $14.88M gross turnover Net P/L: +$96,765 on $14.87M deployed = +0.65% ROI in 27 days

P/L methodology: Cash-flow accounting on resolved BUYs only. Per-trade P/L = shares (if win) minus USDC spent, or -USDC spent (if loss). SELL trades = 0 across this wallet. Spread P/L and hedge tax are decomposed separately in Phase 9.

The Punchline

This is not a pure market maker, and it is not a pure directional bettor. It is both, stacked. The bot buys both sides of the same event on 79.1% of its active markets, which superficially resembles market making. But the paired cost across the full book averages $1.033 - above the $1.00 break-even line - so the spread mechanic is losing money, not printing it. Every dollar of profit flows from the directional tilt: when the bot has conviction, it puts 3x or more on the dominant side, and that dominant side wins 73.0% of the time.

The dominance curve is the single most important finding. Win rates escalate monotonically with conviction: 54.4% at 1-1.5x, 58.0% at 1.5-2x, 61.1% at 2-3x, 73.0% at 3x+. The high-conviction bin alone contains 4,505 markets and generates the bulk of net positive P/L. This is a calibrated model expressing directional views through asymmetric allocation within paired positions. It is exactly what Bill Benter did in Hong Kong horse racing - a model-driven directional overlay on top of a structural participation mechanic.

The scale is extraordinary: 892,903 fills in 27 days, ~33,000 fills per day, active across all 24 UTC hours, spanning Soccer, Tennis, NBA, MLB, NHL, NFL, and esports. The low headline ROI (+0.65%) reflects the capital intensity of running 380+ markets per day. Absolute P/L of +$96,765 in 27 days on a book that turns over $14.9M is the real metric.


What He Trades

The universe is deliberately broad across sports categories, with Tennis and Soccer as the volume backbone:

Category Trades BUY Vol P/L ROI
Tennis 292,796 $4.34M +$27,301 +0.63%
Soccer 366,499 $3.75M -$58,634 -1.56%
NBA 24,777 $1.06M +$101,762 +9.62%
Other (esports/misc) 135,252 $3.80M +$18,635 +0.49%
MLB 46,879 $1.27M -$9,267 -0.73%
NHL 15,658 $0.42M +$13,695 +3.27%
NFL 11,042 $0.25M +$3,495 +1.41%

Soccer is the largest category by trade count and is the biggest absolute P/L drag (-$58,634). This is unusual and worth flagging: the bot deploys massive volume in Soccer but loses money. Tennis is flat (+0.63%). NBA is where the directional model is sharpest (+9.62%). The esports bucket inside "Other" produces outsized per-market P/L (the best-market list includes multiple LoL and Valorant entries yielding +$8,000-$12,000 each on only 130-370 trades).

The price band distribution is broadly spread, with no single $0.10 bucket dominant:

Band Trades Vol ($) P/L ROI
$0.00-$0.10 24,246 $136K +$83,071 +60.96%
$0.10-$0.20 36,000 $337K -$36,232 -10.76%
$0.20-$0.30 81,582 $685K +$8,240 +1.20%
$0.30-$0.40 101,214 $1.002M +$7,224 +0.72%
$0.40-$0.50 106,410 $1.270M +$35,915 +2.83%
$0.50-$0.60 125,135 $2.496M +$43,735 +1.75%
$0.60-$0.70 135,916 $2.612M -$19,840 -0.76%
$0.70-$0.80 128,955 $2.584M -$37,404 -1.45%
$0.80-$0.90 97,489 $2.219M +$1,294 +0.06%
$0.90-$1.00 55,868 $1.526M +$10,984 +0.72%

The sub-$0.10 band is a massive outlier: 2.7% of trades, 0.9% of capital, 60.96% ROI, contributing +$83K - more than the total net P/L of the book. This is almost certainly hedge/longshot fills that occasionally hit at 10x+. The $0.10-$0.20 band bleeds (-10.76%), which is common in paired-cost books when one-side prices in the 15-18 cent range settle against the position.

The most important price observation is the $0.60-$0.80 zone: the bot deploys $5.2M there (35% of total capital) but generates -$57K combined. This is where the heavy favorite side of paired positions lives, and the problem is that $1.00 of expected payout is being purchased for more than $1.00 of combined outlay whenever the pairs cost above the break-even line.


The Order of Operations - One Event, Position by Position

Cavaliers vs. Pistons, NBA, 2026-05-07 (event: nba-cle-det-2026-05-07). Pistons resolved as the winner.

The bot entered this event across three related markets: the moneyline (Cavaliers vs. Pistons), a spread market (Spread: Pistons -6.5), and the moneyline again with varying conviction over roughly 11 minutes.

Time (UTC) Market Outcome Price Shares USDC Note
23:57:13 Moneyline Pistons $0.77 8.0 $6.20 dominant leg opens
23:57:11 Moneyline Cavaliers $0.24 27.0 $6.63 hedge leg, smaller dollar
23:57:13 Spread Pistons -6.5 Pistons $0.50 191.0 $96.93 spread market, balanced pricing
23:57:04 Moneyline Pistons $0.74 9.0 $6.71 adds to dominant
23:49:21 Moneyline Pistons $0.72 9.0 $6.53 adds to dominant
23:49:21 Spread Pistons -6.5 Cavaliers $0.52 76.0 $40.09 hedge on spread market
23:49:22 Spread Pistons -6.5 Cavaliers $0.52 115.0 $60.16 continues hedge
23:49:01 Moneyline Cavaliers $0.26 25.0 $6.64 adds to hedge
23:48:49 Spread Pistons -6.5 Cavaliers $0.44 30.0 $13.20 adds to hedge at lower price
23:49:01 Spread Pistons -6.5 Cavaliers $0.47 18.87 $9.01 more hedge

Walk-through:

  1. The bot opens with moneyline Pistons at $0.77 - an 8-share position worth $6.20. This is the dominant leg: Pistons are the implied favorite at ~77 cents.

  2. Within the same second, it enters Cavaliers at $0.24, spending $6.63 for 27 shares. The combined outlay is $12.83 for a paired position where one side must pay $1.00. Paired cost: $0.77 + $0.24 = $1.01 - just above break-even. The Cavaliers spend is actually larger in dollar terms here despite being the non-dominant side, because the cheap longshot buys many more shares per dollar.

  3. Simultaneously it enters the spread market (Pistons -6.5) at $0.50/$0.50 near-even pricing, deploying $96.93 on Pistons cover and $109.26 on the Cavaliers side across several fills. The spread market is near-balanced, contributing close to $0 net edge.

  4. The bot adds to the dominant moneyline position over the next 8 minutes (fills at $0.72-0.74), maintaining its asymmetric tilt on Pistons winning.

  5. Pistons win. The dominant moneyline shares pay $1.00 each. The $6.63 Cavaliers hedge and $109 spread hedge both pay $0. Net: positive directional outcome; modest negative hedge tax.

The key structural observation: dominance ratio on this event's moneyline is approximately (Pistons USDC) / (Cavaliers USDC) = $19.44 / $20.00 = ~0.97x. That's near-parity on the moneyline! The bot's tilt shows up more clearly in the share count (44 Pistons shares vs 52 Cavaliers shares) and the price differential (paying $0.74-0.77 for Pistons vs $0.24-0.29 for Cavaliers). The Cavaliers position is the actual hedge; the Pistons is the real bet. This is standard both-sides construction where the cheaply-priced leg buys protection across more shares.


Why It Works - The Math

The strategy's core EV argument is that the directional model outperforms the market's implied probabilities in the high-conviction cases:

Dominance bucket analysis (3x+ markets):
  Markets:          4,505
  Dominant side WR:  73.0%
  Market-implied WR: ~62-68% (estimated from paired price distribution)

Edge per market (dom side):
  p_win_actual    = 0.730
  p_win_implied   = ~0.650 (typical mid-price in 3x+ dominant position)
  EV per $1 bet   = 0.730 * (1.00 / 0.650) - 1.00
                  = 0.730 * 1.538 - 1.00
                  = 1.123 - 1.00
                  = +$0.123 per dollar of dominant-side capital

Hedge tax per market (non-dominant side):
  Non-dominant wins 27% of the time, paying ~$3-4 per dollar at prices of $0.25-0.35
  Expected loss = 0.73 * (non-dom outlay) per market on average

Net EV: positive when directional edge exceeds hedge tax

The problem is the 1.0-1.5x bucket: 54.4% dom WR at near-50-cent prices is barely above break-even and the hedge tax nearly neutralizes the small directional edge. The P/L composition reflects this: the book's total spread P/L is -$288,341 (the spread mechanic is a net loss of $288K), which is partially offset by the directional wins. The entire +$96K net profit is generated by the 3x+ conviction tier. Everything below 3x is either marginally positive or negative.

This creates a clear strategic prescription: the bot should run narrower and higher-conviction rather than broad and paired. The current structure wastes capital on spread positions that erode value.


Phase 1 - Trader Profile

Scale and activity: - 892,903 BUYs, 0 SELLs, 27 active days (100% of calendar days) - $14,883,371 deployed across 10,243 unique markets - Average 33,070 trades/day; ~380 markets/day - 4,521 unique events, average 2.27 markets per event (confirming systematic multi-market coverage per event)

Trade size distribution:

Stat Value
Median $5.80
Mean $16.67
P95 $57.26
P99 $150.22
Max $2,040.80
Top 5% share of capital 38.75%

The distribution is semi-power-law: median is small ($5.80) but there is a long right tail. The max at $2,040 is 352x the median, and the P99 is 26x the median. The top 5% of fills hold 39% of capital. This is consistent with a variable-clip sizer that scales clips with conviction, rather than a flat-clip bot.

The Lorenz data confirms: the bottom 50% of trades by size carry only 7.5% of capital, while the top 10% carry 52%. The sizing inequality is real and meaningful.

Execution signature: - Median inter-fill gap: 16 seconds - 40.2% of fills under 10s apart; 79.1% under 60s - Mean gap: 108 seconds (much higher, driven by long inter-event gaps) - Pattern: bot-speed bursts within a market, then slower inter-market transitions

The opening of the CSV shows characteristic fan-out: at 2026-04-11 00:00:41 UTC, six fills in the same second across two different Pistons vs. Hornets outcomes (422 shares at $0.50, 40 shares at $0.50, 19 shares at $0.50, 18 shares at $0.50, two more). Same-second multi-fill fan-out is a bot signature.

Active hours: Trading occurs all 24 UTC hours with no hard gap. Peak volume 14:00-20:00 UTC; secondary peak 11:00-14:00 UTC. The 03:00-07:00 UTC trough (13K-17K trades/hour vs 55K-68K at peak) is not zero - the bot is running overnight, just at reduced intensity when fewer live events are available.

Archetype: BOTH-SIDES MM + DIRECTIONAL OVERLAY - 79.1% both-sides rate with a strong conviction curve. Not a pure MM (paired cost is underwater) and not a pure directional (hedge legs are always present). A hybrid that extracts value primarily from directional accuracy.


Phase 2 - Core Strategy Identification

Both-sides participation rate: 79.1% (8,103 of 10,243 markets)

This is a both-sides book. For 8 out of every 10 markets the bot touches, it buys both YES and NO (or both team outcomes). This is the defining structural characteristic.

However, the paired cost tells us the MM mechanism is not the profit source: - Median paired cost: $1.026 - Mean paired cost: $1.033 - % of paired markets with cost below $1.00: 41.0% - % with cost below $0.97: 30.5%

At mean paired cost of $1.033, every matched-share pair costs $0.033 more than it pays out on average. The spread engine is a net negative. This collapses the pure-MM hypothesis.

What IS the profit source: The dominance ratio analysis (Phase 3). When the bot tilts 3x+, it wins 73% on the dominant side. The P/L is directional.

Archetype classification: - NOT pure Market Making (paired cost underwater, spread P/L = -$288K) - NOT pure Directional (79.1% of markets have a hedge leg) - IS a directional model expressed through asymmetric pairing: the "hedge" leg is insurance that costs ~3.3 cents per dollar of matched notional, while the "dominant" leg captures the directional edge when the model is correct

The strategy is closest to what quantitative sports modelers call a "rounded book" approach: you have a price for every outcome, you always take positions on all sides, but you size them proportional to your edge, making the dominant-side positions larger whenever your model's edge is highest.


Phase 3 - Dominance Ratio Analysis

This is the most important phase for this wallet.

Bucket Markets Dom Side WR Mean Paired Cost Interpretation
1.0-1.5x 1,348 54.4% $1.054 No signal, spread cost erodes returns
1.5-2.0x 1,007 58.0% $1.054 Marginal signal, below hedge-cost recovery
2.0-3.0x 1,243 61.1% $1.040 Real signal, approaching profitability
3.0x+ 4,505 73.0% $1.020 Strong signal, this is where the money is

Four observations from this table:

  1. The win rate jump from 2-3x to 3x+ is the largest discrete step in the conviction curve - from 61.1% to 73.0%. The model's edge is not linear; it accelerates at the top.

  2. Paired cost declines as conviction rises - from $1.054 in the 1-1.5x bucket to $1.020 in the 3x+ bucket. When the model is confident, the bot buys the dominant side at a better relative price (because the "cheap" hedge is at a lower price, reducing the blended cost). This is a favorable structure.

  3. The 3x+ bucket contains 4,505 markets - 55% of all both-sides markets - meaning most of the book is in the high-conviction zone. The model fires at high confidence more often than not.

  4. The 1.0-1.5x bucket (1,348 markets, 54.4% WR, $1.054 paired cost) is the value-destroying segment. These are markets where the bot has nearly no edge and is paying over-round for the privilege of covering both sides. Eliminating this segment would likely improve total P/L.

The practical implication for replication: only enter when dominance is 3x or higher on the dominant side. The 1-2x zone is noise.


Phase 4 - Entry Price Analysis

The per-band breakdown (Phase 1 table above) reveals three regimes:

Regime 1: Sub-$0.10 (longshot/hedge fills) - 60.96% ROI on $136K. These are the extreme-underdog legs of paired positions: when the model puts all the weight on the favorite side and buys the opponent at $0.03-$0.09 as pure insurance. The few that win pay 10-30x. The ROI is spectacular but the capital is tiny.

Regime 2: $0.40-$0.60 (coin-flip zone) - +1.75-2.83% ROI, the spread-capture sweet spot. The bot deploys heavily here ($1.27M + $2.50M = $3.77M in the two buckets). These are the "balanced" sides of paired positions where the spread mechanic comes closest to break-even.

Regime 3: $0.60-$0.80 (heavy-favorite zone) - Both bands are negative ROI (-0.76% and -1.45%). The bot deploys $5.2M at $0.60-$0.80 and loses $57K. This is the dominant-side leg of paired positions where the model's directional call is expressed, but in markets where the paired cost exceeds $1.00 by enough to overwhelm the directional win rate.

Sub-bucket inspection: The price distribution across the full 100-cent range shows no single dominant tick. This is unlike a pure latency-arb bot (which concentrates at specific ticks) or a penny-floor bot. The entry price is wherever the orderbook offers value when the model fires.

The $0.10-$0.20 bucket (-10.76% ROI) is notable: 36,000 trades, -$36K P/L. These are probably the short-odds hedge legs of high-conviction dominant positions - the bot pays $0.15 for the underdog side when it has 6:1 conviction on the other side. The underdog rarely wins, and the ROI is a consistent drain.


Phase 5 - Category and Vertical Breakdown

Category Trades Vol P/L ROI Badge
NBA 24,777 $1.06M +$101,762 +9.62% ELITE
NHL 15,658 $0.42M +$13,695 +3.27% STRONG
NFL 11,042 $0.25M +$3,495 +1.41% MODEST
Tennis 292,796 $4.34M +$27,301 +0.63% MODEST
Other 135,252 $3.80M +$18,635 +0.49% MODEST
MLB 46,879 $1.27M -$9,267 -0.73% UNPROFITABLE
Soccer 366,499 $3.75M -$58,634 -1.56% DESTRUCTIVE

Soccer is the single largest source of losses (-$58,634) despite being the second-largest category by volume. The bot's model performs poorly on Soccer relative to tennis and American sports. This may reflect the difficulty of modeling soccer outcomes (low-scoring, high variance) versus more deterministic markets (basketball final scores).

The esports component within "Other" is a highlight: multiple LoL markets appear in the best-performing list with +$8,000-$12,000 per market. The LoL: Dplus KIA vs KT Rolster, LoL: KT Rolster vs HANJIN BRION, and LoL: LOUD vs Vivo Keyd Stars markets all yielded substantial positive P/L on moderate trade counts. The model appears to have real edge in structured esports competitions.

Top performing individual markets: - Trail Blazers vs. Spurs: +$71,421 on $21K volume - anomaly, likely a massive underprice that resolved favorably - LoL: Dplus KIA vs KT Rolster (G2): +$12,971 - Will Portsmouth FC win: +$12,454 on $2.6K (extremely high ROI on a tiny Soccer bet) - LoL: KT Rolster vs HANJIN BRION (BO3): +$10,197

Worst markets: - Knicks vs. Hawks: -$12,435 on $35K volume - LoL: Weibo Gaming vs Anyone's Legend (BO3 + G2): -$9,454 + -$8,124 (both 0 wins - model was completely wrong on this matchup) - Madrid Open: Tsitsipas vs Ruud: -$7,424 - Lakers vs. Rockets: -$7,127


Phase 6 - Timing and Execution

Hourly P/L pattern (UTC):

Hour Trades WR P/L
02:00 21,489 53.4% +$57,185
23:00 28,485 56.3% +$33,631
09:00 32,042 60.3% +$47,296
03:00 14,906 54.7% +$23,137
14:00 57,318 54.6% -$46,355
17:00 58,734 55.3% -$20,659
12:00 51,473 54.7% -$20,411
19:00 68,266 54.9% -$13,499

The hourly pattern is counterintuitive: the highest-volume hours (14:00-19:00 UTC) are the worst-performing, while several low-volume overnight hours produce the best P/L. This suggests the model's edge is highest in low-competition, off-peak windows where fewer efficient actors are participating. The 09:00 UTC hour (+$47K, 60.3% WR) is the exception - European morning, high-quality Tennis and Soccer events, where the model has strong signal.

Day-of-week:

Day Trades WR P/L ROI
Mon 88,041 57.1% +$27,659 +1.90%
Tue 114,736 57.1% -$21,118 -1.09%
Wed 111,937 57.2% +$69,703 +3.83%
Thu 92,389 56.7% +$33,182 +1.95%
Fri 71,967 56.1% -$11,905 -0.81%
Sat 215,675 54.0% -$20,962 -0.57%
Sun 198,158 54.6% +$20,204 +0.72%

Saturday has 2.4x the weekday average trade count (primarily Tennis and Soccer weekend schedules) but loses money. The model's edge on weekend sports is lower than on weekday events. Wednesday is the best day (+$69,703) with the highest win rate (57.2%) - mid-week NBA, Tennis, and soccer with strong model performance.

Second-side lag: Median 634 seconds (10.6 minutes) between entering first and second side in a paired market. This is consistent deliberate pairing, not coincidental. The bot has a defined time window for hedging after the dominant-leg entry.


Phase 7 - Filter Experiments

Filter Markets WR Capital P/L ROI Delta
Unfiltered 892,815 55.67% $14.87M +$96,986 +0.65% baseline
Price $0.30-$0.70 482,436 51.77% $7.64M +$68,184 +0.89% +0.24% lift, -$28,802 abs
High-conv dom 2x+ 376,315 75.74% $6.87M +$1,258,243 +18.33% +$1,161,257
Top category: NBA 24,777 52.4% $1.06M +$101,762 +9.62% captures $105K on 7% of capital
Exclude worst hours 814,718 55.9% $13.35M +$40,294 +0.30% -$56,692 absolute
Combined stack 8,603 52.9% $346K +$20,585 +5.95% +$20.6K on tiny book

The high-conviction filter is the most transformative finding in this entire analysis. Keeping only the dominant side of markets where dominance ratio is 2x or higher - 376,315 trades, 42% of the book by count but 46% by capital - yields +$1.258M P/L at +18.33% ROI. That is roughly 13x the actual net P/L on 46% of the capital. The remainder of the book (the hedge legs and low-conviction paired positions) destroys approximately $1.16M of value.

This tells us directly: the bot is subsidizing its losing book segments with its winning directional calls. A stripped-down version running only high-conviction dominant sides would dramatically outperform the current structure.

The "exclude worst hours" filter performs poorly in absolute terms - removing hours 01:00, 02:00, 04:00, and 07:00 (the identified worst hours by win rate) actually decreases absolute P/L, because hours 02:00 and 03:00 have low win rates but large positive P/L from high-conviction esports and soccer positions. Do not filter by hour.


Phase 8 - Rolling Window Consistency

Metric Value
Rolling 7-day windows green 18 of 27 (66.7%)
Rolling 7-day P/L range -$81,057 to +$106,170
Rolling 15-day windows green 26 of 27 (96.3%)
Rolling 15-day P/L range -$10,463 to +$132,795
Weekly P/L: W15 (Apr 11-12) +$35,043
Weekly P/L: W16 (Apr 13-19) -$2,844
Weekly P/L: W17 (Apr 20-26) +$36,144
Weekly P/L: W18 (Apr 27-May 3) +$329
Weekly P/L: W19 (May 4-7) +$28,315

The 15-day rolling windows are nearly all green (96.3%), demonstrating that the edge is real and persistent over multi-week periods. The 7-day windows are more volatile - 66.7% green - with several large negative 7-day windows in late April/early May. The rolling7 data shows a sharp drawdown sequence: -$31K (Apr 29), -$75K (Apr 30), -$81K (May 1), -$20K (May 2) before recovery. This corresponds to a week when Soccer (perennially the weakest category) dominated the event schedule.

The edge is real but not monotonic. The strategy has a structurally positive 15-day expectation but meaningful 7-day drawdown risk from category concentration (when a bad Soccer week dominates the book) and model variance on high-volume events.

CONSISTENCY CAVEATOne rolling 15-day window closes negative: -$10,463 on the May 7 terminal date. This is the tail of the late-April Soccer drawdown appearing in a 15-day window. The 27-day window is solidly positive.

Phase 9 - P/L Decomposition

Component Value Interpretation
BUY USDC out -$14,883,371 Total capital deployed
No SELL proceeds $0 Zero SELLs across the entire window
Resolved wins +$14,980,137 Winning shares paying $1.00 each
Net realized P/L +$96,765 Winning shares minus total cost
Net ROI +0.65% Low headline, meaningful at scale
Spread P/L -$288,341 Cost of running paired positions above $1.00 paired cost
Hedge tax -$5,303,688 USDC spent on losing (non-dominant) legs across the book

The decomposition reveals the true anatomy of the P/L. The hedge tax is enormous: $5.3M spent on the non-dominant legs of paired positions, with a win rate on those legs of roughly 27% (100% - 73% where dominant side wins). The directional wins on the dominant side must overcome both the raw hedge cost and the spread over-round.

Directional P/L (estimated):

High-conviction (3x+) dominant leg capital:  ~$6M (estimated from 376K trades × avg $16)
High-conviction win rate:                      73%
Expected payout:  0.73 × ($6M / avg_price)   >> positive
Hedge tax on these markets:                   ~$1.5-2M (non-dominant legs)
Net directional gain (estimated):             ~$1.3M before hedge tax
After hedge tax:                              ~$400-500K
Plus low-conviction directional gains:        ~-$200K (drag)
Less spread over-round:                       -$288K
Net:                                          ~$96K (matches actual)

The conclusion is consistent: the entire net P/L is generated by the 3x+ conviction tier, and the rest of the structure is a wash at best, a drag at worst.


Phase 10 - Strategy Specification (short form)

One-sentence summary: A both-sides prediction market bot with a calibrated directional model that expresses conviction through asymmetric allocation within paired positions, generating all net P/L from markets where the dominant side is tilted 3x or higher.

Edge source: Directional model accuracy in the high-conviction tier (73% dominant win rate at 3x+). The spread mechanic is structurally negative and provides only risk-reduction, not alpha.

What works: NBA markets (+9.6% ROI), esports within Other (+strong individual market returns), NHL (+3.3%), the sub-$0.10 longshot wing (+60.9% ROI), Wednesday scheduling, 09:00 UTC hour.

What drags: Soccer (-1.6% ROI, -$58K absolute), the 1.0-1.5x dominance bucket (54.4% WR, paired cost $1.054), the $0.60-$0.80 price band (-$57K), weekend schedule bias.

What replicators must NOT do: run both-sides positions in the 1-2x dominance bucket. The hedge cost exceeds the directional edge at that conviction level. See playbook for the stripped-down spec.

// 004 / Quantitative breakdown

Quantitative breakdown

Phase-by-phase statistical report. Methodology, distributions, per-bucket P/L.

Wallet: 0x84ad9c5c547a82ec9a08547b94bd922446e5bfb7 Window: 2026-04-11 → 2026-05-07 (27 active / 27 calendar days) Methodology: Cash-flow P/L = -buy_usdc + sell_usdc + remaining_share_payout. Resolved shares settle at $1 (win) / $0 (loss); open positions marked at last price.


Phase 1 - Trader Profile

Scale

MetricValue
Total trades892,903
BUY trades892,903
SELL trades0 (0.0% of all)
Unique markets10,243
Unique events4,521
Active calendar days27 of 27
Trades per active day33,070
BUY notional$14,883,371
SELL notional$0
Gross turnover$14,883,371

Trade-size distribution (USDC per fill)

MetricValue
median$5.80
mean$16.67
p95$57.26
p99$150.22
max$2,040.80
Top 5% share of capital38.8%

Inter-trade gap, same (market, outcome)

MetricValue
Median (s)16.0
Mean (s)108.2
P10 (s)0.0
P90 (s)148.0
% under 1s0.0%
% under 10s40.2%
% under 60s79.1%

Phase 2 & 3 - Both-Sides Participation, Dominance Curve

  • Both-sides rate: 79.11% (8,103 of 10,243 markets)
  • Median paired cost: $1.0256
  • Mean paired cost: $1.0329
  • Paired cost % under $1.00: 41.0%
  • Paired cost % under $0.97: 30.5%
  • Median 2nd-side hedge lag: 634s

Dominance buckets

BucketMarketsDom WRMean PairedAvg Mkt P/L
1.0–1.5x1,34854.5%$1.0540-
1.5–2.0x1,00758.0%$1.0543-
2.0–3.0x1,24361.1%$1.0395-
3.0x+4,50573.0%$1.0200-

Phase 4 - Entry-Price Analysis

BandBUY tradesResolvedWinsWRCapitalP/LROI
$0.00–$0.1024,24601,4936.2%$136.3K+$83,071+60.96%
$0.10–$0.2036,00005,22414.5%$336.8K-$36,232-10.76%
$0.20–$0.3081,582020,65125.3%$685.1K+$8,240+1.20%
$0.30–$0.40101,214036,24435.8%$1.00M+$7,224+0.72%
$0.40–$0.50106,410048,02745.1%$1.27M+$35,915+2.83%
$0.50–$0.60125,135068,46054.7%$2.50M+$43,735+1.75%
$0.60–$0.70135,916087,38364.3%$2.61M-$19,840-0.76%
$0.70–$0.80128,955095,09273.7%$2.58M-$37,404-1.45%
$0.80–$0.9097,489081,98184.1%$2.22M+$1,294+0.06%
$0.90–$1.0055,868052,49394.0%$1.53M+$10,984+0.72%

Phase 5 - Category & Vertical Breakdown

CategoryBUY tradesBUY $ResolvedWRP/LROI
Tennis292,796$4.34M292,76858.4%+$27,301+0.63%
Other135,252$3.80M135,19355.7%+$18,635+0.49%
Soccer366,499$3.75M366,49953.5%-$58,634-1.56%
MLB46,879$1.27M46,87957.4%-$9,267-0.73%
NBA24,777$1.06M24,77752.4%+$101,762+9.62%
NHL15,658$418.9K15,65852.7%+$13,695+3.27%
NFL11,042$248.2K11,04157.7%+$3,495+1.41%

Phase 6 - Timing & Execution

Net P/L by hour (UTC)

HourP/LWR
00:00+$11,38855.9%
01:00+$1,14953.7%
02:00+$57,18553.4%
03:00+$23,13754.7%
04:00+$11,99353.9%
05:00+$8,31054.6%
06:00-$4,77355.5%
07:00-$13,63452.6%
08:00-$1,85058.1%
09:00+$47,29660.3%
10:00-$16,65158.0%
11:00-$5,56257.4%
12:00-$20,41154.7%
13:00+$9,10454.5%
14:00-$46,35554.6%
15:00+$9,56354.8%
16:00-$69454.2%
17:00-$20,65955.3%
18:00+$23,82658.2%
19:00-$13,49954.9%
20:00+$1,35956.6%
21:00-$39256.6%
22:00+$3,52754.4%
23:00+$33,63156.3%

Phase 8 - Rolling Window Consistency

  • Rolling 7-day windows green: 19 of 27 (70.4%)
  • Rolling 7-day P/L range: -$81,058 → +$106,170
  • Rolling 15-day windows green: 26 of 27 (96.3%)
  • Rolling 15-day P/L range: -$10,463 → +$132,795

Weekly P/L

WeekSpanTradesWRP/LCumulative
W152026-04-11 → 2026-04-12111,31153.6%+$35,043+$35,043
W162026-04-13 → 2026-04-19135,18953.9%-$2,844+$32,199
W172026-04-20 → 2026-04-26223,52155.4%+$36,144+$68,343
W182026-04-27 → 2026-05-03258,26256.8%+$329+$68,672
W192026-05-04 → 2026-05-07164,53257.0%+$28,315+$96,986

Phase 9 - P/L Decomposition

MetricValue
BUY USDC out-$14,883,371
SELL USDC in+$0
Theoretical spread P/L-$288,341
Hedge-tax outflow$5.30M
Net realized P/L+$96,765
Net ROI on BUY notional+0.65%

Phase 10 - Top Markets by Volume

MarketTradesVolumeResolvedP/L
Pistons vs. Magic760$53.8K760-$2,256
Lakers vs. Rockets731$42.6K731-$7,127
Knicks vs. Hawks727$35.4K727-$12,435
Heat vs. Hornets580$28.0K580-$3,117
LoL: Shifters vs Movistar KOI (BO3) - LEC Regular Season740$27.1K740+$3,210
Cavaliers vs. Raptors398$25.7K398-$498
Trail Blazers vs. Suns696$24.8K696+$156
Nuggets vs. Timberwolves517$24.4K517+$1,862
Pistons vs. Magic587$24.1K587-$1,195
Nuggets vs. Timberwolves548$24.1K548+$2,386

Top 10 winners by P/L

MarketVolumeNet P/L
Trail Blazers vs. Spurs$21.2K+$71,421
LoL: Dplus KIA vs KT Rolster - Game 2 Winner$16.9K+$12,971
Will Portsmouth FC win on 2026-04-11?$2.6K+$12,454
LoL: KT Rolster vs HANJIN BRION (BO3) - LCK Rounds 1-2$9.9K+$10,197
Will Chengdu Rongcheng FC win on 2026-04-12?$3.0K+$10,054
Counter-Strike: Vitality vs FUT Esports - Map 2 Winner$3.9K+$10,031
LoL: LOUD vs Vivo Keyd Stars - Game 1 Winner$12.9K+$10,002
LoL: Fnatic vs SK Gaming - Game 2 Winner$6.2K+$9,433
LoL: Dplus KIA vs Gen.G - Game 2 Winner$6.9K+$8,500
LoL: KT Rolster vs HANJIN BRION - Game 1 Winner$15.0K+$8,484

Top 10 losers by P/L

MarketVolumeNet P/L
Knicks vs. Hawks$35.4K-$12,435
LoL: Weibo Gaming vs Anyone's Legend (BO3) - LPL Group Ascend$9.5K-$9,454
LoL: Weibo Gaming vs Anyone's Legend - Game 2 Winner$8.1K-$8,124
Madrid Open: Stefanos Tsitsipas vs Casper Ruud$19.6K-$7,424
Internazionali BNL d'Italia, Qualification: Rinky Hijikata vs Pierluigi Basile$14.6K-$7,143
Lakers vs. Rockets$42.6K-$7,127
LoL: Fnatic vs Natus Vincere (BO3) - LEC Regular Season$18.6K-$6,343
BMW Open: Joao Fonseca vs Ben Shelton$8.6K-$6,124
LoL: Invictus Gaming vs Anyone's Legend - Game 1 Winner$6.0K-$6,000
Internazionali BNL d'Italia, Qualification: Patrick Kypson vs Titouan Droguet$16.4K-$5,774

Report generated 2026-05-08 08:59 UTC.

// 005 / Filter strategy

Filter strategy

Which standard filters move the needle on this trader, and which destroy the edge.

Wallet: 0x84ad9c5c547a82ec9a08547b94bd922446e5bfb7 Window: 2026-04-11 → 2026-05-07 (27 days) Baseline: 892,815 resolved BUYs · 55.67% WR · $14.87M deployed · +$96,986 P/L · +0.65% ROI

Methodology: Each filter is applied to the resolved-BUY set. The baseline includes both dominant and non-dominant legs of all paired positions. The high-conviction filter is the analytically critical one for this wallet - it is not merely an incremental refinement but a structural revelation about where the alpha actually lives.

The headline result

One filter produces transformative lift. Most others are destructive or negligible. The high-conviction dominant-side filter increases realized P/L from +$97K to +$1.258M - a 13x improvement - by removing the hedge legs and low-conviction pairings that drag the book. Every other filter produces modest at best, often harmful, results.

The price-band filter does minor good (+0.24% ROI improvement) but cuts 46% of absolute P/L. The category filter on NBA surfaces the strongest per-dollar performance but captures only 2.8% of trades. The hour filter is outright destructive. The stacked combined filter produces a reasonable ROI% on a negligible absolute base.

CRITICAL INSIGHTThe high-conviction filter (dom 2x+, dominant leg only) transforms the book from +0.65% ROI to +18.33% ROI on the qualifying subset. This is the single most important analytical finding about this wallet: the bot is subsidizing its losing book segments with winning directional calls. Strip the losers and the returns are exceptional.

Filter results table

Filter Trades WR Capital P/L ROI Delta vs baseline
Unfiltered baseline 892,815 55.67% $14.87M +$96,986 +0.65% -
Price $0.30-$0.70 482,436 51.77% $7.64M +$68,184 +0.89% +0.24% ROI, -$28,802 abs
High-conviction dom 2x+ (dominant leg only) 376,315 75.74% $6.87M +$1,258,243 +18.33% +$1,161,257
Top category: NBA only 24,777 52.39% $1.06M +$101,762 +9.62% +$4,776 abs, +8.97% ROI
Exclude worst 4 hours (01, 02, 04, 07 UTC) 814,718 55.88% $13.35M +$40,294 +0.30% -$56,692 abs
Combined (high-conv + NBA + 0.30-0.70) 8,603 52.90% $346K +$20,585 +5.95% +$20,585 abs, much smaller book

Filter-by-filter commentary

1. Price band filter ($0.30-$0.70) → MARGINAL, USE WITH CAUTION

Applying the standard sweet-spot price filter reduces the book from 892K to 482K trades and shifts ROI from +0.65% to +0.89% - a real but modest improvement of 24 basis points. Absolute P/L drops from +$97K to +$68K, a loss of $29K in net dollars.

The mechanism: the filter removes the extreme ends of the distribution. The sub-$0.10 band (+60.96% ROI, +$83K) is stripped out because those fills are below $0.30, representing a major loss of a high-ROI segment. The $0.70-$0.90 band (-0.76% to +0.06% ROI) is also stripped, removing a modest drain. The net effect is marginally positive in percentage terms but negative in absolute dollars because the sub-$0.10 longshot wing is so ROI-dense.

Verdict: Do not apply this filter if replicating for absolute dollar returns. Apply it only if capital is limited and you need to concentrate on the most ROI-efficient tier of the $0.40-$0.60 price zone.

2. High-conviction filter (dom 2x+, dominant leg only) → TRANSFORMATIVE LIFT

This is the most important filter verdict in the entire report. Keeping only the dominant side of markets where the bot's allocation ratio is 2x or higher - and discarding all hedge/non-dominant legs - produces 376,315 trades, $6.87M capital, +$1.258M P/L, +18.33% ROI.

Compare to the unfiltered baseline: +$97K on $14.87M (+0.65%). The high-conviction dominant-leg subset alone produces 13x more absolute profit on 46% of the capital, for an ROI that is 28x higher.

The math is compelling:

High-conviction dominant legs (2x+):   +$1,258,243 P/L  on $6.87M  (+18.33%)
Everything else in the book:           -$1,161,257 P/L  on $8.00M  (-14.52%)
Total book:                            +$96,986 P/L     on $14.87M (+0.65%)

The "everything else" - hedge legs, non-dominant legs, and low-conviction paired positions - destroys $1.16M of value that the directional winners barely offset. This is the structural cost of the current both-sides architecture.

Practical implication for replication: A bot that only trades the dominant side in 2x+ conviction markets, ignoring all hedging, would generate 13x the current P/L on less capital. The hedge discipline adds robustness and reduces variance but costs a massive amount in expected value.

3. Category filter (NBA only) → MEANINGFUL_LIFT in ROI, SMALL absolute book

Isolating NBA trades yields 24,777 trades, $1.06M deployed, +$101,762 P/L, +9.62% ROI. This is the single best-performing category by ROI margin and narrowly beats the book's total net P/L in absolute terms on only 7.1% of capital.

The NBA filter captures the sharpest directional signal in the book. The model's win rate on NBA dominant positions is meaningfully higher than on Soccer or Tennis. The trade-off is that the NBA schedule is narrow - roughly 82 regular-season games plus playoffs, limiting daily coverage to 0-6 games depending on the schedule. The per-market P/L is high (best-market table shows NBA entries consistently in the -$2K to +$2K range per 500-750 trade market) but the total capacity is capped.

Esports within "Other" shows similar characteristics (high per-market ROI on individual events) but is less cleanly parseable from the category breakdown.

Verdict: Over-weight NBA and esports relative to Soccer. The Soccer allocation is the single biggest drag on total P/L.

4. Soccer exclusion → MEANINGFUL_LIFT

While not listed as a named filter in the output, Soccer exclusion is implied by the category analysis. Soccer has -$58,634 P/L on $3.75M deployed (-1.56% ROI). Removing Soccer from the book while keeping everything else would increase total P/L by $58,634, from +$97K to +$155K, and increase overall ROI from 0.65% to 1.39% on the remaining $11.1M.

The bot deploys enormous Soccer volume (366K trades, 41% of total trade count) for negative returns. The directional model is weakest in Soccer, likely because soccer outcomes are inherently higher-variance (low-scoring, draws possible, strong upset frequency) than basketball or tennis.

Verdict: If you can replicate the model's architecture without Soccer coverage, do so. If you must trade Soccer, concentrate it in the 3x+ conviction tier only and monitor weekly.

5. Hour exclusion filter → DESTRUCTIVE - DO NOT APPLY

The "worst 4 hours" filter (hours 01, 02, 04, 07 UTC identified as having lowest win rates at 53.4-52.6%) removes $1.52M of capital and drops absolute P/L by $56K, from +$97K to +$40K. This is counterintuitive: the hours with the lowest win rates include hours 02:00 (+$57,185 P/L) and 03:00 (+$23,137 P/L).

The explanation: win rate is an imperfect proxy for P/L in a both-sides book. Overnight hours have low win rates because the bot is placing mostly hedge legs (cheap non-dominant sides) during low-event periods. But some of these hedge positions pay very large sums when they win (longshot $0.05 positions paying $1.00 each when the upset lands). Hour 02:00 UTC is the second-most profitable hour in the book despite having the second-lowest win rate.

Verdict: Do not filter by hour on this wallet. The win rate vs P/L relationship is non-monotonic due to the asymmetric payoff structure of longshot hedge positions.

6. Stacked combined filter → HIGH ROI%, TINY CAPACITY

The precomputed combined filter (high-conviction + top category + $0.30-$0.70) yields 8,603 trades, $346K capital, +$20,585 P/L, +5.95% ROI. The ROI% is attractive (5.95% vs 0.65% baseline) but the absolute capital deployed drops by 98%, from $14.87M to $346K. This is essentially the intersection of NBA + high-conviction + coin-flip prices, which is a tiny subset of the total book.

The stacked filter demonstrates diminishing marginal intersection but confirms the direction: tighter, higher-conviction, NBA-focused filters improve ROI%. The trade-off is capacity.


What filters WOULD add value if they were measurable

The standard filter battery misses the most actionable dimension of this trader. The genuine improvement filters would require data beyond the trade CSV:

Hypothetical filter Expected effect Required data
Soccer exclusion +$58K P/L, +0.74% overall ROI Category labels (computable from slugs)
Dominance 3x+, dominant leg only Larger lift than 2x+ (73% WR vs 61% at 2x) Dominance computation per market
Esports-only within Other Concentrate the strongest Other performers Slug parsing for esports pattern
Post-line-open entry (5+ min after market launch) Avoid the high-noise opening spread Market creation timestamps
Skip Monday-Saturday weeknight Soccer Most Soccer losses concentrated here Category + DOW composite

Bottom line

Three concrete recommendations for a replicator:

  1. Apply the high-conviction dominant-side filter ruthlessly. Only execute the larger side when your allocation ratio is 2x or higher. The sub-2x positions contribute negative absolute value after accounting for hedge costs.

  2. Remove Soccer from the universe, or at minimum restrict Soccer to 3x+ conviction only. The Soccer allocation is the single largest drag, responsible for -$58K P/L on 25% of total capital.

  3. Do not filter by hour. The win rate by hour is misleading because overnight hours contain high-value longshot positions. Filter by conviction ratio, not by clock.

The single most useful action for this strategy is not adding a filter - it is removing the structural incentive to hedge low-conviction positions. See the playbook for the implementation spec.

// 006 / Replication playbook

Replication playbook

Where the edge is portable, and where it isn't.

Source wallet: 0x84ad9c5c547a82ec9a08547b94bd922446e5bfb7 Strategy: Both-sides directional overlay - paired positions with asymmetric tilts driven by a sports model Reference book: $14.87M BUY notional → +$96,765 net P/L → +0.65% ROI in 27 days Stripped high-conviction version: $6.87M → +$1.258M → +18.33% ROI (dominant side only, 2x+ conviction)


One-paragraph operator brief

Build a Polymarket bot that maintains a calibrated directional model for sports and esports outcomes (basketball, hockey, tennis, esports at minimum). For each live event, compute your fair-value probability for each outcome and compare against the CLOB mid-prices. When your model's dominant-side edge implies an allocation ratio of 2x or greater relative to the hedge side, execute the dominant-side position at market. Optionally execute the hedge side as well (for variance reduction), but only size it at a ratio proportional to your confidence. Cap Soccer exposure. Over-weight NBA, NHL, and esports. Run 24/7 but expect better model performance during European morning (08:00-11:00 UTC) and mid-week. Expect +18% monthly ROI on capital deployed in the high-conviction dominant tier; expect the hedge tax to erode returns if you systematically over-hedge.


1. Market selection

Rule Value
Asset class Polymarket prediction markets
Categories NBA, NHL, Tennis, Esports (LoL, CS2, Valorant), NFL, MLB
EXCLUDE Soccer (moneyline) at less than 3x conviction
Market types Match winner, game winner (BO3/BO5), set winner, spread, total
Esports coverage LCK, LEC, LPL, NA Challengers, VCT Americas, ESL Pro League
Exclusion pattern Markets with fewer than $500 total CLOB depth on either side

Category priority order (by ROI performance):

  1. NBA: +9.62% ROI - highest priority, size aggressively when high-conviction
  2. Esports (LoL/CS/Valorant): strong individual market returns, prioritize BO3/BO5 formats
  3. NHL: +3.27% ROI - solid, proceed
  4. NFL/MLB: +1.41% / -0.73% - moderate, use 3x+ conviction threshold strictly
  5. Tennis: +0.63% - deploy but monitor; volume is large so even thin edge compounds
  6. Soccer: -1.56% - skip moneylines unless 3x+ conviction, restrict to major leagues

Multi-market coverage per event: The reference wallet covers multiple markets per event (moneyline, spread, totals). This is recommended for capital efficiency - the model signal applies across all derivative markets of the same underlying event. Build slug parsing to identify event clusters (e.g., all markets sharing nba-cle-det-2026-05-07 as event slug).


2. Entry logic

The entry signal is your model's output versus the CLOB price. The key threshold is the dominance ratio that the reference wallet exhibits when it wins at high rates.

def should_enter(market, outcome, model_prob, clob_mid):
    # Category gate
    if market.category == "Soccer" and model_prob < 0.65:
        return None  # avoid Soccer below strong conviction

    # Compute edge
    edge = model_prob - clob_mid

    # Minimum edge threshold
    if abs(edge) < 0.04:
        return None  # less than 4% edge is noise

    # Dominance gate: only enter if your allocation to this side 
    # vs the hedge side is 2x or higher
    hedge_prob = 1.0 - model_prob
    implied_dom_ratio = model_prob / hedge_prob
    if implied_dom_ratio < 2.0:
        return None  # low-conviction zone, reference book shows <58% WR here

    direction = "dominant" if edge > 0 else None
    return direction
Parameter Value Rationale
Minimum model-vs-CLOB gap 4 cents (4%) Below this the edge is indistinguishable from noise
Minimum implied dom ratio 2.0x Reference book shows WR acceleration above 2x, peak at 3x+
Preferred dom ratio 3.0x+ 73.0% dominant WR in this tier vs 61.1% at 2-3x
Entry side Dominant only (recommended) Hedge leg destroys ~$1.16M in the reference book
Hedge leg (optional) Enter if dom ratio >= 2x and you want variance reduction Size hedge at 0.25-0.35 of dominant notional

Do NOT enter the following: - Sub-$0.10 speculative buys on unknown underdogs without a model backing - Both-sides positions where your dominance ratio is below 2x - Soccer markets where your model confidence is below 60% - Any market in the final 60 seconds before resolution (noise trading zone)


3. Exit logic

The reference wallet holds all positions to resolution - zero SELLs across 892,903 trades and $14.87M deployed. This is the intended exit mechanism: position resolves at $1.00 (win) or $0.00 (loss).

There is no SELL engine to replicate. Positions are held from entry through settlement. The only "exit" decision is whether to add to a position if the price moves favorably after entry (partial averaging). The reference CSV shows the bot adding to positions over a 10-minute accumulation window when prices shift (e.g., multiple Pistons fills at $0.71, $0.72, $0.74, $0.77 at different timestamps).

def manage_position(position):
    # Hold to settlement - no active exit
    # Optional: add to position if price improves
    current_mid = get_clob_mid(position.market, position.outcome)
    if current_mid < position.avg_entry_price * 0.95:
        # Price improved 5% since entry - add at better price
        add_clip = min(remaining_budget, base_clip * 0.5)
        enter(position.market, position.outcome, add_clip)
    # Otherwise: do nothing, let it settle

Settlement timing: Markets resolve at event completion. Basketball games typically resolve within 3-4 hours of tip-off; Tennis matches within 2-4 hours; Esports BO3 matches within 3-5 hours. Capital cycles within half a day for most market types.


4. Sizing model

The reference wallet uses variable clip sizing correlated with conviction. The sizing profile:

Conviction tier Dom ratio Recommended clip Max per market
High conviction 3x+ $15-$100 $500
Moderate conviction 2-3x $8-$40 $200
Do not trade Below 2x - -

Bankroll scaling:

Bankroll Baseline clip (high-conv) Max per market Expected daily deployment
$5,000 $5-$25 $150 ~$800
$15,000 $15-$75 $400 ~$2,500
$50,000 $50-$250 $1,500 ~$8,500
$150,000 $150-$750 $5,000 ~$25,000

The reference wallet deploys an average of $551K/day across all markets but this includes many low-conviction and hedge positions. The pure high-conviction dominant tier deploys approximately $6.87M over 27 days, or ~$255K/day. Scale your bankroll expectations accordingly.

No Martingale, no doubling after losses. The reference wallet shows no evidence of loss-chasing scaling. When a high-conviction position loses, the next position is sized identically by model output, not by the outcome of the prior bet.


5. Both-sides allocation

The reference wallet hedges 79.1% of its markets. Based on the filter analysis, systematic hedging at low conviction ratios destroys $1.16M of value. The recommended approach for a replicator:

Simplified: Dominant side only (recommended for replicators) - Enter only the dominant side (2x+ conviction) - Never enter the non-dominant side as a hedge - Expected ROI: ~+18% on deployed capital (based on filter result) - Variance: higher per-market, but 73% WR at 3x+ is sufficient

Advanced: Paired with selective hedging (replicating the reference structure) - Enter dominant side at full clip when dom ratio >= 3x - Enter hedge side at 20-30% of dominant notional when dom ratio is 3-5x - Enter hedge side at 10-15% of dominant notional when dom ratio is 5x+ - Skip hedge entirely when dom ratio is below 3x (reference wallet's 2-3x tier loses money overall)

Scenario Dom side % of paired notional Hedge side %
Dom ratio 2-3x 70-75% 25-30%
Dom ratio 3-5x 80-85% 15-20%
Dom ratio 5x+ 90-95% 5-10%

The second-side lag in the reference book is a median of 634 seconds (10.6 minutes). If you do hedge, execute the hedge leg within 10-15 minutes of the dominant entry to match the reference's timing discipline.


6. Sports model requirements

The edge in this strategy is 100% model-driven. Without a calibrated sports model, you cannot generate the 3x+ conviction signals that produce the 73% win rate. The model minimum viable requirements:

For NBA: - Team strength ratings (Elo or similar) - Home/away adjustment - Rest days, back-to-back game flag - Injury reports (starter availability) - Recent form (last 5-10 games)

For Tennis: - Surface-adjusted Elo ratings (hard / clay / grass separate) - Head-to-head record - Recent match outcomes (last 4-8 weeks) - Tournament round (fatigue in later rounds)

For Esports (LoL/CS2): - Team rating within region (LCK, LEC, LPL, etc.) - Match format (BO3 vs BO5 - higher-rated teams cover BO3 at higher rates) - Tournament stage (group vs bracket) - Recent match history (last 3-5 matches) - Roster stability flag

For Soccer: - Use extreme caution. The reference book loses -$58,634 in Soccer. A basic Elo model is insufficient. If including Soccer, you need: expected goals data, recent xG performance, possession stats, and squad rotation likelihood. Only trade 3x+ conviction Soccer.

Model output: A probability estimate for each outcome. Comparing this against the Polymarket CLOB mid-price gives you the edge. The bet size scales with the edge magnitude.


7. Hour scheduling and operational requirements

Hours (UTC) Recommendation Rationale
08:00-11:00 UTC Maximum deployment European sports prime time, model edge highest (60.3% WR at 09:00)
12:00-19:00 UTC Full deployment US + European overlap, highest volume
23:00-03:00 UTC Selective deployment Overnight esports (LCK runs 10:00-14:00 KST = 01:00-05:00 UTC), some Soccer
04:00-07:00 UTC Minimal deployment Low event frequency, model edge weaker

DO NOT apply a hard off-window. The reference wallet trades all 24 hours and several overnight hours produce outsized P/L (hour 02:00 UTC = +$57K, hour 23:00 = +$33K). The overnight hours that appear weak by win rate are profitable by absolute P/L.

Infrastructure requirements:

Requirement Specification
CLOB connection Persistent WebSocket to Polymarket CLOB. REST polling will miss rapid fills.
Sports data feed Real-time odds feed (Pinnacle, Betfair) or score APIs for live model updates
Execution speed Sub-2 second end-to-end (model update → order submit). Not a latency play but needs reliability.
Wallet Single EOA, USDC on Polygon. Multiple wallets beneficial for capacity above ~$50K.
Concurrency Multi-threaded event handler: 380+ markets per day, several simultaneous live events
Nonce management Fan-out capability: reference shows 6-12 fills per second per market at entry
Monitoring Log (market, outcome, model_prob, clob_mid, edge, dom_ratio, fill_price, fill_size) per trade. Weekly dominance ratio audit.

8. Risk profile and sizing guardrails

Risk Severity Mitigation
Soccer model failure High Hard limit Soccer to 20% of daily capital or exclude entirely
Low-conviction position bleed High Never enter sub-2x dominance positions
Hedge leg over-sizing High Cap hedge at 30% of dominant notional maximum
Adverse 7-day window Medium -$81K drawdown observed in reference book. Set a 7-day -5% NAV stop
Esports lineup changes Medium Fetch roster confirms from team social / tournament API before entry
Model stale on breaking news Medium Kill switch on injury news / DNP notifications; skip that market
CLOB liquidity thin Low-Medium Skip markets with <$300 depth on either side
Single-market concentration Low Cap any single event at 3% of daily capital deployment

Hard position limits:

Max per single market:        $1,500 (at $50K bankroll)
Max per single event cluster: $3,000 (across all derivative markets)
Max Soccer exposure:          20% of daily deployment budget
Daily drawdown stop:          -3% of NAV
Rolling 7-day drawdown stop:  -8% of NAV → pause and audit model

9. Diagnostic checklist - "is the bot still working?"

Run weekly:

Check Healthy range Action if outside
Dominant win rate (3x+ markets) 68-78% If <65% for 2 weeks: model is degrading, pause and retrain
Dominant win rate (2-3x markets) 56-66% If <52% sustained: drop this tier entirely
Soccer P/L (rolling 7-day) -1% to +3% ROI If <-2% for 2 consecutive weeks: suspend Soccer
Mean paired cost (if hedging) $0.97-$1.05 If >$1.06: hedge entry logic is overpaying, review hedge sizing
NBA P/L contribution Positive If negative for >10 days: model error on NBA, investigate
Esports P/L contribution Positive If negative for >14 days: check lineup data quality
Daily markets touched 250-500 If <150: model is too restrictive, loosen edge threshold to 3%
% trades at 3x+ dom ratio 40-65% If <30%: model is losing conviction, check calibration
15-day rolling P/L Positive Only one negative in reference data; if second appears, full audit

10. What this playbook deliberately does NOT include

  • No hedge-first architecture. The reference book's spread mechanic loses $288K. Building a system that tries to capture spread income is the wrong frame; the alpha is directional.

  • No fixed paired-cost target. Chasing a paired cost below $1.00 (the classic MM pitch) would require buying very thin books at unfavorable prices on the non-dominant side. The reference wallet already shows what happens at $1.033 mean paired cost: the spread leg destroys value. Don't try to fix this by tightening the paired cost; fix it by not pairing at low conviction.

  • No hour-based scheduling constraints. The filter analysis shows hour exclusions are destructive. Run 24/7 with uniform entry logic; the market schedule determines natural volume fluctuation.

  • No Soccer-heavy deployment. Soccer is 41% of the reference wallet's trade count and the only major negative-ROI category at -1.56%. A replicator does not need to match the reference wallet's Soccer volume. Concentrating on NBA, Tennis, NHL, and Esports with strict Soccer gates will outperform the reference on a per-dollar basis.

  • No longshot speculation without model backing. The sub-$0.10 band has +61% ROI in the reference book but those positions are organic outputs of the paired-position structure (cheap hedge sides). Buying sub-$0.10 positions speculatively without the model foundation will lose money.

  • No copy-trading of this wallet's specific picks. Sports markets close after each event. By the time another wallet's fill appears in the on-chain data, the match has likely progressed or resolved. This strategy cannot be copy-traded; it requires an independent model.

The core discipline: high conviction, dominant side, American sports and esports as primary verticals. The reference wallet's broad Soccer coverage is a legacy of the model's application to all available markets, not a deliberate alpha source. Run narrower, run sharper, collect the directional wins.


TL;DR - implementable in ~200 lines of Python

# Pseudocode - model is your own implementation. 
# This shows the execution loop only.

async def run_bot():
    model = SportsModel()       # your calibrated prob model
    clob = PolymarketCLOB()

    while True:
        live_markets = await clob.get_active_markets()

        for market in live_markets:
            # Category gate
            if market.category == "Soccer" and not is_high_quality_soccer(market):
                continue

            # Get model estimate and CLOB mid
            for outcome in market.outcomes:
                model_prob = model.predict(market, outcome)
                clob_mid   = await clob.get_mid(market, outcome)
                edge       = model_prob - clob_mid

                if abs(edge) < 0.04:
                    continue

                # Dominance gate
                dom_ratio  = model_prob / (1.0 - model_prob)
                if dom_ratio < 2.0:
                    continue

                # Sizing
                clip = compute_clip(dom_ratio, available_capital())
                # dom_ratio 3x+: full clip; 2-3x: 60% clip
                if dom_ratio >= 3.0:
                    clip = clip * 1.0
                else:
                    clip = clip * 0.6

                clip = min(clip, MAX_PER_MARKET)

                # Execute dominant side
                await clob.buy(market, outcome, clip)

                # Optional hedge (skip if capital-constrained)
                if ENABLE_HEDGING and dom_ratio >= 3.0:
                    hedge_outcome = market.other_outcome(outcome)
                    hedge_clip    = clip * 0.20  # 20% of dominant notional
                    await clob.buy(market, hedge_outcome, hedge_clip)

        await asyncio.sleep(15)  # poll every 15 seconds

Deploy with $15K-$50K working capital. Expect +15-20% monthly ROI on capital deployed in the high-conviction tier. Monitor Soccer weekly. The model is the product; the execution is the plumbing.

// 001 / Analysis

The portfolio shape, and where the edge appears to come from.

Wallet activity across 27 days, every fill mapped, profile traced.

BillBenter2026 is a high-volume both-sides spread capture bot with a genuine directional overlay. The name is apt: the real Bill Benter built his fortune by layering a directional model on top of a structural edge, and this wallet does something structurally similar on Polymarket. It buys both sides of the same event on 79.1% of its active markets, locking in spread income whenever the paired VWAP clears below $1.00. On top of that foundation, it tilts heavily toward one outcome when its signal is confident, and that tilting is where the directional P/L lives.

The headline numbers are enormous in scale but modest in ROI: 892,903 trades across 10,243 markets, $14.9M deployed, +$96,765 net P/L, +0.65% ROI over 27 days. That sub-1% ROI on capital deployed sounds thin until you realize the capital turns over multiple times per day. This is a volume business. The P/L decomposition makes the architecture clear: the spread engine is structurally underwater (paired costs averaging $1.033 across the book, well above $1.00), which means the spread leg is not a reliable profit center. All the real money comes from the directional tilt when the dominance ratio is high.

KEY FINDINGMarkets where the bot tilts at 3x or higher dominance (4,505 markets) have a dominant-side win rate of 73.0% - that is the load-bearing edge. The 1.0-1.5x bucket barely clears 54%. The directional signal is real and it sharpens dramatically above 3x.

The portfolio shape

The universe is broad and sports-heavy: Soccer (366K trades, $3.75M), Tennis (293K trades, $4.34M), NBA (25K trades, $1.06M), Other (135K trades, $3.8M including esports), plus smaller MLB, NHL, and NFL slices. Tennis and Soccer together account for 73% of trade count and 54% of capital deployed. Both verticals include match-winner, set-winner, and game-level markets, giving the bot enormous granularity to construct paired positions and tilts. The NBA is a small share of trades but the single best-performing category at +9.6% ROI (+$101K on $1.06M). The esports component (League of Legends, Valorant, Counter-Strike) is embedded within "Other" and appears in the best-market list repeatedly, suggesting the directional model performs particularly well there.

The size profile is bounded but has meaningful concentration at the top: median fill is $5.80, P99 is $150, and the top 5% of trades by size carry 39% of total capital. The max single fill is $2,040. This is not a flat-clip strategy; the bot scales its clips when confident, and the very large fills (the $2,040 outlier, the $312+ clips visible in the CSV's earliest trades) represent the high-conviction end of its sizing curve.

Architecture in one sentence: A paired-position spread-capture bot that systematically over-weights the side it believes will win, generating P/L almost entirely from the directional tilt rather than the spread mechanic.

Where the edge appears to come from

The dominance analysis tells the story cleanly. At 1.0-1.5x dominance, the dominant side wins 54.4% of the time - barely above chance, consistent with pure spread capture with no signal. At 1.5-2.0x, it's 58.0%. At 2.0-3.0x, 61.1%. At 3.0x or higher, 73.0%. This is a calibrated conviction curve: the bot bets bigger exactly when it is right more often. Whatever model sits behind this - Elo-based, historical line movement, external odds feeds - it has real predictive power in the high-conviction range.

The median second-side lag is 634 seconds (about 10 minutes), meaning the bot typically enters the dominant side first and adds the hedge leg within roughly 10 minutes. This is deliberate pairing, not coincidental: the bot constructs the spread intentionally but sizes the two legs asymmetrically based on its directional confidence.

The hour and day patterns reinforce the "model-driven" interpretation. There is no sleep window - trading spans all 24 UTC hours with only modest variation. The best hours by win rate are 09:00 (60.3% WR), 10:00 (57.9%), and 08:00 (58.1%), which corresponds to European morning - the highest-liquidity window for Soccer and Tennis. The worst hours are 07:00 (52.6%) and 01:00-04:00 UTC (53-54%), when fewer high-quality sporting events are live and the signal has less to work with.

One market, trade by trade

Consider Cavaliers vs. Pistons (nba-cle-det-2026-05-07) from the tail of the CSV. Within roughly 11 minutes of each other, the bot buys Pistons at $0.71-0.77 (the dominant side, resolving correctly) and also buys Cavaliers at $0.24-0.29 (the hedge). The Pistons fills are systematically larger: multiple clips of 8-18 shares at $0.71-0.77, while the Cavaliers fills are 22-27 shares at $0.24-0.29. The paired cost across this event sequence is approximately 0.74 + 0.26 = $1.00 on matched share count - right at the break-even line. The dominance ratio skews above 3x because the Pistons notional dwarfs the Cavaliers hedge. Pistons resolves as the winner. The directional tilt pays; the hedge costs a small tax. This is the model in miniature, repeated thousands of times per day across Soccer, Tennis, NBA, and esports.

VOLUME CONTEXT892,903 trades in 27 days = 33,070 trades per day on average. That is not a human. This bot runs around the clock, fires multiple fills per second during peak hours (40% of consecutive fills are under 10 seconds apart), and covers 10,243 distinct markets - an average of 379 markets per day.

What you can copy

The directional overlay is the replicable component. The dominance ratio curve is a real signal: when the bot puts 3x or more on one side, the dominant side wins 73% of the time. A replicator can use this as a filter on its own entries, or build a simpler version: enter only the dominant side when conviction is high (3x+), skip the hedge entirely, and operate in the +9-18% ROI territory the high-conviction bucket generates. The NBA and esports verticals are the sharpest performers in absolute P/L terms and are worth over-weighting.

The $0.00-$0.10 entry band is the other portable insight. 24,246 trades at sub-$0.10 prices yielded +$83K P/L on $136K deployed - a 61% ROI. This is the longshot-tilt wing of the book: the bot buys tiny hedges and occasional speculative longshots at near-zero prices, and the few that hit pay 10x+. This is structurally similar to buying insurance that occasionally pays catastrophically well.

What you probably can't copy

The spread mechanic at scale. The bot's paired cost averages $1.033 across all markets - meaning it is, on net, paying for the privilege of having both sides covered. The spread leg is a loss center in aggregate, compensated by the directional wins. Trying to replicate only the spread component without the directional overlay would produce consistent losses. The pairing also requires simultaneous access to both sides of every market at reasonable prices, which implies either maker relationships or a fast enough taker that the hedge fills before the book moves against the position.

The raw throughput may also be challenging to replicate at the same scale. 33,000+ fills per day across 379 markets requires robust infrastructure: persistent WebSocket connections, a nonce manager capable of handling sub-second multi-fill bursts (the CSV shows 6-12 fills within the same second at window open), and enough liquid capital to hold many concurrent open positions without running dry.

// 002 / Figure

Cumulative P/L over the window.

The line is daily cumulative net P/L. Mouse along it for daily detail. The dashed grey trace, when present, is cumulative BUY notional deployed.

// 003 / Reverse-engineering report

Reverse-engineering report

Every fill mapped, the asymmetric profile traced, the math behind the edge.

Wallet: 0x84ad9c5c547a82ec9a08547b94bd922446e5bfb7 Window: 2026-04-11 → 2026-05-07 (27 calendar days, 27 active) Universe: 892,903 trades · 10,243 markets · 4,521 events · $14.88M gross turnover Net P/L: +$96,765 on $14.87M deployed = +0.65% ROI in 27 days

P/L methodology: Cash-flow accounting on resolved BUYs only. Per-trade P/L = shares (if win) minus USDC spent, or -USDC spent (if loss). SELL trades = 0 across this wallet. Spread P/L and hedge tax are decomposed separately in Phase 9.

The Punchline

This is not a pure market maker, and it is not a pure directional bettor. It is both, stacked. The bot buys both sides of the same event on 79.1% of its active markets, which superficially resembles market making. But the paired cost across the full book averages $1.033 - above the $1.00 break-even line - so the spread mechanic is losing money, not printing it. Every dollar of profit flows from the directional tilt: when the bot has conviction, it puts 3x or more on the dominant side, and that dominant side wins 73.0% of the time.

The dominance curve is the single most important finding. Win rates escalate monotonically with conviction: 54.4% at 1-1.5x, 58.0% at 1.5-2x, 61.1% at 2-3x, 73.0% at 3x+. The high-conviction bin alone contains 4,505 markets and generates the bulk of net positive P/L. This is a calibrated model expressing directional views through asymmetric allocation within paired positions. It is exactly what Bill Benter did in Hong Kong horse racing - a model-driven directional overlay on top of a structural participation mechanic.

The scale is extraordinary: 892,903 fills in 27 days, ~33,000 fills per day, active across all 24 UTC hours, spanning Soccer, Tennis, NBA, MLB, NHL, NFL, and esports. The low headline ROI (+0.65%) reflects the capital intensity of running 380+ markets per day. Absolute P/L of +$96,765 in 27 days on a book that turns over $14.9M is the real metric.


What He Trades

The universe is deliberately broad across sports categories, with Tennis and Soccer as the volume backbone:

Category Trades BUY Vol P/L ROI
Tennis 292,796 $4.34M +$27,301 +0.63%
Soccer 366,499 $3.75M -$58,634 -1.56%
NBA 24,777 $1.06M +$101,762 +9.62%
Other (esports/misc) 135,252 $3.80M +$18,635 +0.49%
MLB 46,879 $1.27M -$9,267 -0.73%
NHL 15,658 $0.42M +$13,695 +3.27%
NFL 11,042 $0.25M +$3,495 +1.41%

Soccer is the largest category by trade count and is the biggest absolute P/L drag (-$58,634). This is unusual and worth flagging: the bot deploys massive volume in Soccer but loses money. Tennis is flat (+0.63%). NBA is where the directional model is sharpest (+9.62%). The esports bucket inside "Other" produces outsized per-market P/L (the best-market list includes multiple LoL and Valorant entries yielding +$8,000-$12,000 each on only 130-370 trades).

The price band distribution is broadly spread, with no single $0.10 bucket dominant:

Band Trades Vol ($) P/L ROI
$0.00-$0.10 24,246 $136K +$83,071 +60.96%
$0.10-$0.20 36,000 $337K -$36,232 -10.76%
$0.20-$0.30 81,582 $685K +$8,240 +1.20%
$0.30-$0.40 101,214 $1.002M +$7,224 +0.72%
$0.40-$0.50 106,410 $1.270M +$35,915 +2.83%
$0.50-$0.60 125,135 $2.496M +$43,735 +1.75%
$0.60-$0.70 135,916 $2.612M -$19,840 -0.76%
$0.70-$0.80 128,955 $2.584M -$37,404 -1.45%
$0.80-$0.90 97,489 $2.219M +$1,294 +0.06%
$0.90-$1.00 55,868 $1.526M +$10,984 +0.72%

The sub-$0.10 band is a massive outlier: 2.7% of trades, 0.9% of capital, 60.96% ROI, contributing +$83K - more than the total net P/L of the book. This is almost certainly hedge/longshot fills that occasionally hit at 10x+. The $0.10-$0.20 band bleeds (-10.76%), which is common in paired-cost books when one-side prices in the 15-18 cent range settle against the position.

The most important price observation is the $0.60-$0.80 zone: the bot deploys $5.2M there (35% of total capital) but generates -$57K combined. This is where the heavy favorite side of paired positions lives, and the problem is that $1.00 of expected payout is being purchased for more than $1.00 of combined outlay whenever the pairs cost above the break-even line.


The Order of Operations - One Event, Position by Position

Cavaliers vs. Pistons, NBA, 2026-05-07 (event: nba-cle-det-2026-05-07). Pistons resolved as the winner.

The bot entered this event across three related markets: the moneyline (Cavaliers vs. Pistons), a spread market (Spread: Pistons -6.5), and the moneyline again with varying conviction over roughly 11 minutes.

Time (UTC) Market Outcome Price Shares USDC Note
23:57:13 Moneyline Pistons $0.77 8.0 $6.20 dominant leg opens
23:57:11 Moneyline Cavaliers $0.24 27.0 $6.63 hedge leg, smaller dollar
23:57:13 Spread Pistons -6.5 Pistons $0.50 191.0 $96.93 spread market, balanced pricing
23:57:04 Moneyline Pistons $0.74 9.0 $6.71 adds to dominant
23:49:21 Moneyline Pistons $0.72 9.0 $6.53 adds to dominant
23:49:21 Spread Pistons -6.5 Cavaliers $0.52 76.0 $40.09 hedge on spread market
23:49:22 Spread Pistons -6.5 Cavaliers $0.52 115.0 $60.16 continues hedge
23:49:01 Moneyline Cavaliers $0.26 25.0 $6.64 adds to hedge
23:48:49 Spread Pistons -6.5 Cavaliers $0.44 30.0 $13.20 adds to hedge at lower price
23:49:01 Spread Pistons -6.5 Cavaliers $0.47 18.87 $9.01 more hedge

Walk-through:

  1. The bot opens with moneyline Pistons at $0.77 - an 8-share position worth $6.20. This is the dominant leg: Pistons are the implied favorite at ~77 cents.

  2. Within the same second, it enters Cavaliers at $0.24, spending $6.63 for 27 shares. The combined outlay is $12.83 for a paired position where one side must pay $1.00. Paired cost: $0.77 + $0.24 = $1.01 - just above break-even. The Cavaliers spend is actually larger in dollar terms here despite being the non-dominant side, because the cheap longshot buys many more shares per dollar.

  3. Simultaneously it enters the spread market (Pistons -6.5) at $0.50/$0.50 near-even pricing, deploying $96.93 on Pistons cover and $109.26 on the Cavaliers side across several fills. The spread market is near-balanced, contributing close to $0 net edge.

  4. The bot adds to the dominant moneyline position over the next 8 minutes (fills at $0.72-0.74), maintaining its asymmetric tilt on Pistons winning.

  5. Pistons win. The dominant moneyline shares pay $1.00 each. The $6.63 Cavaliers hedge and $109 spread hedge both pay $0. Net: positive directional outcome; modest negative hedge tax.

The key structural observation: dominance ratio on this event's moneyline is approximately (Pistons USDC) / (Cavaliers USDC) = $19.44 / $20.00 = ~0.97x. That's near-parity on the moneyline! The bot's tilt shows up more clearly in the share count (44 Pistons shares vs 52 Cavaliers shares) and the price differential (paying $0.74-0.77 for Pistons vs $0.24-0.29 for Cavaliers). The Cavaliers position is the actual hedge; the Pistons is the real bet. This is standard both-sides construction where the cheaply-priced leg buys protection across more shares.


Why It Works - The Math

The strategy's core EV argument is that the directional model outperforms the market's implied probabilities in the high-conviction cases:

Dominance bucket analysis (3x+ markets):
  Markets:          4,505
  Dominant side WR:  73.0%
  Market-implied WR: ~62-68% (estimated from paired price distribution)

Edge per market (dom side):
  p_win_actual    = 0.730
  p_win_implied   = ~0.650 (typical mid-price in 3x+ dominant position)
  EV per $1 bet   = 0.730 * (1.00 / 0.650) - 1.00
                  = 0.730 * 1.538 - 1.00
                  = 1.123 - 1.00
                  = +$0.123 per dollar of dominant-side capital

Hedge tax per market (non-dominant side):
  Non-dominant wins 27% of the time, paying ~$3-4 per dollar at prices of $0.25-0.35
  Expected loss = 0.73 * (non-dom outlay) per market on average

Net EV: positive when directional edge exceeds hedge tax

The problem is the 1.0-1.5x bucket: 54.4% dom WR at near-50-cent prices is barely above break-even and the hedge tax nearly neutralizes the small directional edge. The P/L composition reflects this: the book's total spread P/L is -$288,341 (the spread mechanic is a net loss of $288K), which is partially offset by the directional wins. The entire +$96K net profit is generated by the 3x+ conviction tier. Everything below 3x is either marginally positive or negative.

This creates a clear strategic prescription: the bot should run narrower and higher-conviction rather than broad and paired. The current structure wastes capital on spread positions that erode value.


Phase 1 - Trader Profile

Scale and activity: - 892,903 BUYs, 0 SELLs, 27 active days (100% of calendar days) - $14,883,371 deployed across 10,243 unique markets - Average 33,070 trades/day; ~380 markets/day - 4,521 unique events, average 2.27 markets per event (confirming systematic multi-market coverage per event)

Trade size distribution:

Stat Value
Median $5.80
Mean $16.67
P95 $57.26
P99 $150.22
Max $2,040.80
Top 5% share of capital 38.75%

The distribution is semi-power-law: median is small ($5.80) but there is a long right tail. The max at $2,040 is 352x the median, and the P99 is 26x the median. The top 5% of fills hold 39% of capital. This is consistent with a variable-clip sizer that scales clips with conviction, rather than a flat-clip bot.

The Lorenz data confirms: the bottom 50% of trades by size carry only 7.5% of capital, while the top 10% carry 52%. The sizing inequality is real and meaningful.

Execution signature: - Median inter-fill gap: 16 seconds - 40.2% of fills under 10s apart; 79.1% under 60s - Mean gap: 108 seconds (much higher, driven by long inter-event gaps) - Pattern: bot-speed bursts within a market, then slower inter-market transitions

The opening of the CSV shows characteristic fan-out: at 2026-04-11 00:00:41 UTC, six fills in the same second across two different Pistons vs. Hornets outcomes (422 shares at $0.50, 40 shares at $0.50, 19 shares at $0.50, 18 shares at $0.50, two more). Same-second multi-fill fan-out is a bot signature.

Active hours: Trading occurs all 24 UTC hours with no hard gap. Peak volume 14:00-20:00 UTC; secondary peak 11:00-14:00 UTC. The 03:00-07:00 UTC trough (13K-17K trades/hour vs 55K-68K at peak) is not zero - the bot is running overnight, just at reduced intensity when fewer live events are available.

Archetype: BOTH-SIDES MM + DIRECTIONAL OVERLAY - 79.1% both-sides rate with a strong conviction curve. Not a pure MM (paired cost is underwater) and not a pure directional (hedge legs are always present). A hybrid that extracts value primarily from directional accuracy.


Phase 2 - Core Strategy Identification

Both-sides participation rate: 79.1% (8,103 of 10,243 markets)

This is a both-sides book. For 8 out of every 10 markets the bot touches, it buys both YES and NO (or both team outcomes). This is the defining structural characteristic.

However, the paired cost tells us the MM mechanism is not the profit source: - Median paired cost: $1.026 - Mean paired cost: $1.033 - % of paired markets with cost below $1.00: 41.0% - % with cost below $0.97: 30.5%

At mean paired cost of $1.033, every matched-share pair costs $0.033 more than it pays out on average. The spread engine is a net negative. This collapses the pure-MM hypothesis.

What IS the profit source: The dominance ratio analysis (Phase 3). When the bot tilts 3x+, it wins 73% on the dominant side. The P/L is directional.

Archetype classification: - NOT pure Market Making (paired cost underwater, spread P/L = -$288K) - NOT pure Directional (79.1% of markets have a hedge leg) - IS a directional model expressed through asymmetric pairing: the "hedge" leg is insurance that costs ~3.3 cents per dollar of matched notional, while the "dominant" leg captures the directional edge when the model is correct

The strategy is closest to what quantitative sports modelers call a "rounded book" approach: you have a price for every outcome, you always take positions on all sides, but you size them proportional to your edge, making the dominant-side positions larger whenever your model's edge is highest.


Phase 3 - Dominance Ratio Analysis

This is the most important phase for this wallet.

Bucket Markets Dom Side WR Mean Paired Cost Interpretation
1.0-1.5x 1,348 54.4% $1.054 No signal, spread cost erodes returns
1.5-2.0x 1,007 58.0% $1.054 Marginal signal, below hedge-cost recovery
2.0-3.0x 1,243 61.1% $1.040 Real signal, approaching profitability
3.0x+ 4,505 73.0% $1.020 Strong signal, this is where the money is

Four observations from this table:

  1. The win rate jump from 2-3x to 3x+ is the largest discrete step in the conviction curve - from 61.1% to 73.0%. The model's edge is not linear; it accelerates at the top.

  2. Paired cost declines as conviction rises - from $1.054 in the 1-1.5x bucket to $1.020 in the 3x+ bucket. When the model is confident, the bot buys the dominant side at a better relative price (because the "cheap" hedge is at a lower price, reducing the blended cost). This is a favorable structure.

  3. The 3x+ bucket contains 4,505 markets - 55% of all both-sides markets - meaning most of the book is in the high-conviction zone. The model fires at high confidence more often than not.

  4. The 1.0-1.5x bucket (1,348 markets, 54.4% WR, $1.054 paired cost) is the value-destroying segment. These are markets where the bot has nearly no edge and is paying over-round for the privilege of covering both sides. Eliminating this segment would likely improve total P/L.

The practical implication for replication: only enter when dominance is 3x or higher on the dominant side. The 1-2x zone is noise.


Phase 4 - Entry Price Analysis

The per-band breakdown (Phase 1 table above) reveals three regimes:

Regime 1: Sub-$0.10 (longshot/hedge fills) - 60.96% ROI on $136K. These are the extreme-underdog legs of paired positions: when the model puts all the weight on the favorite side and buys the opponent at $0.03-$0.09 as pure insurance. The few that win pay 10-30x. The ROI is spectacular but the capital is tiny.

Regime 2: $0.40-$0.60 (coin-flip zone) - +1.75-2.83% ROI, the spread-capture sweet spot. The bot deploys heavily here ($1.27M + $2.50M = $3.77M in the two buckets). These are the "balanced" sides of paired positions where the spread mechanic comes closest to break-even.

Regime 3: $0.60-$0.80 (heavy-favorite zone) - Both bands are negative ROI (-0.76% and -1.45%). The bot deploys $5.2M at $0.60-$0.80 and loses $57K. This is the dominant-side leg of paired positions where the model's directional call is expressed, but in markets where the paired cost exceeds $1.00 by enough to overwhelm the directional win rate.

Sub-bucket inspection: The price distribution across the full 100-cent range shows no single dominant tick. This is unlike a pure latency-arb bot (which concentrates at specific ticks) or a penny-floor bot. The entry price is wherever the orderbook offers value when the model fires.

The $0.10-$0.20 bucket (-10.76% ROI) is notable: 36,000 trades, -$36K P/L. These are probably the short-odds hedge legs of high-conviction dominant positions - the bot pays $0.15 for the underdog side when it has 6:1 conviction on the other side. The underdog rarely wins, and the ROI is a consistent drain.


Phase 5 - Category and Vertical Breakdown

Category Trades Vol P/L ROI Badge
NBA 24,777 $1.06M +$101,762 +9.62% ELITE
NHL 15,658 $0.42M +$13,695 +3.27% STRONG
NFL 11,042 $0.25M +$3,495 +1.41% MODEST
Tennis 292,796 $4.34M +$27,301 +0.63% MODEST
Other 135,252 $3.80M +$18,635 +0.49% MODEST
MLB 46,879 $1.27M -$9,267 -0.73% UNPROFITABLE
Soccer 366,499 $3.75M -$58,634 -1.56% DESTRUCTIVE

Soccer is the single largest source of losses (-$58,634) despite being the second-largest category by volume. The bot's model performs poorly on Soccer relative to tennis and American sports. This may reflect the difficulty of modeling soccer outcomes (low-scoring, high variance) versus more deterministic markets (basketball final scores).

The esports component within "Other" is a highlight: multiple LoL markets appear in the best-performing list with +$8,000-$12,000 per market. The LoL: Dplus KIA vs KT Rolster, LoL: KT Rolster vs HANJIN BRION, and LoL: LOUD vs Vivo Keyd Stars markets all yielded substantial positive P/L on moderate trade counts. The model appears to have real edge in structured esports competitions.

Top performing individual markets: - Trail Blazers vs. Spurs: +$71,421 on $21K volume - anomaly, likely a massive underprice that resolved favorably - LoL: Dplus KIA vs KT Rolster (G2): +$12,971 - Will Portsmouth FC win: +$12,454 on $2.6K (extremely high ROI on a tiny Soccer bet) - LoL: KT Rolster vs HANJIN BRION (BO3): +$10,197

Worst markets: - Knicks vs. Hawks: -$12,435 on $35K volume - LoL: Weibo Gaming vs Anyone's Legend (BO3 + G2): -$9,454 + -$8,124 (both 0 wins - model was completely wrong on this matchup) - Madrid Open: Tsitsipas vs Ruud: -$7,424 - Lakers vs. Rockets: -$7,127


Phase 6 - Timing and Execution

Hourly P/L pattern (UTC):

Hour Trades WR P/L
02:00 21,489 53.4% +$57,185
23:00 28,485 56.3% +$33,631
09:00 32,042 60.3% +$47,296
03:00 14,906 54.7% +$23,137
14:00 57,318 54.6% -$46,355
17:00 58,734 55.3% -$20,659
12:00 51,473 54.7% -$20,411
19:00 68,266 54.9% -$13,499

The hourly pattern is counterintuitive: the highest-volume hours (14:00-19:00 UTC) are the worst-performing, while several low-volume overnight hours produce the best P/L. This suggests the model's edge is highest in low-competition, off-peak windows where fewer efficient actors are participating. The 09:00 UTC hour (+$47K, 60.3% WR) is the exception - European morning, high-quality Tennis and Soccer events, where the model has strong signal.

Day-of-week:

Day Trades WR P/L ROI
Mon 88,041 57.1% +$27,659 +1.90%
Tue 114,736 57.1% -$21,118 -1.09%
Wed 111,937 57.2% +$69,703 +3.83%
Thu 92,389 56.7% +$33,182 +1.95%
Fri 71,967 56.1% -$11,905 -0.81%
Sat 215,675 54.0% -$20,962 -0.57%
Sun 198,158 54.6% +$20,204 +0.72%

Saturday has 2.4x the weekday average trade count (primarily Tennis and Soccer weekend schedules) but loses money. The model's edge on weekend sports is lower than on weekday events. Wednesday is the best day (+$69,703) with the highest win rate (57.2%) - mid-week NBA, Tennis, and soccer with strong model performance.

Second-side lag: Median 634 seconds (10.6 minutes) between entering first and second side in a paired market. This is consistent deliberate pairing, not coincidental. The bot has a defined time window for hedging after the dominant-leg entry.


Phase 7 - Filter Experiments

Filter Markets WR Capital P/L ROI Delta
Unfiltered 892,815 55.67% $14.87M +$96,986 +0.65% baseline
Price $0.30-$0.70 482,436 51.77% $7.64M +$68,184 +0.89% +0.24% lift, -$28,802 abs
High-conv dom 2x+ 376,315 75.74% $6.87M +$1,258,243 +18.33% +$1,161,257
Top category: NBA 24,777 52.4% $1.06M +$101,762 +9.62% captures $105K on 7% of capital
Exclude worst hours 814,718 55.9% $13.35M +$40,294 +0.30% -$56,692 absolute
Combined stack 8,603 52.9% $346K +$20,585 +5.95% +$20.6K on tiny book

The high-conviction filter is the most transformative finding in this entire analysis. Keeping only the dominant side of markets where dominance ratio is 2x or higher - 376,315 trades, 42% of the book by count but 46% by capital - yields +$1.258M P/L at +18.33% ROI. That is roughly 13x the actual net P/L on 46% of the capital. The remainder of the book (the hedge legs and low-conviction paired positions) destroys approximately $1.16M of value.

This tells us directly: the bot is subsidizing its losing book segments with its winning directional calls. A stripped-down version running only high-conviction dominant sides would dramatically outperform the current structure.

The "exclude worst hours" filter performs poorly in absolute terms - removing hours 01:00, 02:00, 04:00, and 07:00 (the identified worst hours by win rate) actually decreases absolute P/L, because hours 02:00 and 03:00 have low win rates but large positive P/L from high-conviction esports and soccer positions. Do not filter by hour.


Phase 8 - Rolling Window Consistency

Metric Value
Rolling 7-day windows green 18 of 27 (66.7%)
Rolling 7-day P/L range -$81,057 to +$106,170
Rolling 15-day windows green 26 of 27 (96.3%)
Rolling 15-day P/L range -$10,463 to +$132,795
Weekly P/L: W15 (Apr 11-12) +$35,043
Weekly P/L: W16 (Apr 13-19) -$2,844
Weekly P/L: W17 (Apr 20-26) +$36,144
Weekly P/L: W18 (Apr 27-May 3) +$329
Weekly P/L: W19 (May 4-7) +$28,315

The 15-day rolling windows are nearly all green (96.3%), demonstrating that the edge is real and persistent over multi-week periods. The 7-day windows are more volatile - 66.7% green - with several large negative 7-day windows in late April/early May. The rolling7 data shows a sharp drawdown sequence: -$31K (Apr 29), -$75K (Apr 30), -$81K (May 1), -$20K (May 2) before recovery. This corresponds to a week when Soccer (perennially the weakest category) dominated the event schedule.

The edge is real but not monotonic. The strategy has a structurally positive 15-day expectation but meaningful 7-day drawdown risk from category concentration (when a bad Soccer week dominates the book) and model variance on high-volume events.

CONSISTENCY CAVEATOne rolling 15-day window closes negative: -$10,463 on the May 7 terminal date. This is the tail of the late-April Soccer drawdown appearing in a 15-day window. The 27-day window is solidly positive.

Phase 9 - P/L Decomposition

Component Value Interpretation
BUY USDC out -$14,883,371 Total capital deployed
No SELL proceeds $0 Zero SELLs across the entire window
Resolved wins +$14,980,137 Winning shares paying $1.00 each
Net realized P/L +$96,765 Winning shares minus total cost
Net ROI +0.65% Low headline, meaningful at scale
Spread P/L -$288,341 Cost of running paired positions above $1.00 paired cost
Hedge tax -$5,303,688 USDC spent on losing (non-dominant) legs across the book

The decomposition reveals the true anatomy of the P/L. The hedge tax is enormous: $5.3M spent on the non-dominant legs of paired positions, with a win rate on those legs of roughly 27% (100% - 73% where dominant side wins). The directional wins on the dominant side must overcome both the raw hedge cost and the spread over-round.

Directional P/L (estimated):

High-conviction (3x+) dominant leg capital:  ~$6M (estimated from 376K trades × avg $16)
High-conviction win rate:                      73%
Expected payout:  0.73 × ($6M / avg_price)   >> positive
Hedge tax on these markets:                   ~$1.5-2M (non-dominant legs)
Net directional gain (estimated):             ~$1.3M before hedge tax
After hedge tax:                              ~$400-500K
Plus low-conviction directional gains:        ~-$200K (drag)
Less spread over-round:                       -$288K
Net:                                          ~$96K (matches actual)

The conclusion is consistent: the entire net P/L is generated by the 3x+ conviction tier, and the rest of the structure is a wash at best, a drag at worst.


Phase 10 - Strategy Specification (short form)

One-sentence summary: A both-sides prediction market bot with a calibrated directional model that expresses conviction through asymmetric allocation within paired positions, generating all net P/L from markets where the dominant side is tilted 3x or higher.

Edge source: Directional model accuracy in the high-conviction tier (73% dominant win rate at 3x+). The spread mechanic is structurally negative and provides only risk-reduction, not alpha.

What works: NBA markets (+9.6% ROI), esports within Other (+strong individual market returns), NHL (+3.3%), the sub-$0.10 longshot wing (+60.9% ROI), Wednesday scheduling, 09:00 UTC hour.

What drags: Soccer (-1.6% ROI, -$58K absolute), the 1.0-1.5x dominance bucket (54.4% WR, paired cost $1.054), the $0.60-$0.80 price band (-$57K), weekend schedule bias.

What replicators must NOT do: run both-sides positions in the 1-2x dominance bucket. The hedge cost exceeds the directional edge at that conviction level. See playbook for the stripped-down spec.

// 004 / Quantitative breakdown

Quantitative breakdown

Phase-by-phase statistical report. Methodology, distributions, per-bucket P/L.

Wallet: 0x84ad9c5c547a82ec9a08547b94bd922446e5bfb7 Window: 2026-04-11 → 2026-05-07 (27 active / 27 calendar days) Methodology: Cash-flow P/L = -buy_usdc + sell_usdc + remaining_share_payout. Resolved shares settle at $1 (win) / $0 (loss); open positions marked at last price.


Phase 1 - Trader Profile

Scale

MetricValue
Total trades892,903
BUY trades892,903
SELL trades0 (0.0% of all)
Unique markets10,243
Unique events4,521
Active calendar days27 of 27
Trades per active day33,070
BUY notional$14,883,371
SELL notional$0
Gross turnover$14,883,371

Trade-size distribution (USDC per fill)

MetricValue
median$5.80
mean$16.67
p95$57.26
p99$150.22
max$2,040.80
Top 5% share of capital38.8%

Inter-trade gap, same (market, outcome)

MetricValue
Median (s)16.0
Mean (s)108.2
P10 (s)0.0
P90 (s)148.0
% under 1s0.0%
% under 10s40.2%
% under 60s79.1%

Phase 2 & 3 - Both-Sides Participation, Dominance Curve

  • Both-sides rate: 79.11% (8,103 of 10,243 markets)
  • Median paired cost: $1.0256
  • Mean paired cost: $1.0329
  • Paired cost % under $1.00: 41.0%
  • Paired cost % under $0.97: 30.5%
  • Median 2nd-side hedge lag: 634s

Dominance buckets

BucketMarketsDom WRMean PairedAvg Mkt P/L
1.0–1.5x1,34854.5%$1.0540-
1.5–2.0x1,00758.0%$1.0543-
2.0–3.0x1,24361.1%$1.0395-
3.0x+4,50573.0%$1.0200-

Phase 4 - Entry-Price Analysis

BandBUY tradesResolvedWinsWRCapitalP/LROI
$0.00–$0.1024,24601,4936.2%$136.3K+$83,071+60.96%
$0.10–$0.2036,00005,22414.5%$336.8K-$36,232-10.76%
$0.20–$0.3081,582020,65125.3%$685.1K+$8,240+1.20%
$0.30–$0.40101,214036,24435.8%$1.00M+$7,224+0.72%
$0.40–$0.50106,410048,02745.1%$1.27M+$35,915+2.83%
$0.50–$0.60125,135068,46054.7%$2.50M+$43,735+1.75%
$0.60–$0.70135,916087,38364.3%$2.61M-$19,840-0.76%
$0.70–$0.80128,955095,09273.7%$2.58M-$37,404-1.45%
$0.80–$0.9097,489081,98184.1%$2.22M+$1,294+0.06%
$0.90–$1.0055,868052,49394.0%$1.53M+$10,984+0.72%

Phase 5 - Category & Vertical Breakdown

CategoryBUY tradesBUY $ResolvedWRP/LROI
Tennis292,796$4.34M292,76858.4%+$27,301+0.63%
Other135,252$3.80M135,19355.7%+$18,635+0.49%
Soccer366,499$3.75M366,49953.5%-$58,634-1.56%
MLB46,879$1.27M46,87957.4%-$9,267-0.73%
NBA24,777$1.06M24,77752.4%+$101,762+9.62%
NHL15,658$418.9K15,65852.7%+$13,695+3.27%
NFL11,042$248.2K11,04157.7%+$3,495+1.41%

Phase 6 - Timing & Execution

Net P/L by hour (UTC)

HourP/LWR
00:00+$11,38855.9%
01:00+$1,14953.7%
02:00+$57,18553.4%
03:00+$23,13754.7%
04:00+$11,99353.9%
05:00+$8,31054.6%
06:00-$4,77355.5%
07:00-$13,63452.6%
08:00-$1,85058.1%
09:00+$47,29660.3%
10:00-$16,65158.0%
11:00-$5,56257.4%
12:00-$20,41154.7%
13:00+$9,10454.5%
14:00-$46,35554.6%
15:00+$9,56354.8%
16:00-$69454.2%
17:00-$20,65955.3%
18:00+$23,82658.2%
19:00-$13,49954.9%
20:00+$1,35956.6%
21:00-$39256.6%
22:00+$3,52754.4%
23:00+$33,63156.3%

Phase 8 - Rolling Window Consistency

  • Rolling 7-day windows green: 19 of 27 (70.4%)
  • Rolling 7-day P/L range: -$81,058 → +$106,170
  • Rolling 15-day windows green: 26 of 27 (96.3%)
  • Rolling 15-day P/L range: -$10,463 → +$132,795

Weekly P/L

WeekSpanTradesWRP/LCumulative
W152026-04-11 → 2026-04-12111,31153.6%+$35,043+$35,043
W162026-04-13 → 2026-04-19135,18953.9%-$2,844+$32,199
W172026-04-20 → 2026-04-26223,52155.4%+$36,144+$68,343
W182026-04-27 → 2026-05-03258,26256.8%+$329+$68,672
W192026-05-04 → 2026-05-07164,53257.0%+$28,315+$96,986

Phase 9 - P/L Decomposition

MetricValue
BUY USDC out-$14,883,371
SELL USDC in+$0
Theoretical spread P/L-$288,341
Hedge-tax outflow$5.30M
Net realized P/L+$96,765
Net ROI on BUY notional+0.65%

Phase 10 - Top Markets by Volume

MarketTradesVolumeResolvedP/L
Pistons vs. Magic760$53.8K760-$2,256
Lakers vs. Rockets731$42.6K731-$7,127
Knicks vs. Hawks727$35.4K727-$12,435
Heat vs. Hornets580$28.0K580-$3,117
LoL: Shifters vs Movistar KOI (BO3) - LEC Regular Season740$27.1K740+$3,210
Cavaliers vs. Raptors398$25.7K398-$498
Trail Blazers vs. Suns696$24.8K696+$156
Nuggets vs. Timberwolves517$24.4K517+$1,862
Pistons vs. Magic587$24.1K587-$1,195
Nuggets vs. Timberwolves548$24.1K548+$2,386

Top 10 winners by P/L

MarketVolumeNet P/L
Trail Blazers vs. Spurs$21.2K+$71,421
LoL: Dplus KIA vs KT Rolster - Game 2 Winner$16.9K+$12,971
Will Portsmouth FC win on 2026-04-11?$2.6K+$12,454
LoL: KT Rolster vs HANJIN BRION (BO3) - LCK Rounds 1-2$9.9K+$10,197
Will Chengdu Rongcheng FC win on 2026-04-12?$3.0K+$10,054
Counter-Strike: Vitality vs FUT Esports - Map 2 Winner$3.9K+$10,031
LoL: LOUD vs Vivo Keyd Stars - Game 1 Winner$12.9K+$10,002
LoL: Fnatic vs SK Gaming - Game 2 Winner$6.2K+$9,433
LoL: Dplus KIA vs Gen.G - Game 2 Winner$6.9K+$8,500
LoL: KT Rolster vs HANJIN BRION - Game 1 Winner$15.0K+$8,484

Top 10 losers by P/L

MarketVolumeNet P/L
Knicks vs. Hawks$35.4K-$12,435
LoL: Weibo Gaming vs Anyone's Legend (BO3) - LPL Group Ascend$9.5K-$9,454
LoL: Weibo Gaming vs Anyone's Legend - Game 2 Winner$8.1K-$8,124
Madrid Open: Stefanos Tsitsipas vs Casper Ruud$19.6K-$7,424
Internazionali BNL d'Italia, Qualification: Rinky Hijikata vs Pierluigi Basile$14.6K-$7,143
Lakers vs. Rockets$42.6K-$7,127
LoL: Fnatic vs Natus Vincere (BO3) - LEC Regular Season$18.6K-$6,343
BMW Open: Joao Fonseca vs Ben Shelton$8.6K-$6,124
LoL: Invictus Gaming vs Anyone's Legend - Game 1 Winner$6.0K-$6,000
Internazionali BNL d'Italia, Qualification: Patrick Kypson vs Titouan Droguet$16.4K-$5,774

Report generated 2026-05-08 08:59 UTC.

// 005 / Filter strategy

Filter strategy

Which standard filters move the needle on this trader, and which destroy the edge.

Wallet: 0x84ad9c5c547a82ec9a08547b94bd922446e5bfb7 Window: 2026-04-11 → 2026-05-07 (27 days) Baseline: 892,815 resolved BUYs · 55.67% WR · $14.87M deployed · +$96,986 P/L · +0.65% ROI

Methodology: Each filter is applied to the resolved-BUY set. The baseline includes both dominant and non-dominant legs of all paired positions. The high-conviction filter is the analytically critical one for this wallet - it is not merely an incremental refinement but a structural revelation about where the alpha actually lives.

The headline result

One filter produces transformative lift. Most others are destructive or negligible. The high-conviction dominant-side filter increases realized P/L from +$97K to +$1.258M - a 13x improvement - by removing the hedge legs and low-conviction pairings that drag the book. Every other filter produces modest at best, often harmful, results.

The price-band filter does minor good (+0.24% ROI improvement) but cuts 46% of absolute P/L. The category filter on NBA surfaces the strongest per-dollar performance but captures only 2.8% of trades. The hour filter is outright destructive. The stacked combined filter produces a reasonable ROI% on a negligible absolute base.

CRITICAL INSIGHTThe high-conviction filter (dom 2x+, dominant leg only) transforms the book from +0.65% ROI to +18.33% ROI on the qualifying subset. This is the single most important analytical finding about this wallet: the bot is subsidizing its losing book segments with winning directional calls. Strip the losers and the returns are exceptional.

Filter results table

Filter Trades WR Capital P/L ROI Delta vs baseline
Unfiltered baseline 892,815 55.67% $14.87M +$96,986 +0.65% -
Price $0.30-$0.70 482,436 51.77% $7.64M +$68,184 +0.89% +0.24% ROI, -$28,802 abs
High-conviction dom 2x+ (dominant leg only) 376,315 75.74% $6.87M +$1,258,243 +18.33% +$1,161,257
Top category: NBA only 24,777 52.39% $1.06M +$101,762 +9.62% +$4,776 abs, +8.97% ROI
Exclude worst 4 hours (01, 02, 04, 07 UTC) 814,718 55.88% $13.35M +$40,294 +0.30% -$56,692 abs
Combined (high-conv + NBA + 0.30-0.70) 8,603 52.90% $346K +$20,585 +5.95% +$20,585 abs, much smaller book

Filter-by-filter commentary

1. Price band filter ($0.30-$0.70) → MARGINAL, USE WITH CAUTION

Applying the standard sweet-spot price filter reduces the book from 892K to 482K trades and shifts ROI from +0.65% to +0.89% - a real but modest improvement of 24 basis points. Absolute P/L drops from +$97K to +$68K, a loss of $29K in net dollars.

The mechanism: the filter removes the extreme ends of the distribution. The sub-$0.10 band (+60.96% ROI, +$83K) is stripped out because those fills are below $0.30, representing a major loss of a high-ROI segment. The $0.70-$0.90 band (-0.76% to +0.06% ROI) is also stripped, removing a modest drain. The net effect is marginally positive in percentage terms but negative in absolute dollars because the sub-$0.10 longshot wing is so ROI-dense.

Verdict: Do not apply this filter if replicating for absolute dollar returns. Apply it only if capital is limited and you need to concentrate on the most ROI-efficient tier of the $0.40-$0.60 price zone.

2. High-conviction filter (dom 2x+, dominant leg only) → TRANSFORMATIVE LIFT

This is the most important filter verdict in the entire report. Keeping only the dominant side of markets where the bot's allocation ratio is 2x or higher - and discarding all hedge/non-dominant legs - produces 376,315 trades, $6.87M capital, +$1.258M P/L, +18.33% ROI.

Compare to the unfiltered baseline: +$97K on $14.87M (+0.65%). The high-conviction dominant-leg subset alone produces 13x more absolute profit on 46% of the capital, for an ROI that is 28x higher.

The math is compelling:

High-conviction dominant legs (2x+):   +$1,258,243 P/L  on $6.87M  (+18.33%)
Everything else in the book:           -$1,161,257 P/L  on $8.00M  (-14.52%)
Total book:                            +$96,986 P/L     on $14.87M (+0.65%)

The "everything else" - hedge legs, non-dominant legs, and low-conviction paired positions - destroys $1.16M of value that the directional winners barely offset. This is the structural cost of the current both-sides architecture.

Practical implication for replication: A bot that only trades the dominant side in 2x+ conviction markets, ignoring all hedging, would generate 13x the current P/L on less capital. The hedge discipline adds robustness and reduces variance but costs a massive amount in expected value.

3. Category filter (NBA only) → MEANINGFUL_LIFT in ROI, SMALL absolute book

Isolating NBA trades yields 24,777 trades, $1.06M deployed, +$101,762 P/L, +9.62% ROI. This is the single best-performing category by ROI margin and narrowly beats the book's total net P/L in absolute terms on only 7.1% of capital.

The NBA filter captures the sharpest directional signal in the book. The model's win rate on NBA dominant positions is meaningfully higher than on Soccer or Tennis. The trade-off is that the NBA schedule is narrow - roughly 82 regular-season games plus playoffs, limiting daily coverage to 0-6 games depending on the schedule. The per-market P/L is high (best-market table shows NBA entries consistently in the -$2K to +$2K range per 500-750 trade market) but the total capacity is capped.

Esports within "Other" shows similar characteristics (high per-market ROI on individual events) but is less cleanly parseable from the category breakdown.

Verdict: Over-weight NBA and esports relative to Soccer. The Soccer allocation is the single biggest drag on total P/L.

4. Soccer exclusion → MEANINGFUL_LIFT

While not listed as a named filter in the output, Soccer exclusion is implied by the category analysis. Soccer has -$58,634 P/L on $3.75M deployed (-1.56% ROI). Removing Soccer from the book while keeping everything else would increase total P/L by $58,634, from +$97K to +$155K, and increase overall ROI from 0.65% to 1.39% on the remaining $11.1M.

The bot deploys enormous Soccer volume (366K trades, 41% of total trade count) for negative returns. The directional model is weakest in Soccer, likely because soccer outcomes are inherently higher-variance (low-scoring, draws possible, strong upset frequency) than basketball or tennis.

Verdict: If you can replicate the model's architecture without Soccer coverage, do so. If you must trade Soccer, concentrate it in the 3x+ conviction tier only and monitor weekly.

5. Hour exclusion filter → DESTRUCTIVE - DO NOT APPLY

The "worst 4 hours" filter (hours 01, 02, 04, 07 UTC identified as having lowest win rates at 53.4-52.6%) removes $1.52M of capital and drops absolute P/L by $56K, from +$97K to +$40K. This is counterintuitive: the hours with the lowest win rates include hours 02:00 (+$57,185 P/L) and 03:00 (+$23,137 P/L).

The explanation: win rate is an imperfect proxy for P/L in a both-sides book. Overnight hours have low win rates because the bot is placing mostly hedge legs (cheap non-dominant sides) during low-event periods. But some of these hedge positions pay very large sums when they win (longshot $0.05 positions paying $1.00 each when the upset lands). Hour 02:00 UTC is the second-most profitable hour in the book despite having the second-lowest win rate.

Verdict: Do not filter by hour on this wallet. The win rate vs P/L relationship is non-monotonic due to the asymmetric payoff structure of longshot hedge positions.

6. Stacked combined filter → HIGH ROI%, TINY CAPACITY

The precomputed combined filter (high-conviction + top category + $0.30-$0.70) yields 8,603 trades, $346K capital, +$20,585 P/L, +5.95% ROI. The ROI% is attractive (5.95% vs 0.65% baseline) but the absolute capital deployed drops by 98%, from $14.87M to $346K. This is essentially the intersection of NBA + high-conviction + coin-flip prices, which is a tiny subset of the total book.

The stacked filter demonstrates diminishing marginal intersection but confirms the direction: tighter, higher-conviction, NBA-focused filters improve ROI%. The trade-off is capacity.


What filters WOULD add value if they were measurable

The standard filter battery misses the most actionable dimension of this trader. The genuine improvement filters would require data beyond the trade CSV:

Hypothetical filter Expected effect Required data
Soccer exclusion +$58K P/L, +0.74% overall ROI Category labels (computable from slugs)
Dominance 3x+, dominant leg only Larger lift than 2x+ (73% WR vs 61% at 2x) Dominance computation per market
Esports-only within Other Concentrate the strongest Other performers Slug parsing for esports pattern
Post-line-open entry (5+ min after market launch) Avoid the high-noise opening spread Market creation timestamps
Skip Monday-Saturday weeknight Soccer Most Soccer losses concentrated here Category + DOW composite

Bottom line

Three concrete recommendations for a replicator:

  1. Apply the high-conviction dominant-side filter ruthlessly. Only execute the larger side when your allocation ratio is 2x or higher. The sub-2x positions contribute negative absolute value after accounting for hedge costs.

  2. Remove Soccer from the universe, or at minimum restrict Soccer to 3x+ conviction only. The Soccer allocation is the single largest drag, responsible for -$58K P/L on 25% of total capital.

  3. Do not filter by hour. The win rate by hour is misleading because overnight hours contain high-value longshot positions. Filter by conviction ratio, not by clock.

The single most useful action for this strategy is not adding a filter - it is removing the structural incentive to hedge low-conviction positions. See the playbook for the implementation spec.

// 006 / Replication playbook

Replication playbook

Where the edge is portable, and where it isn't.

Source wallet: 0x84ad9c5c547a82ec9a08547b94bd922446e5bfb7 Strategy: Both-sides directional overlay - paired positions with asymmetric tilts driven by a sports model Reference book: $14.87M BUY notional → +$96,765 net P/L → +0.65% ROI in 27 days Stripped high-conviction version: $6.87M → +$1.258M → +18.33% ROI (dominant side only, 2x+ conviction)


One-paragraph operator brief

Build a Polymarket bot that maintains a calibrated directional model for sports and esports outcomes (basketball, hockey, tennis, esports at minimum). For each live event, compute your fair-value probability for each outcome and compare against the CLOB mid-prices. When your model's dominant-side edge implies an allocation ratio of 2x or greater relative to the hedge side, execute the dominant-side position at market. Optionally execute the hedge side as well (for variance reduction), but only size it at a ratio proportional to your confidence. Cap Soccer exposure. Over-weight NBA, NHL, and esports. Run 24/7 but expect better model performance during European morning (08:00-11:00 UTC) and mid-week. Expect +18% monthly ROI on capital deployed in the high-conviction dominant tier; expect the hedge tax to erode returns if you systematically over-hedge.


1. Market selection

Rule Value
Asset class Polymarket prediction markets
Categories NBA, NHL, Tennis, Esports (LoL, CS2, Valorant), NFL, MLB
EXCLUDE Soccer (moneyline) at less than 3x conviction
Market types Match winner, game winner (BO3/BO5), set winner, spread, total
Esports coverage LCK, LEC, LPL, NA Challengers, VCT Americas, ESL Pro League
Exclusion pattern Markets with fewer than $500 total CLOB depth on either side

Category priority order (by ROI performance):

  1. NBA: +9.62% ROI - highest priority, size aggressively when high-conviction
  2. Esports (LoL/CS/Valorant): strong individual market returns, prioritize BO3/BO5 formats
  3. NHL: +3.27% ROI - solid, proceed
  4. NFL/MLB: +1.41% / -0.73% - moderate, use 3x+ conviction threshold strictly
  5. Tennis: +0.63% - deploy but monitor; volume is large so even thin edge compounds
  6. Soccer: -1.56% - skip moneylines unless 3x+ conviction, restrict to major leagues

Multi-market coverage per event: The reference wallet covers multiple markets per event (moneyline, spread, totals). This is recommended for capital efficiency - the model signal applies across all derivative markets of the same underlying event. Build slug parsing to identify event clusters (e.g., all markets sharing nba-cle-det-2026-05-07 as event slug).


2. Entry logic

The entry signal is your model's output versus the CLOB price. The key threshold is the dominance ratio that the reference wallet exhibits when it wins at high rates.

def should_enter(market, outcome, model_prob, clob_mid):
    # Category gate
    if market.category == "Soccer" and model_prob < 0.65:
        return None  # avoid Soccer below strong conviction

    # Compute edge
    edge = model_prob - clob_mid

    # Minimum edge threshold
    if abs(edge) < 0.04:
        return None  # less than 4% edge is noise

    # Dominance gate: only enter if your allocation to this side 
    # vs the hedge side is 2x or higher
    hedge_prob = 1.0 - model_prob
    implied_dom_ratio = model_prob / hedge_prob
    if implied_dom_ratio < 2.0:
        return None  # low-conviction zone, reference book shows <58% WR here

    direction = "dominant" if edge > 0 else None
    return direction
Parameter Value Rationale
Minimum model-vs-CLOB gap 4 cents (4%) Below this the edge is indistinguishable from noise
Minimum implied dom ratio 2.0x Reference book shows WR acceleration above 2x, peak at 3x+
Preferred dom ratio 3.0x+ 73.0% dominant WR in this tier vs 61.1% at 2-3x
Entry side Dominant only (recommended) Hedge leg destroys ~$1.16M in the reference book
Hedge leg (optional) Enter if dom ratio >= 2x and you want variance reduction Size hedge at 0.25-0.35 of dominant notional

Do NOT enter the following: - Sub-$0.10 speculative buys on unknown underdogs without a model backing - Both-sides positions where your dominance ratio is below 2x - Soccer markets where your model confidence is below 60% - Any market in the final 60 seconds before resolution (noise trading zone)


3. Exit logic

The reference wallet holds all positions to resolution - zero SELLs across 892,903 trades and $14.87M deployed. This is the intended exit mechanism: position resolves at $1.00 (win) or $0.00 (loss).

There is no SELL engine to replicate. Positions are held from entry through settlement. The only "exit" decision is whether to add to a position if the price moves favorably after entry (partial averaging). The reference CSV shows the bot adding to positions over a 10-minute accumulation window when prices shift (e.g., multiple Pistons fills at $0.71, $0.72, $0.74, $0.77 at different timestamps).

def manage_position(position):
    # Hold to settlement - no active exit
    # Optional: add to position if price improves
    current_mid = get_clob_mid(position.market, position.outcome)
    if current_mid < position.avg_entry_price * 0.95:
        # Price improved 5% since entry - add at better price
        add_clip = min(remaining_budget, base_clip * 0.5)
        enter(position.market, position.outcome, add_clip)
    # Otherwise: do nothing, let it settle

Settlement timing: Markets resolve at event completion. Basketball games typically resolve within 3-4 hours of tip-off; Tennis matches within 2-4 hours; Esports BO3 matches within 3-5 hours. Capital cycles within half a day for most market types.


4. Sizing model

The reference wallet uses variable clip sizing correlated with conviction. The sizing profile:

Conviction tier Dom ratio Recommended clip Max per market
High conviction 3x+ $15-$100 $500
Moderate conviction 2-3x $8-$40 $200
Do not trade Below 2x - -

Bankroll scaling:

Bankroll Baseline clip (high-conv) Max per market Expected daily deployment
$5,000 $5-$25 $150 ~$800
$15,000 $15-$75 $400 ~$2,500
$50,000 $50-$250 $1,500 ~$8,500
$150,000 $150-$750 $5,000 ~$25,000

The reference wallet deploys an average of $551K/day across all markets but this includes many low-conviction and hedge positions. The pure high-conviction dominant tier deploys approximately $6.87M over 27 days, or ~$255K/day. Scale your bankroll expectations accordingly.

No Martingale, no doubling after losses. The reference wallet shows no evidence of loss-chasing scaling. When a high-conviction position loses, the next position is sized identically by model output, not by the outcome of the prior bet.


5. Both-sides allocation

The reference wallet hedges 79.1% of its markets. Based on the filter analysis, systematic hedging at low conviction ratios destroys $1.16M of value. The recommended approach for a replicator:

Simplified: Dominant side only (recommended for replicators) - Enter only the dominant side (2x+ conviction) - Never enter the non-dominant side as a hedge - Expected ROI: ~+18% on deployed capital (based on filter result) - Variance: higher per-market, but 73% WR at 3x+ is sufficient

Advanced: Paired with selective hedging (replicating the reference structure) - Enter dominant side at full clip when dom ratio >= 3x - Enter hedge side at 20-30% of dominant notional when dom ratio is 3-5x - Enter hedge side at 10-15% of dominant notional when dom ratio is 5x+ - Skip hedge entirely when dom ratio is below 3x (reference wallet's 2-3x tier loses money overall)

Scenario Dom side % of paired notional Hedge side %
Dom ratio 2-3x 70-75% 25-30%
Dom ratio 3-5x 80-85% 15-20%
Dom ratio 5x+ 90-95% 5-10%

The second-side lag in the reference book is a median of 634 seconds (10.6 minutes). If you do hedge, execute the hedge leg within 10-15 minutes of the dominant entry to match the reference's timing discipline.


6. Sports model requirements

The edge in this strategy is 100% model-driven. Without a calibrated sports model, you cannot generate the 3x+ conviction signals that produce the 73% win rate. The model minimum viable requirements:

For NBA: - Team strength ratings (Elo or similar) - Home/away adjustment - Rest days, back-to-back game flag - Injury reports (starter availability) - Recent form (last 5-10 games)

For Tennis: - Surface-adjusted Elo ratings (hard / clay / grass separate) - Head-to-head record - Recent match outcomes (last 4-8 weeks) - Tournament round (fatigue in later rounds)

For Esports (LoL/CS2): - Team rating within region (LCK, LEC, LPL, etc.) - Match format (BO3 vs BO5 - higher-rated teams cover BO3 at higher rates) - Tournament stage (group vs bracket) - Recent match history (last 3-5 matches) - Roster stability flag

For Soccer: - Use extreme caution. The reference book loses -$58,634 in Soccer. A basic Elo model is insufficient. If including Soccer, you need: expected goals data, recent xG performance, possession stats, and squad rotation likelihood. Only trade 3x+ conviction Soccer.

Model output: A probability estimate for each outcome. Comparing this against the Polymarket CLOB mid-price gives you the edge. The bet size scales with the edge magnitude.


7. Hour scheduling and operational requirements

Hours (UTC) Recommendation Rationale
08:00-11:00 UTC Maximum deployment European sports prime time, model edge highest (60.3% WR at 09:00)
12:00-19:00 UTC Full deployment US + European overlap, highest volume
23:00-03:00 UTC Selective deployment Overnight esports (LCK runs 10:00-14:00 KST = 01:00-05:00 UTC), some Soccer
04:00-07:00 UTC Minimal deployment Low event frequency, model edge weaker

DO NOT apply a hard off-window. The reference wallet trades all 24 hours and several overnight hours produce outsized P/L (hour 02:00 UTC = +$57K, hour 23:00 = +$33K). The overnight hours that appear weak by win rate are profitable by absolute P/L.

Infrastructure requirements:

Requirement Specification
CLOB connection Persistent WebSocket to Polymarket CLOB. REST polling will miss rapid fills.
Sports data feed Real-time odds feed (Pinnacle, Betfair) or score APIs for live model updates
Execution speed Sub-2 second end-to-end (model update → order submit). Not a latency play but needs reliability.
Wallet Single EOA, USDC on Polygon. Multiple wallets beneficial for capacity above ~$50K.
Concurrency Multi-threaded event handler: 380+ markets per day, several simultaneous live events
Nonce management Fan-out capability: reference shows 6-12 fills per second per market at entry
Monitoring Log (market, outcome, model_prob, clob_mid, edge, dom_ratio, fill_price, fill_size) per trade. Weekly dominance ratio audit.

8. Risk profile and sizing guardrails

Risk Severity Mitigation
Soccer model failure High Hard limit Soccer to 20% of daily capital or exclude entirely
Low-conviction position bleed High Never enter sub-2x dominance positions
Hedge leg over-sizing High Cap hedge at 30% of dominant notional maximum
Adverse 7-day window Medium -$81K drawdown observed in reference book. Set a 7-day -5% NAV stop
Esports lineup changes Medium Fetch roster confirms from team social / tournament API before entry
Model stale on breaking news Medium Kill switch on injury news / DNP notifications; skip that market
CLOB liquidity thin Low-Medium Skip markets with <$300 depth on either side
Single-market concentration Low Cap any single event at 3% of daily capital deployment

Hard position limits:

Max per single market:        $1,500 (at $50K bankroll)
Max per single event cluster: $3,000 (across all derivative markets)
Max Soccer exposure:          20% of daily deployment budget
Daily drawdown stop:          -3% of NAV
Rolling 7-day drawdown stop:  -8% of NAV → pause and audit model

9. Diagnostic checklist - "is the bot still working?"

Run weekly:

Check Healthy range Action if outside
Dominant win rate (3x+ markets) 68-78% If <65% for 2 weeks: model is degrading, pause and retrain
Dominant win rate (2-3x markets) 56-66% If <52% sustained: drop this tier entirely
Soccer P/L (rolling 7-day) -1% to +3% ROI If <-2% for 2 consecutive weeks: suspend Soccer
Mean paired cost (if hedging) $0.97-$1.05 If >$1.06: hedge entry logic is overpaying, review hedge sizing
NBA P/L contribution Positive If negative for >10 days: model error on NBA, investigate
Esports P/L contribution Positive If negative for >14 days: check lineup data quality
Daily markets touched 250-500 If <150: model is too restrictive, loosen edge threshold to 3%
% trades at 3x+ dom ratio 40-65% If <30%: model is losing conviction, check calibration
15-day rolling P/L Positive Only one negative in reference data; if second appears, full audit

10. What this playbook deliberately does NOT include

  • No hedge-first architecture. The reference book's spread mechanic loses $288K. Building a system that tries to capture spread income is the wrong frame; the alpha is directional.

  • No fixed paired-cost target. Chasing a paired cost below $1.00 (the classic MM pitch) would require buying very thin books at unfavorable prices on the non-dominant side. The reference wallet already shows what happens at $1.033 mean paired cost: the spread leg destroys value. Don't try to fix this by tightening the paired cost; fix it by not pairing at low conviction.

  • No hour-based scheduling constraints. The filter analysis shows hour exclusions are destructive. Run 24/7 with uniform entry logic; the market schedule determines natural volume fluctuation.

  • No Soccer-heavy deployment. Soccer is 41% of the reference wallet's trade count and the only major negative-ROI category at -1.56%. A replicator does not need to match the reference wallet's Soccer volume. Concentrating on NBA, Tennis, NHL, and Esports with strict Soccer gates will outperform the reference on a per-dollar basis.

  • No longshot speculation without model backing. The sub-$0.10 band has +61% ROI in the reference book but those positions are organic outputs of the paired-position structure (cheap hedge sides). Buying sub-$0.10 positions speculatively without the model foundation will lose money.

  • No copy-trading of this wallet's specific picks. Sports markets close after each event. By the time another wallet's fill appears in the on-chain data, the match has likely progressed or resolved. This strategy cannot be copy-traded; it requires an independent model.

The core discipline: high conviction, dominant side, American sports and esports as primary verticals. The reference wallet's broad Soccer coverage is a legacy of the model's application to all available markets, not a deliberate alpha source. Run narrower, run sharper, collect the directional wins.


TL;DR - implementable in ~200 lines of Python

# Pseudocode - model is your own implementation. 
# This shows the execution loop only.

async def run_bot():
    model = SportsModel()       # your calibrated prob model
    clob = PolymarketCLOB()

    while True:
        live_markets = await clob.get_active_markets()

        for market in live_markets:
            # Category gate
            if market.category == "Soccer" and not is_high_quality_soccer(market):
                continue

            # Get model estimate and CLOB mid
            for outcome in market.outcomes:
                model_prob = model.predict(market, outcome)
                clob_mid   = await clob.get_mid(market, outcome)
                edge       = model_prob - clob_mid

                if abs(edge) < 0.04:
                    continue

                # Dominance gate
                dom_ratio  = model_prob / (1.0 - model_prob)
                if dom_ratio < 2.0:
                    continue

                # Sizing
                clip = compute_clip(dom_ratio, available_capital())
                # dom_ratio 3x+: full clip; 2-3x: 60% clip
                if dom_ratio >= 3.0:
                    clip = clip * 1.0
                else:
                    clip = clip * 0.6

                clip = min(clip, MAX_PER_MARKET)

                # Execute dominant side
                await clob.buy(market, outcome, clip)

                # Optional hedge (skip if capital-constrained)
                if ENABLE_HEDGING and dom_ratio >= 3.0:
                    hedge_outcome = market.other_outcome(outcome)
                    hedge_clip    = clip * 0.20  # 20% of dominant notional
                    await clob.buy(market, hedge_outcome, hedge_clip)

        await asyncio.sleep(15)  # poll every 15 seconds

Deploy with $15K-$50K working capital. Expect +15-20% monthly ROI on capital deployed in the high-conviction tier. Monitor Soccer weekly. The model is the product; the execution is the plumbing.

Join Discord