Skip to content

Commit 6f25834

Browse files
committed
Merge PR research fixes with sizing review
2 parents 4766232 + d222906 commit 6f25834

5 files changed

Lines changed: 324 additions & 177 deletions
Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Group Book Validation: will-the-democrats-win-the (2026-05-13T03:20:27.443159+00:00)
1+
# Group Book Validation: will-the-democrats-win-the (2026-05-13T06:27:27.152124+00:00)
22

33
Real-orderbook depth check of basket arb candidate.
44
Group: `0xa8574c0caacc...` (members=2)
@@ -7,25 +7,25 @@ Group: `0xa8574c0caacc...` (members=2)
77

88
| # | Question | bestAsk | depth @ bestAsk | bestBid | gamma_ask | fee | vol24hr | liq |
99
|---|---|---:|---:|---:|---:|---:|---:|---:|
10-
| 1 | Will the Democrats win the South Carolina governor race | 0.059 | 77 | 0.031 | 0.0590 | 0.040 | $0 | $7,244 |
11-
| 2 | Will the Republicans win the South Carolina governor ra | 0.91 | 4 | 0.9 | 0.9100 | 0.040 | $1 | $3,402 |
10+
| 1 | Will the Democrats win the South Carolina governor race | 0.059 | 77 | 0.022 | 0.0590 | 0.040 | $0 | $4,664 |
11+
| 2 | Will the Republicans win the South Carolina governor ra | 0.91 | 4 | 0.89 | 0.9100 | 0.040 | $1 | $5,585 |
1212

1313
## Marginal (1-unit) edge
1414

1515
- bestAsk basket sum: **0.9690**
1616
- marginal fee: 0.00550
1717
- marginal edge_after_fee: **+0.0255**
1818

19-
## Fill simulation
19+
## Fill simulation (fix: cost & edge computed at ACTUAL fillable size, not intended)
2020

21-
| Basket size (units) | Avg basket cost | Total fee | Edge $ | Edge % | Max fillable |
21+
| Intended size | Actual fillable | Avg cost/unit | Total fee | Edge $ | Edge % |
2222
|---:|---:|---:|---:|---:|---:|
23-
| 50 | 0.9846 | $0.25 | $+0.52 | +1.04% | 50 |
24-
| 200 | 0.9934 | $1.01 | $+0.31 | +0.15% | 200 |
25-
| 500 | 1.0371 | $2.88 | $-21.44 | -4.29% | 500 |
26-
| 1000 | 1.0644 | $5.75 | $-70.15 | -7.01% | 870 |
27-
| 2000 | 1.0987 | $13.53 | $-211.00 | -10.55% | 870 |
28-
| 5000 | 1.3646 | $57.38 | $-1,880.37 | -37.61% | 870 |
23+
| 50 | 50.0 | 0.9782 | $0.26 | $+0.83 | +1.66% |
24+
| 200 | 200.0 | 0.9845 | $1.07 | $+2.02 | +1.01% |
25+
| 500 | 500.0 | 1.0178 | $3.24 | $-12.12 | -2.42% |
26+
| 1000 | 1000.0 | 1.0430 | $6.53 | $-49.48 | -4.95% |
27+
| 2000 | 1303.9 ⚠️ | 1.0566 | $8.26 | $-82.06 | -6.29% |
28+
| 5000 | 1303.9 ⚠️ | 1.0566 | $8.26 | $-82.06 | -6.29% |
2929

3030
---
31-
*Snapshot: 2026-05-13T03:20:27.443159+00:00*
31+
*Snapshot: 2026-05-13T06:27:27.152124+00:00*
Lines changed: 59 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,76 @@
1-
# Maker Simulation v2 — Trade Tape (2026-05-13T03:50:03.951692+00:00)
1+
# Maker Simulation v3 — Trade Tape + Size-capped (2026-05-13T06:26:16.072251+00:00)
22

3-
> **Post-review correction (2026-05-13)**: this report was generated before the simulator capped PnL by the thinnest at-or-below-target leg trade size and before maker quotes were forced to stay strictly below bestAsk. Treat the dollar figures below as a stale upper bound. Re-run `scripts/simulate_maker_basket_v2.py` with the corrected code before making any trade/no-trade decision.
4-
5-
**Method**: real Polymarket trade tape. For each (group, day, markup), check if any SELL Yes trade at price <= target occurred on each leg that day. If ALL legs had a qualifying trade, basket fills.
3+
**Method (v3 = v2 + 3 fixes WW caught)**: real Polymarket trade tape.
4+
For each (group, day, markup), check if any SELL Yes trade at price <= target occurred on each leg. **Realized basket units per fill = min(intended_basket, min-over-legs of sum of qualifying-trade sizes that day)**. Maker target strictly clamped below bestAsk and above bestBid; groups with spread < 0.002 skipped.
65

