Files
jaxperro 0b12820eeb research: settle_discount (T7) — mechanism confirmed via incumbents; residual UNPROVEN (63% of volume outside tape-resolution = round-3 lower-bound caveat)
Incumbent census (volume-ranked): industrialized niche — top harvester
$3.2M vol/5,854 buys at +2.27% per ~4h hold; several ~$1M at +2.4-3.4%;
two big operators NEGATIVE (-3%) — residual risk is real, top-5 share
only 20%. Bucket returns (+6.2%/90-95c etc) are UPPER bounds: $129M of
high-price buys sit on non-tape-resolved tokens where upsets linger.
Verdict: park at our capital scale (pennies on idle cash); revisit as an
idle-cash overlay once nightly chain coverage closes the bias, or if
bankroll grows 10x.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 15:14:04 -04:00

88 lines
3.9 KiB
Python

#!/usr/bin/env python3
"""T7 EXPLORATORY (2026-07-23) — settlement-discount harvesting ("the last
3 cents"): outcome-known markets keep printing below $1 until formal
resolution, and redemption is fee-free. Two reads, both chain-true:
1. THE NICHE'S INCUMBENTS: wallets systematically BUYING at >=0.90 —
their realized hit, per-share edge, holding time (proxy: token's last
tape print = resolution-adjacent), and return on capital.
2. THE RESIDUAL: per entry-price bucket (90-95/95-97/97-99c), what did
buying every such print return after refund/loss risk — the passive
version of the trade at our size.
Kill: bucket edge < the copy book's return on the same capital-days, or
the incumbent census shows <5 wallets soaking all volume (saturated)."""
import sys
sys.path.insert(0, "/Users/jaxmakielski/polymarket-smart-money/research")
import tape # noqa: E402
BUCKETS = [(0.90, 0.95, "90-95c"), (0.95, 0.97, "95-97c"),
(0.97, 0.995, "97-99c")]
def main():
db = tape.connect()
tape.build_resolved(db)
# every high-price BUY-side print on a tape-resolved token, joined to
# payout + the token's terminal print time (holding proxy)
rows = db.execute("""
SELECT t.wallet, t.price::DOUBLE, t.size::DOUBLE, t.ts, tk.payout::DOUBLE, tk.last_ts,
t.asset
FROM trades t JOIN res_tok tk ON t.asset = tk.asset
WHERE t.side = 'BUY' AND t.price >= 0.90 AND t.price < 0.995
AND t.ts < tk.last_ts""").fetchall()
print(f"high-price buy prints on resolved tokens: {len(rows):,}")
# SCORER-LAW bias bound: high-price buys on tokens NOT tape-resolved
# (pending/vetoed) are excluded — round 3 says upsets linger there, so
# bucket loss-rates are LOWER BOUNDS. Size the exclusion:
excl_vol, excl_n = db.execute("""
SELECT coalesce(sum(t.price::DOUBLE * t.size::DOUBLE),0), count(*)
FROM trades t LEFT JOIN res_tok tk ON t.asset = tk.asset
WHERE t.side='BUY' AND t.price >= 0.90 AND t.price < 0.995
AND tk.asset IS NULL""").fetchone()
incl_vol = sum(r[1] * r[2] for r in rows)
print(f"excluded (unresolved-on-tape) volume: ${excl_vol:,.0f} "
f"({excl_n:,} prints) vs included ${incl_vol:,.0f} — loss rates "
f"below are LOWER BOUNDS (round-3 direction)")
# 2. residual per bucket
for lo, hi, tag in BUCKETS:
rs = [r for r in rows if lo <= r[1] < hi]
if not rs:
continue
n = len(rs)
usd = sum(r[1] * r[2] for r in rs)
pnl = sum((r[4] - r[1]) * r[2] for r in rs)
losses = sum(1 for r in rs if r[4] == 0.0)
hold_h = sum((r[5] - r[3]) for r in rs) / n / 3600
ret = pnl / usd if usd else 0
ann = ret / max(hold_h / 8760, 1e-9)
print(f" {tag}: {n:,} prints · ${usd:,.0f} vol · ret {ret*100:+.2f}%"
f" · loss-rate {losses/n:.3%} · avg hold {hold_h:.1f}h · "
f"annualized {ann*100:+,.0f}%")
# 1. incumbent census (>=0.95 specialists)
agg = {}
for w, p, z, ts, pay, lts, a in rows:
if p < 0.95:
continue
d = agg.setdefault(w, [0, 0.0, 0.0, 0.0])
d[0] += 1
d[1] += p * z
d[2] += (pay - p) * z
d[3] += (lts - ts) * p * z # capital-seconds
inc = [(v[1], w, v) for w, v in agg.items()
if v[0] >= 20 and v[1] >= 500] # rank census by VOLUME
inc.sort(reverse=True)
print(f"\nincumbents (>=20 buys @>=0.95, >=$500 vol): {len(inc)}")
tot_vol = sum(v[1] for _, _, v in inc)
print(f"their combined volume: ${tot_vol:,.0f} · "
f"top5 share {sum(v[1] for _,_,v in inc[:5])/max(tot_vol,1):.0%}")
for _, w, (n, usd, pnl, capsec) in inc[:8]:
hold_h = (capsec / usd) / 3600 if usd else 0
print(f" {w[:14]} n={n:<5} vol ${usd:>10,.0f} · ret "
f"{pnl/usd*100:+.2f}% · avg hold {hold_h:.1f}h")
if __name__ == "__main__":
main()