76
**Window**: 14 days (2026-04-29 -> 2026-05-13)
8-
**Basket size**: $100
9-
**Trades fetched**: 48030 raw -> 1602 qualifying (SELL Yes in window)
7+
**Intended basket size**: $100 of payout per fill (capped by trade size)
8+
**Trades fetched**: 48033 raw -> 1603 qualifying (SELL Yes in window)
109
**Days with activity**: 15
10+
**Markup levels with no valid maker (spread too narrow)**: 20
1111

12-
## v1 (mid-touch) vs v2 (trade tape) comparison
12+
## Fixes vs prior version (v2 from earlier today)
1313

14-
v1 mid-touch results from earlier today (see `maker-simulation-2026-05-13.md`):
15-
- Total daily $: $+42.59 across 72 groups
16-
- Annualized: $+15,546/yr
17-
- Caveat: mid touching != trade happening at that price
14+
1. **Income now capped by realized basket units, not intended size.** Previous formula `fill_rate * avg_edge * intended_basket` assumed every fill captured the full $100. Per WW's review, that overstates by 5-20x when avg trade size is 5-9 units.
15+
2. **Maker target clamped strictly below bestAsk.** Previously `max(target, bestBid+0.001)` could produce target = bestAsk for narrow spreads (crossing/taker, not maker).
16+
3. **Per-leg fill size = sum of qualifying SELL Yes trade sizes at price <= target**, not total all SELL Yes sizes regardless of price.
1817

19-
## v2 results (this run)
18+
## v3 results
2019

21-
- Total expected daily income: **$+2.51/day** across 72 groups @ $100 basket
22-
- Annualized: **$+918/yr**
23-
- Groups with positive expected income at any markup: **17/72**
20+
- Total expected daily income: **$-0.72/day** across 72 groups @ $100 intended basket
21+
- Annualized: **$-263/yr**
22+
- Groups with positive expected income at any markup: **18/72**
2423

25-
## Top 20 by best expected daily income (v2)
24+
## Top 20 by best expected daily income (v3)
2625

27-
| Group | Q | Best markup | Fill rate | Avg edge | Avg sell size | Exp daily $ |
26+
| Group | Q | Best markup | Fill rate | Edge/unit | Avg realized units | Exp daily $ |
2827
|---|---|---:|---:|---:|---:|---:|
29-
| `0x2ecd963d91df...` | Will the Democrats win the Iow vs Will the Re | $0.030 | 20.0% | +5.027% | 77 | $+1.005 |
30-
| `0x5cddfa5bafea...` | Will the Democrats win the Geo vs Will the Re | $0.030 | 20.0% | +3.887% | 9 | $+0.777 |
31-
| `0x7146f4aff656...` | Will the Democrats win the Ill vs Will the Re | $0.050 | 6.7% | +5.738% | 5 | $+0.383 |
32-
| `0x195e8f642b07...` | Will the Democrats win the Tex vs Will the Re | $0.020 | 13.3% | +2.728% | 3 | $+0.364 |
33-
| `0xb17c29a2fb22...` | Will the Democrats win the Ten vs Will the Re | $0.020 | 6.7% | +5.138% | 6 | $+0.343 |
34-
| `0x2aa7cf1991dd...` | Will the Democrats win the Kan vs Will the Re | $0.050 | 6.7% | +5.001% | 10 | $+0.333 |
35-
| `0x6473c875a3d6...` | Will the Democrats win the New vs Will the Re | $0.030 | 13.3% | +2.442% | 5 | $+0.326 |
36-
| `0xac17bb3e2188...` | Will the Democrats win the New vs Will the Re | $0.020 | 13.3% | +1.732% | 1 | $+0.231 |
37-
| `0xd4118b02b567...` | Will the Democrats win the Pen vs Will the Re | $0.020 | 6.7% | +3.282% | 5 | $+0.219 |
38-
| `0x4e43ba407ed4...` | Will the Democrats win the Wis vs Will the Re | $0.030 | 6.7% | +2.476% | 11 | $+0.165 |
39-
| `0x209eca0d8c37...` | Will the Democrats win the Wyo vs Will the Re | $0.030 | 6.7% | +2.183% | 6 | $+0.146 |
40-
| `0x7bd878bdc3cd...` | Will the Democrats win the Nev vs Will the Re | $0.050 | 6.7% | +1.823% | 10 | $+0.122 |
41-
| `0x8941a4153cb2...` | Will the Democrats win the Ver vs Will the Re | $0.010 | 6.7% | +1.546% | 5 | $+0.103 |
42-
| `0x2a010ed53626...` | Will the Democrats win the Flo vs Will the Re | $0.020 | 6.7% | +1.498% | 5 | $+0.100 |
43-
| `0xb61918837517...` | Will the Democrats win the Nor vs Will the Re | $0.010 | 6.7% | +0.725% | 343 | $+0.048 |
44-
| `0x82cc8472987c...` | Will the Democrats win the Kan vs Will the Re | $0.010 | 6.7% | +0.672% | 12 | $+0.045 |
45-
| `0x1304dee4404b...` | Will the Democrats win the Ari vs Will the Re | $0.010 | 6.7% | +0.341% | 5 | $+0.023 |
46-
| `0xb23e25438839...` | Aaron Taylor-Johnson announced vs James Norto | $0.005 | 0.0% | +0.000% | 0 | $+0.000 |
47-
| `0x07311e10dac6...` | Will the Democrats win the Ala vs Will the Re | $0.005 | 0.0% | +0.000% | 0 | $+0.000 |
48-
| `0x25025e1a8d9b...` | Will the Democrats win the Ark vs Will the Re | $0.005 | 0.0% | +0.000% | 0 | $+0.000 |
28+
| `0x5cddfa5bafea...` | Will the Democrats win the Geo vs Will the Re | $0.030 | 20.0% | +3.887% | 9.4 | $+0.073 |
29+
| `0xb61918837517...` | Will the Democrats win the Nor vs Will the Re | $0.010 | 6.7% | +0.725% | 100.0 | $+0.048 |
30+
| `0x2ecd963d91df...` | Will the Democrats win the Iow vs Will the Re | $0.030 | 20.0% | +5.027% | 4.0 | $+0.040 |
31+
| `0x2aa7cf1991dd...` | Will the Democrats win the Kan vs Will the Re | $0.050 | 6.7% | +5.992% | 10.0 | $+0.040 |
32+
| `0x4e43ba407ed4...` | Will the Democrats win the Wis vs Will the Re | $0.030 | 6.7% | +2.476% | 10.9 | $+0.018 |
33+
| `0x6473c875a3d6...` | Will the Democrats win the New vs Will the Re | $0.030 | 13.3% | +2.442% | 5.0 | $+0.016 |
34+
| `0x7146f4aff656...` | Will the Democrats win the Ill vs Will the Re | $0.050 | 6.7% | +4.772% | 5.0 | $+0.016 |
35+
| `0xb17c29a2fb22...` | Will the Democrats win the Ten vs Will the Re | $0.010 | 6.7% | +3.341% | 6.0 | $+0.013 |
36+
| `0x195e8f642b07...` | Will the Democrats win the Tex vs Will the Re | $0.020 | 13.3% | +2.728% | 3.4 | $+0.012 |
37+
| `0xd4118b02b567...` | Will the Democrats win the Pen vs Will the Re | $0.020 | 6.7% | +3.282% | 5.0 | $+0.011 |
38+
| `0x209eca0d8c37...` | Will the Democrats win the Wyo vs Will the Re | $0.030 | 6.7% | +2.391% | 6.2 | $+0.010 |
39+
| `0x7bd878bdc3cd...` | Will the Democrats win the Nev vs Will the Re | $0.050 | 6.7% | +1.012% | 10.0 | $+0.007 |
40+
| `0x2a010ed53626...` | Will the Democrats win the Flo vs Will the Re | $0.020 | 6.7% | +1.498% | 5.0 | $+0.005 |
41+
| `0x12dddaa9289c...` | Will the Democrats win the Ken vs Will the Re | $0.030 | 6.7% | +0.426% | 16.3 | $+0.005 |
42+
| `0x8941a4153cb2...` | Will the Democrats win the Ver vs Will the Re | $0.020 | 6.7% | +0.521% | 5.0 | $+0.002 |
43+
| `0x82cc8472987c...` | Will the Democrats win the Kan vs Will the Re | $0.010 | 6.7% | +0.672% | 3.9 | $+0.002 |
44+
| `0xac17bb3e2188...` | Will the Democrats win the New vs Will the Re | $0.020 | 13.3% | +1.732% | 0.7 | $+0.002 |
45+
| `0x1304dee4404b...` | Will the Democrats win the Ari vs Will the Re | $0.010 | 6.7% | +0.341% | 5.0 | $+0.001 |
46+
| `0xb23e25438839...` | Aaron Taylor-Johnson announced vs James Norto | $0.005 | 0.0% | +0.000% | 0.0 | $+0.000 |
47+
| `0x07311e10dac6...` | Will the Democrats win the Ala vs Will the Re | $0.005 | 0.0% | +0.000% | 0.0 | $+0.000 |
48+
49+
## Markup-level aggregate (v3)
50+
51+
| Markup | Avg fill rate | Avg edge/unit | Avg realized units | Groups positive | Total daily $ |
52+
|---:|---:|---:|---:|---:|---:|
53+
| $0.005 | 5.9% | -1.266% | 19.7 | 7/72 | $-2.09 |
54+
| $0.010 | 5.8% | -0.382% | 19.8 | 13/72 | $-1.04 |
55+
| $0.020 | 5.7% | +0.241% | 20.1 | 15/72 | $-0.88 |
56+
| $0.030 | 5.6% | +0.656% | 19.4 | 16/72 | $-0.78 |
57+
| $0.050 | 5.4% | +0.903% | 20.0 | 15/72 | $-0.75 |
4958

50-
## Markup-level aggregate (v2)
59+
## Notes / honest disclaimers
5160

52-
| Markup | Avg fill rate | Avg edge given fill | Groups positive | Total daily $ |
53-
|---:|---:|---:|---:|---:|
54-
| $0.005 | 5.5% | -1.067% | 8/72 | $-5.02 |
55-
| $0.010 | 5.5% | -0.180% | 13/72 | $-1.62 |
56-
| $0.020 | 5.4% | +0.638% | 16/72 | $+0.98 |
57-
| $0.030 | 5.1% | +0.932% | 15/72 | $+1.79 |
58-
| $0.050 | 4.9% | +1.102% | 15/72 | $+1.85 |
61+
- Real Polymarket trade tape. SELL Yes trades at price <= target are the only ones that would have hit a resting maker bid.
62+
- Realized basket units = min(intended_basket, min_over_legs of total qualifying-trade size that day). This is the **upper bound** on what we could have filled.
63+
- Still optimistic on (a) queue priority — assumes our bid was first in line at our price level, (b) per-leg fills are independent within a day.
64+
- Maker fee assumed = taker fee_rate from feeSchedule. Polymarket maker fees are sometimes lower or rebated — actual income could be slightly HIGHER from fees alone.
65+
- Realistic adjustment: discount by 0.4-0.6x for queue priority + correlation + gas, additional partial-fill hedging risk.
5966

60-
## Notes
67+
## Comparison to prior versions
6168

62-
- This uses the REAL trade tape — every SELL Yes trade in the past 14 days at price <= target is counted as a potential fill.
63-
- Still optimistic: assumes (a) our resting bid was first in queue, (b) our size was always available, (c) per-leg fills are independent within a day.
64-
- avg_min_leg_sell_size = avg of (min sell-size across legs on filled days). If this is < intended basket size, we couldn't have filled in full.
65-
- Maker fee assumed equal to taker fee_rate from feeSchedule. Polymarket maker fees may be lower or rebated — actual income could be HIGHER.
66-
- v2 vs v1 mismatch: v2 < v1 means mid-touch over-counts (less real trade activity at target); v2 > v1 means mid-touch under-counts (trades happened that mid-snapshot didn't capture).
69+
| Version | Method | Annualized | Issue |
70+
|---|---|---:|---|
71+
| v1 (mid-touch) | did mid touch target on day d | $15,546 | Massively over-counted; mid touching != fill |
72+
| v2 (trade tape, size-uncapped) | sum SELL-Yes sizes regardless of target | $918 | Income computed at full $100/fill regardless of trade size |
73+
| **v3 (this run)** | per-target qualifying sizes, capped income | **$-263** | Honest within stated assumptions |
6774

6875
---
69-
*Snapshot: 2026-05-13T03:50:03.951692+00:00*
76+
*Snapshot: 2026-05-13T06:26:16.072251+00:00*

0 commit comments

Comments
 (0)