Files
winning-wallet-finder_github/live/dashboard.html
T
jaxperro 3d0bc7f001 Add live/ skilled-wallet scanner + cache; document clean OOS finding
live/: operationalizes the LBS/Yale "skilled ~3%" result against the live
data-api. Enumerate recent liquid markets -> top traders -> candidate pool;
cache every wallet's resolved bets once in DuckDB (~26k wallets / 12.5M bets,
keyed by per-bet resolution time so any cutoff re-scores in seconds); 5-gate
skill funnel (n>=15, z>0, BH-FDR, split-half OOS, MM/bot cap); dashboard +
daily refresh.

Key finding: copying the high-win-rate "favorite-rider" cohort looks +23.6%
in-sample but loses -7.4% once selected on pre-June-1 data only (99% -> 68%
win rate) — selection bias, reproducing the paper's "lucky winners revert"
result on live data. Win rate != edge, again.

wide/: bulk subgraph->DuckDB scanner (survivorship-bias-free over all wallets),
but the public subgraph is frozen at Jan 2026 -> historical tool only.

Large local data (*.duckdb, candidates.json, *_scored.json, history/) gitignored.
README + FINDINGS updated with the current logic and the clean result.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 11:16:20 -06:00

121 lines
35 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html><html lang="en"><head><meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Skilled Wallets — Polymarket</title>
<style>
:root{--bg:#0b0e14;--card:#141925;--line:#222b3a;--dim:#8a97ad;--fg:#e8edf5;
--green:#37d67a;--red:#ff5c6c;--amber:#ffcc55;--blue:#5b9dff;--violet:#b18cff}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);
font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
.wrap{max-width:1180px;margin:0 auto;padding:22px 16px 60px}
h1{font-size:26px;margin:0 0 2px}.sub{color:var(--dim);margin:0 0 18px}
.cards{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;
padding:12px 16px;min-width:120px}.card .k{color:var(--dim);font-size:12px}
.card .v{font-size:22px;font-weight:700;margin-top:2px}
.controls{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
input,select{background:var(--card);border:1px solid var(--line);color:var(--fg);
border-radius:9px;padding:8px 11px;font-size:14px}
input{flex:1;min-width:180px}
.pill{padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}
.value{background:rgba(55,214,122,.15);color:var(--green)}
.favorite{background:rgba(255,204,85,.15);color:var(--amber)}
.balanced{background:rgba(91,157,255,.15);color:var(--blue)}
table{width:100%;border-collapse:collapse;background:var(--card);
border:1px solid var(--line);border-radius:12px;overflow:hidden}
th,td{padding:10px 12px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
th:first-child,td:first-child,th:nth-child(2),td:nth-child(2){text-align:left}
th{color:var(--dim);font-size:12px;cursor:pointer;user-select:none;position:sticky;top:0;background:var(--card)}
th:hover{color:var(--fg)}tr.row:hover{background:#1a2030;cursor:pointer}
td.name{font-weight:600}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
.z{font-weight:700}.mono{font-family:ui-monospace,Menlo,monospace;color:var(--dim);font-size:12px}
.det{background:#10141d;color:var(--dim);font-size:13px}
.det td{text-align:left;white-space:normal}
.bar{display:inline-block;height:7px;border-radius:4px;background:var(--violet);vertical-align:middle}
.note{color:var(--dim);font-size:12px;margin-top:14px;line-height:1.6}
.trade{display:flex;gap:8px;align-items:center;padding:3px 0;border-bottom:1px solid var(--line)}
.b{color:var(--green)}.s{color:var(--red)}
</style></head><body><div class="wrap">
<h1>Skilled Wallets <span style="color:var(--dim);font-weight:400;font-size:18px">· Polymarket</span></h1>
<p class="sub">107 wallets that beat their own entry prices and held up out-of-sample · generated 2026-06-16 07:37</p>
<div class="cards">
<div class="card"><div class="k">Validated wallets</div><div class="v">107</div></div>
<div class="card"><div class="k">Median z</div><div class="v">4.0</div></div>
<div class="card"><div class="k">Median OOS z</div><div class="v" style="color:var(--green)">3.0</div></div>
<div class="card"><div class="k">Value / longshot</div><div class="v" style="color:var(--green)">69</div></div>
<div class="card"><div class="k">Favorite-rider</div><div class="v" style="color:var(--amber)">21</div></div>
</div>
<div class="controls">
<input id="q" placeholder="search name or address…">
<select id="arch"><option value="">All archetypes</option>
<option value="value">Value / longshot</option>
<option value="balanced">Balanced</option>
<option value="favorite">Favorite-rider</option></select>
<select id="sort">
<option value="z">Sort: z (skill)</option>
<option value="z_oos">Sort: out-of-sample z</option>
<option value="band_0204">Sort: alpha-zone %</option>
<option value="n">Sort: # bets</option>
<option value="win_rate">Sort: win rate</option>
</select>
</div>
<table id="tbl"><thead><tr>
<th data-k="rank">#</th><th data-k="name">Wallet</th>
<th data-k="z">z</th><th data-k="z_oos">OOS z</th>
<th data-k="n">bets</th><th data-k="win_rate">win%</th>
<th data-k="avg_entry">avg entry</th><th data-k="band_0204">alpha 0.20.4</th>
<th data-k="arch">type</th>
</tr></thead><tbody id="body"></tbody></table>
<p class="note"><b>How to read it.</b> <b>z</b> = how far the wallet beat the prices it paid (skill; >3 is strong). <b>OOS z</b> = whether that skill held on held-out bets — the gate that separates real edge from luck. <b>Alpha 0.20.4</b> = share of bets in the underdog value zone where research finds real edge concentrates. <span class="value" style="padding:1px 7px">Value</span> wallets win by beating longshot/mid prices (the copyable alpha); <span class="favorite" style="padding:1px 7px">Favorite-rider</span> wallets post high win rates buying near-certain favorites (real but thin, hard to copy). Click any row for live recent trades. Not financial advice — split-half OOS, forward-track before sizing.</p>
</div>
<script>
const DATA=[{"wallet": "0x5f390e4b7d6f06d6756a6c92afdbf7b3176aa78c", "name": "oVyg7f", "weight": 0.0368, "tier": "validated", "z": 18.49, "z_oos": 8.38, "n": 2000, "win_rate": 66.0, "avg_entry": 0.57, "band_0204": 0.02, "rank": 1, "arch": "balanced", "wins": 1320}, {"wallet": "0xf419556a9758214628edff29dce8f39a8aa13ce7", "name": "2j289uUmAio7ap245975", "weight": 0.0355, "tier": "validated", "z": 17.85, "z_oos": 9.4, "n": 2091, "win_rate": 69.7, "avg_entry": 0.51, "band_0204": 0.13, "rank": 2, "arch": "balanced", "wins": 1457}, {"wallet": "0x2257901897e83d39e778fa86d568dc1cd9a2dca2", "name": "iuii899889", "weight": 0.0198, "tier": "validated", "z": 9.97, "z_oos": 6.51, "n": 1539, "win_rate": 50.0, "avg_entry": 0.38, "band_0204": 0.25, "rank": 3, "arch": "value", "wins": 770}, {"wallet": "0x9ace6559d0c1fe92c360503c6dbcd962e15f0f16", "name": "Jach9394", "weight": 0.0192, "tier": "validated", "z": 9.64, "z_oos": 7.7, "n": 2128, "win_rate": 47.8, "avg_entry": 0.38, "band_0204": 0.46, "rank": 4, "arch": "value", "wins": 1017}, {"wallet": "0xda24f0caf5766fc36df8ac2f6ae3a567b71a9f1f", "name": "Thewinwin", "weight": 0.0183, "tier": "validated", "z": 9.18, "z_oos": 6.84, "n": 2001, "win_rate": 41.0, "avg_entry": 0.32, "band_0204": 0.31, "rank": 5, "arch": "value", "wins": 820}, {"wallet": "0x14d2bf01e3e7bac9b1799265db3c7d8a993dfa3e", "name": "8998yueyye", "weight": 0.0181, "tier": "validated", "z": 9.09, "z_oos": 5.89, "n": 1532, "win_rate": 49.9, "avg_entry": 0.39, "band_0204": 0.25, "rank": 6, "arch": "value", "wins": 764}, {"wallet": "0x97892305f3b5569c32d16f4ed70f840dd7e61ae7", "name": "0x97892305f3b5569c32d16f4ed70F840dd7e61ae7-1770916318891", "weight": 0.0177, "tier": "validated", "z": 8.9, "z_oos": 6.92, "n": 1806, "win_rate": 44.5, "avg_entry": 0.35, "band_0204": 0.51, "rank": 7, "arch": "value", "wins": 804}, {"wallet": "0xf820ceebb69255955e9d04367259c84e8e7f0485", "name": "2iq", "weight": 0.0173, "tier": "validated", "z": 8.68, "z_oos": 13.09, "n": 2000, "win_rate": 16.8, "avg_entry": 0.11, "band_0204": 0.1, "rank": 8, "arch": "value", "wins": 336}, {"wallet": "0x49818089c6e2755e0e300a48a8dc4747cf9cd2b4", "name": "0x49818089\u2026", "weight": 0.0165, "tier": "validated", "z": 8.3, "z_oos": 4.81, "n": 1334, "win_rate": 61.6, "avg_entry": 0.51, "band_0204": 0.26, "rank": 9, "arch": "balanced", "wins": 822}, {"wallet": "0x1b44945f8992fcea2b43034557e47d11827fd8de", "name": "BrickThrower", "weight": 0.0152, "tier": "validated", "z": 7.65, "z_oos": 5.57, "n": 2063, "win_rate": 45.1, "avg_entry": 0.38, "band_0204": 0.23, "rank": 10, "arch": "value", "wins": 930}, {"wallet": "0x2f633efb75256a2f2445110c8978684ab8936643", "name": "AI.AGENT.2026", "weight": 0.0144, "tier": "validated", "z": 7.24, "z_oos": 4.26, "n": 573, "win_rate": 92.0, "avg_entry": 0.82, "band_0204": 0.05, "rank": 11, "arch": "balanced", "wins": 527}, {"wallet": "0x753e554feb327f9d4f7bff8a6ebdced98fbd2046", "name": "hfdffdhr", "weight": 0.0135, "tier": "validated", "z": 6.78, "z_oos": 4.21, "n": 1396, "win_rate": 49.2, "avg_entry": 0.41, "band_0204": 0.2, "rank": 12, "arch": "value", "wins": 687}, {"wallet": "0xc684828f6b03487759ced2ebdd975f91f3532228", "name": "oliman2", "weight": 0.0126, "tier": "validated", "z": 6.31, "z_oos": 3.63, "n": 1933, "win_rate": 52.0, "avg_entry": 0.47, "band_0204": 0.15, "rank": 13, "arch": "value", "wins": 1005}, {"wallet": "0xd82273662ba061a46f62a479de7303266f98000f", "name": "1234zxcv07", "weight": 0.0126, "tier": "validated", "z": 6.31, "z_oos": 3.09, "n": 1054, "win_rate": 71.2, "avg_entry": 0.64, "band_0204": 0.12, "rank": 14, "arch": "balanced", "wins": 750}, {"wallet": "0x751a2b86cab503496efd325c8344e10159349ea1", "name": "Sharky6999", "weight": 0.0121, "tier": "validated", "z": 6.07, "z_oos": 3.13, "n": 2002, "win_rate": 96.3, "avg_entry": 0.94, "band_0204": 0.01, "rank": 15, "arch": "favorite", "wins": 1928}, {"wallet": "0xc850cf70d9da621ff0c219f625c9623f88b78c51", "name": "0xc850cf70\u2026", "weight": 0.0119, "tier": "validated", "z": 5.97, "z_oos": 3.98, "n": 2000, "win_rate": 50.1, "avg_entry": 0.44, "band_0204": 0.32, "rank": 16, "arch": "value", "wins": 1002}, {"wallet": "0xba8c5fbcc5f58b0e4ae0c1413e0413f8c803e77d", "name": "Rock.San", "weight": 0.0116, "tier": "validated", "z": 5.81, "z_oos": 2.63, "n": 2001, "win_rate": 95.8, "avg_entry": 0.93, "band_0204": 0.01, "rank": 17, "arch": "favorite", "wins": 1917}, {"wallet": "0x85c0272a4c6334e4cb1212b4e5cda66e68519231", "name": "ferrusqwed", "weight": 0.0111, "tier": "validated", "z": 5.57, "z_oos": 3.46, "n": 2229, "win_rate": 48.7, "avg_entry": 0.43, "band_0204": 0.27, "rank": 18, "arch": "value", "wins": 1086}, {"wallet": "0xa75f077c6e2510b020967c6230bac2bf342300f0", "name": "0xa75f077c\u2026", "weight": 0.0111, "tier": "validated", "z": 5.56, "z_oos": 4.03, "n": 1772, "win_rate": 49.4, "avg_entry": 0.43, "band_0204": 0.33, "rank": 19, "arch": "value", "wins": 875}, {"wallet": "0x18954a8003ebbbdaa4d9190cd2505382a5b902fb", "name": "Si-gambler", "weight": 0.0109, "tier": "validated", "z": 5.48, "z_oos": 4.07, "n": 1651, "win_rate": 40.4, "avg_entry": 0.35, "band_0204": 0.28, "rank": 20, "arch": "value", "wins": 667}, {"wallet": "0xc78cdeb598f0bb8bae62a80e8134e842b3c44455", "name": "kjjdhfgsg", "weight": 0.0109, "tier": "validated", "z": 5.48, "z_oos": 0.75, "n": 1182, "win_rate": 49.8, "avg_entry": 0.42, "band_0204": 0.23, "rank": 21, "arch": "value", "wins": 589}, {"wallet": "0x30dc7f0cfa4c98590b1c77dd92c82570efa5eb4b", "name": "napahp", "weight": 0.0107, "tier": "validated", "z": 5.4, "z_oos": 2.21, "n": 2243, "win_rate": 48.2, "avg_entry": 0.43, "band_0204": 0.35, "rank": 22, "arch": "value", "wins": 1081}, {"wallet": "0x8548f0fae7636fc17ca6bb2cbae39cbd4fbce4c1", "name": "madoka123", "weight": 0.0103, "tier": "validated", "z": 5.2, "z_oos": 5.3, "n": 2012, "win_rate": 94.1, "avg_entry": 0.92, "band_0204": 0.01, "rank": 23, "arch": "favorite", "wins": 1893}, {"wallet": "0x8d650d146740463611db1f3974ae9b922953ce8f", "name": "PWBR", "weight": 0.0102, "tier": "validated", "z": 5.15, "z_oos": 2.77, "n": 2016, "win_rate": 39.4, "avg_entry": 0.35, "band_0204": 0.11, "rank": 24, "arch": "value", "wins": 794}, {"wallet": "0xb595d09ce5bbc4d39e3b3d04e80c402d2c8d5922", "name": "0xB595d09Ce5bBc4d39E3b3D04E80C402d2C8D5922-1769777706105", "weight": 0.0101, "tier": "validated", "z": 5.08, "z_oos": 3.45, "n": 2000, "win_rate": 99.9, "avg_entry": 0.99, "band_0204": 0.0, "rank": 25, "arch": "favorite", "wins": 1998}, {"wallet": "0x858c18cd25e722892a60506a3e54c4ecbca84936", "name": "52434624366255247", "weight": 0.0101, "tier": "validated", "z": 5.06, "z_oos": 4.15, "n": 2000, "win_rate": 98.6, "avg_entry": 0.97, "band_0204": 0.0, "rank": 26, "arch": "favorite", "wins": 1972}, {"wallet": "0x8a37fe3a49a36de9facd04bd09ee379211f7c99c", "name": "ggmggn", "weight": 0.01, "tier": "validated", "z": 5.01, "z_oos": 4.76, "n": 2000, "win_rate": 89.2, "avg_entry": 0.88, "band_0204": 0.0, "rank": 27, "arch": "favorite", "wins": 1784}, {"wallet": "0x7ca56b03105371839e4a3d98f4c1059d10d784bc", "name": "MyBettingFuture", "weight": 0.01, "tier": "validated", "z": 5.0, "z_oos": 3.59, "n": 2019, "win_rate": 98.7, "avg_entry": 0.97, "band_0204": 0.0, "rank": 28, "arch": "favorite", "wins": 1993}, {"wallet": "0xab8a8dafae74a018683748d070cb9e349cc2154e", "name": "0xaB8A8dafAE74A018683748d070Cb9E349CC2154e-1771847292775", "weight": 0.0099, "tier": "validated", "z": 4.99, "z_oos": 2.13, "n": 1943, "win_rate": 38.4, "avg_entry": 0.34, "band_0204": 0.18, "rank": 29, "arch": "value", "wins": 746}, {"wallet": "0xe52785eab686a52fa47b9396d3343e2908315471", "name": "0xe52785eaB686a52FA47B9396D3343e2908315471-1775532473233", "weight": 0.0099, "tier": "validated", "z": 4.97, "z_oos": 2.98, "n": 273, "win_rate": 36.6, "avg_entry": 0.25, "band_0204": 0.15, "rank": 30, "arch": "value", "wins": 100}, {"wallet": "0x472e77443a5a8693f6bd0dad933a61285bd7ae19", "name": "ifailedmath", "weight": 0.0099, "tier": "validated", "z": 4.97, "z_oos": 6.42, "n": 2032, "win_rate": 53.3, "avg_entry": 0.49, "band_0204": 0.14, "rank": 31, "arch": "value", "wins": 1083}, {"wallet": "0xf3d54ccedcd08c9a203d28e332275e50770fdde9", "name": "0xf3d54cce\u2026", "weight": 0.0096, "tier": "validated", "z": 4.83, "z_oos": 3.96, "n": 1498, "win_rate": 49.3, "avg_entry": 0.43, "band_0204": 0.32, "rank": 32, "arch": "value", "wins": 739}, {"wallet": "0xcaee6125904f1ba1ee3f829328d0779f92d20900", "name": "Dedis", "weight": 0.0096, "tier": "validated", "z": 4.82, "z_oos": 4.9, "n": 859, "win_rate": 31.3, "avg_entry": 0.25, "band_0204": 0.24, "rank": 33, "arch": "value", "wins": 269}, {"wallet": "0x5f7832a6d8621345922490c74f4e525db20cbfca", "name": "pupe", "weight": 0.0095, "tier": "validated", "z": 4.79, "z_oos": 2.95, "n": 2000, "win_rate": 41.5, "avg_entry": 0.37, "band_0204": 0.18, "rank": 34, "arch": "value", "wins": 830}, {"wallet": "0x6c74116b34d77be18754a463df34a06f1b2f8a52", "name": "SUNDAD", "weight": 0.0095, "tier": "validated", "z": 4.78, "z_oos": 1.6, "n": 903, "win_rate": 26.2, "avg_entry": 0.2, "band_0204": 0.38, "rank": 35, "arch": "value", "wins": 237}, {"wallet": "0x9819e3e2e1992cb0d6cc1742df4f4d81af314951", "name": "AfganNakrishe4", "weight": 0.0095, "tier": "validated", "z": 4.75, "z_oos": 4.61, "n": 2010, "win_rate": 43.7, "avg_entry": 0.39, "band_0204": 0.29, "rank": 36, "arch": "value", "wins": 878}, {"wallet": "0x6ab434242be94f834de8d38ba2de0b4cbfdaa81b", "name": "STAYCALM", "weight": 0.0093, "tier": "validated", "z": 4.66, "z_oos": 4.08, "n": 2007, "win_rate": 94.0, "avg_entry": 0.92, "band_0204": 0.01, "rank": 37, "arch": "favorite", "wins": 1887}, {"wallet": "0x558f2f82cf0394c28ce3c8e117ee747aeab51a56", "name": "LesterDiamond", "weight": 0.0093, "tier": "validated", "z": 4.66, "z_oos": 5.48, "n": 2168, "win_rate": 59.5, "avg_entry": 0.57, "band_0204": 0.03, "rank": 38, "arch": "balanced", "wins": 1290}, {"wallet": "0xa16a1302ca05463f30faebeb5c045767fde233a1", "name": "KimiTalibantonelli", "weight": 0.0092, "tier": "validated", "z": 4.64, "z_oos": 3.82, "n": 2005, "win_rate": 99.2, "avg_entry": 0.98, "band_0204": 0.0, "rank": 39, "arch": "favorite", "wins": 1989}, {"wallet": "0x7a5d94f83ff0195387eaf9f4463433d03eda54db", "name": "mishipolis", "weight": 0.0091, "tier": "validated", "z": 4.59, "z_oos": 4.2, "n": 2140, "win_rate": 54.4, "avg_entry": 0.5, "band_0204": 0.2, "rank": 40, "arch": "balanced", "wins": 1164}, {"wallet": "0xdbdd45150249e229eb4ca8aa48a30dca21faa5de", "name": "0xdbdd45150249e229eB4cA8aa48A30Dca21Faa5de-1757094771846", "weight": 0.0091, "tier": "validated", "z": 4.57, "z_oos": 3.4, "n": 2040, "win_rate": 52.2, "avg_entry": 0.48, "band_0204": 0.22, "rank": 41, "arch": "value", "wins": 1065}, {"wallet": "0x13a12ebadc50f6fa42c8f2595997d8adf329d9bc", "name": "12398498123498189239843", "weight": 0.0086, "tier": "validated", "z": 4.34, "z_oos": 3.12, "n": 2001, "win_rate": 69.2, "avg_entry": 0.65, "band_0204": 0.12, "rank": 42, "arch": "balanced", "wins": 1385}, {"wallet": "0xdf6539d1fadb951a02a999d31a72e0cd7fd9c36d", "name": "nndk", "weight": 0.0086, "tier": "validated", "z": 4.33, "z_oos": 2.83, "n": 2073, "win_rate": 48.5, "avg_entry": 0.45, "band_0204": 0.42, "rank": 43, "arch": "value", "wins": 1005}, {"wallet": "0x54e00a1ceb7f3b7c0bd240d1deeb0edb6b0eb02c", "name": "0x54E00a1Ceb7f3b7c0bD240D1Deeb0edB6B0eb02C-1761391047632", "weight": 0.0086, "tier": "validated", "z": 4.31, "z_oos": 2.57, "n": 2016, "win_rate": 52.5, "avg_entry": 0.49, "band_0204": 0.37, "rank": 44, "arch": "value", "wins": 1058}, {"wallet": "0x82b59bbdd9ec1aaa995ee41d5d49b7de0a5f6f5f", "name": "ldsam", "weight": 0.0085, "tier": "validated", "z": 4.29, "z_oos": 4.62, "n": 2000, "win_rate": 48.2, "avg_entry": 0.44, "band_0204": 0.29, "rank": 45, "arch": "value", "wins": 964}, {"wallet": "0x773e8ca01ad9750283dbfb335d2c6670bc817502", "name": "meow991", "weight": 0.0085, "tier": "validated", "z": 4.27, "z_oos": 7.1, "n": 687, "win_rate": 62.7, "avg_entry": 0.56, "band_0204": 0.17, "rank": 46, "arch": "balanced", "wins": 431}, {"wallet": "0xee65685de42f8de9a03b4c53ee77d56a20d2cfc9", "name": "0x50f7", "weight": 0.0084, "tier": "validated", "z": 4.2, "z_oos": 2.63, "n": 2209, "win_rate": 39.2, "avg_entry": 0.37, "band_0204": 0.01, "rank": 47, "arch": "value", "wins": 866}, {"wallet": "0xbb9f224569285cb57f433bbe2e71f9b8a11b557b", "name": "rocky42014", "weight": 0.0084, "tier": "validated", "z": 4.2, "z_oos": 2.87, "n": 2023, "win_rate": 43.2, "avg_entry": 0.39, "band_0204": 0.25, "rank": 48, "arch": "value", "wins": 874}, {"wallet": "0xb36b3af57e480c750bcebed7be2d8afd24380cb1", "name": "Didiaodiao", "weight": 0.0083, "tier": "validated", "z": 4.17, "z_oos": 3.13, "n": 2000, "win_rate": 48.1, "avg_entry": 0.44, "band_0204": 0.25, "rank": 49, "arch": "value", "wins": 962}, {"wallet": "0xb2b4ec88c02de44d6ab61eb6c4141fe8170e512d", "name": "0xb2b4ec88\u2026", "weight": 0.0083, "tier": "validated", "z": 4.15, "z_oos": 1.97, "n": 2000, "win_rate": 46.5, "avg_entry": 0.42, "band_0204": 0.28, "rank": 50, "arch": "value", "wins": 930}, {"wallet": "0x8428101d6979dcc97de6c7474b0535ceb558b41f", "name": "888SSSS", "weight": 0.0082, "tier": "validated", "z": 4.14, "z_oos": 1.8, "n": 1825, "win_rate": 53.8, "avg_entry": 0.49, "band_0204": 0.24, "rank": 51, "arch": "value", "wins": 982}, {"wallet": "0x8cd9439c1205da4c9ba18559cdcfe2e12278190e", "name": "kaslas", "weight": 0.0082, "tier": "validated", "z": 4.13, "z_oos": 3.14, "n": 2038, "win_rate": 50.6, "avg_entry": 0.47, "band_0204": 0.31, "rank": 52, "arch": "value", "wins": 1031}, {"wallet": "0x875e974594985283c999765461bf2e15b4dee6b5", "name": "CorkisGeldbeutel", "weight": 0.0081, "tier": "validated", "z": 4.05, "z_oos": 3.32, "n": 2001, "win_rate": 97.2, "avg_entry": 0.96, "band_0204": 0.01, "rank": 53, "arch": "favorite", "wins": 1945}, {"wallet": "0xc095b5100653f0c34337c718f201dae96d762d65", "name": "daddypow", "weight": 0.008, "tier": "validated", "z": 4.0, "z_oos": 2.37, "n": 2000, "win_rate": 98.8, "avg_entry": 0.98, "band_0204": 0.0, "rank": 54, "arch": "favorite", "wins": 1976}, {"wallet": "0x0cfe444ab50e01b14ee15ff5e677a1dd68cbd5c3", "name": "0x0CFE444Ab50e01B14EE15ff5e677a1dd68cbD5c3-1778164468132", "weight": 0.008, "tier": "validated", "z": 4.0, "z_oos": 0.51, "n": 902, "win_rate": 44.8, "avg_entry": 0.39, "band_0204": 0.27, "rank": 55, "arch": "value", "wins": 404}, {"wallet": "0x616d3f9819deb5450fb34315221f23d64f36bb9b", "name": "JackOfAllTrades3130", "weight": 0.008, "tier": "validated", "z": 4.0, "z_oos": 3.01, "n": 2007, "win_rate": 99.2, "avg_entry": 0.98, "band_0204": 0.0, "rank": 56, "arch": "favorite", "wins": 1991}, {"wallet": "0x6a88c5ecd262e2c42e78bad8e6db7ab3c4e4b859", "name": "pelik", "weight": 0.0079, "tier": "validated", "z": 3.99, "z_oos": 3.99, "n": 2004, "win_rate": 100.0, "avg_entry": 1.0, "band_0204": 0.0, "rank": 57, "arch": "favorite", "wins": 2004}, {"wallet": "0xb66dc120c79ec7282b48f938633c942567667ec1", "name": "0xb66dc120c79ec7282b48f938633c94256", "weight": 0.0079, "tier": "validated", "z": 3.97, "z_oos": 2.39, "n": 2317, "win_rate": 43.4, "avg_entry": 0.4, "band_0204": 0.26, "rank": 58, "arch": "value", "wins": 1006}, {"wallet": "0x51928a6454475e6b0d883f5d6ba663670c83df62", "name": "sfafdsaferw", "weight": 0.0078, "tier": "validated", "z": 3.92, "z_oos": 1.13, "n": 2000, "win_rate": 52.1, "avg_entry": 0.49, "band_0204": 0.18, "rank": 59, "arch": "value", "wins": 1042}, {"wallet": "0x08730443345e11c078c5b2597ce3c0f06af609e8", "name": "Anne666", "weight": 0.0078, "tier": "validated", "z": 3.9, "z_oos": 2.78, "n": 2016, "win_rate": 0.4, "avg_entry": 0.0, "band_0204": 0.0, "rank": 60, "arch": "value", "wins": 8}, {"wallet": "0x40a75505ba4e7deb9bf55e839e5a34dd6c9becb7", "name": "Dreamwire", "weight": 0.0078, "tier": "validated", "z": 3.9, "z_oos": 2.9, "n": 2008, "win_rate": 81.3, "avg_entry": 0.8, "band_0204": 0.02, "rank": 61, "arch": "balanced", "wins": 1633}, {"wallet": "0x48270d81cfe598ae0379ca535a26dc41e3e9080d", "name": "DiogoBNF566", "weight": 0.0077, "tier": "validated", "z": 3.86, "z_oos": 3.3, "n": 2014, "win_rate": 95.4, "avg_entry": 0.94, "band_0204": 0.01, "rank": 62, "arch": "favorite", "wins": 1921}, {"wallet": "0x1c7b8b9e0c9a5215d5b84553130029e5d1ae315d", "name": "ksamlsa", "weight": 0.0077, "tier": "validated", "z": 3.85, "z_oos": 3.54, "n": 2000, "win_rate": 50.8, "avg_entry": 0.47, "band_0204": 0.3, "rank": 63, "arch": "value", "wins": 1016}, {"wallet": "0x17f0b79bae4c986b854f6be30f1fca8c484dea12", "name": "bdmina", "weight": 0.0076, "tier": "validated", "z": 3.81, "z_oos": 2.86, "n": 2003, "win_rate": 44.2, "avg_entry": 0.4, "band_0204": 0.22, "rank": 64, "arch": "value", "wins": 885}, {"wallet": "0x2ecb34e1cb95b3c8d9d3e2905668d3eee03a7645", "name": "AlphaPengu1n", "weight": 0.0075, "tier": "validated", "z": 3.78, "z_oos": 3.57, "n": 2170, "win_rate": 45.6, "avg_entry": 0.42, "band_0204": 0.25, "rank": 65, "arch": "value", "wins": 990}, {"wallet": "0xdeca32428d5cf4b1c4d7266a950e20791676ddd5", "name": "durrrrrrrr", "weight": 0.0072, "tier": "validated", "z": 3.64, "z_oos": 2.45, "n": 2048, "win_rate": 31.6, "avg_entry": 0.29, "band_0204": 0.02, "rank": 66, "arch": "value", "wins": 647}, {"wallet": "0x5a218c7ad04135830a45c41aaed7294df7809318", "name": "balthazar", "weight": 0.0072, "tier": "validated", "z": 3.62, "z_oos": 3.98, "n": 2384, "win_rate": 49.0, "avg_entry": 0.47, "band_0204": 0.06, "rank": 67, "arch": "value", "wins": 1168}, {"wallet": "0xd92f13f9c20e5739aae98032e443b13d9d823d83", "name": "follwmee", "weight": 0.0072, "tier": "validated", "z": 3.6, "z_oos": 1.88, "n": 2040, "win_rate": 48.8, "avg_entry": 0.45, "band_0204": 0.22, "rank": 68, "arch": "value", "wins": 996}, {"wallet": "0xb4d250f58c26840e09723a83ce9c8149aa32ce99", "name": "alpheclabs", "weight": 0.0071, "tier": "validated", "z": 3.57, "z_oos": 3.4, "n": 2035, "win_rate": 50.5, "avg_entry": 0.47, "band_0204": 0.24, "rank": 69, "arch": "value", "wins": 1028}, {"wallet": "0x51f9122c7ed2ceb749d8d63617153e98d3ba19a0", "name": "kozelblack", "weight": 0.007, "tier": "validated", "z": 3.52, "z_oos": 3.34, "n": 2018, "win_rate": 98.3, "avg_entry": 0.97, "band_0204": 0.0, "rank": 70, "arch": "favorite", "wins": 1984}, {"wallet": "0x9219dd565d7521e95f273b7eea68dbb08d40027c", "name": "aka-baka-tiki-taka", "weight": 0.007, "tier": "validated", "z": 3.51, "z_oos": 2.25, "n": 2000, "win_rate": 98.5, "avg_entry": 0.97, "band_0204": 0.0, "rank": 71, "arch": "favorite", "wins": 1970}, {"wallet": "0x1d99336f5c7dabec1b890cb2237f9b4aa139b04c", "name": "traxeast", "weight": 0.007, "tier": "validated", "z": 3.5, "z_oos": 1.4, "n": 2001, "win_rate": 46.8, "avg_entry": 0.43, "band_0204": 0.19, "rank": 72, "arch": "value", "wins": 936}, {"wallet": "0xa5427f80816486ad3e4c80aad9711f87b8b5172c", "name": "0xA5427F80816486AD3E4c80AAd9711f87B8B5172C-1772701375450", "weight": 0.0069, "tier": "validated", "z": 3.49, "z_oos": 3.02, "n": 2001, "win_rate": 49.6, "avg_entry": 0.46, "band_0204": 0.37, "rank": 73, "arch": "value", "wins": 992}, {"wallet": "0x31121402eafd4a157141db8f84b5da297ff63fcd", "name": "yeagerist", "weight": 0.0068, "tier": "validated", "z": 3.41, "z_oos": 3.07, "n": 2005, "win_rate": 98.5, "avg_entry": 0.98, "band_0204": 0.0, "rank": 74, "arch": "favorite", "wins": 1975}, {"wallet": "0x7a3fb8c5ad2af4c621b2138d9579410343976712", "name": "0x7a3FB8C5aD2aF4C621B2138D9579410343976712-1766367891961", "weight": 0.0067, "tier": "validated", "z": 3.38, "z_oos": 2.99, "n": 2011, "win_rate": 47.4, "avg_entry": 0.44, "band_0204": 0.29, "rank": 75, "arch": "value", "wins": 953}, {"wallet": "0x6d3c9fe9cb9a7e006c99b13bdd0451ab5059c74a", "name": "0x6D3C9fE9CB9A7e006C99b13bDd0451aB5059C74a-1775205794013", "weight": 0.0066, "tier": "validated", "z": 3.34, "z_oos": 0.16, "n": 1292, "win_rate": 30.0, "avg_entry": 0.26, "band_0204": 0.4, "rank": 76, "arch": "value", "wins": 388}, {"wallet": "0x34f4c3118569f32ef02441326305bca0ff5816bd", "name": "Walede-", "weight": 0.0066, "tier": "validated", "z": 3.34, "z_oos": 0.89, "n": 2116, "win_rate": 30.4, "avg_entry": 0.27, "band_0204": 0.47, "rank": 77, "arch": "value", "wins": 643}, {"wallet": "0x50c0959535cf830f6b73c5366a02f2cce3aa1600", "name": "LidoRzitoni", "weight": 0.0066, "tier": "validated", "z": 3.34, "z_oos": 1.56, "n": 213, "win_rate": 34.7, "avg_entry": 0.26, "band_0204": 0.31, "rank": 78, "arch": "value", "wins": 74}, {"wallet": "0x93173b86dbe2f2dd9922c751806d306b48cf5a5f", "name": "trader-93173b86", "weight": 0.0066, "tier": "validated", "z": 3.33, "z_oos": 1.94, "n": 2007, "win_rate": 49.3, "avg_entry": 0.46, "band_0204": 0.27, "rank": 79, "arch": "value", "wins": 989}, {"wallet": "0xe75b11fa4fa01db5f11743e5f40df6c23b8e97eb", "name": "sleepyzs", "weight": 0.0066, "tier": "validated", "z": 3.3, "z_oos": 1.46, "n": 2001, "win_rate": 99.0, "avg_entry": 0.98, "band_0204": 0.0, "rank": 80, "arch": "favorite", "wins": 1981}, {"wallet": "0x46b2f8a865a3572a435813e747e22cce0e835977", "name": "quantssss", "weight": 0.0065, "tier": "validated", "z": 3.29, "z_oos": 2.37, "n": 2007, "win_rate": 49.2, "avg_entry": 0.46, "band_0204": 0.39, "rank": 81, "arch": "value", "wins": 987}, {"wallet": "0x536be02af900fe046fa708c8059c04f737a2cee3", "name": "fill-or-fok-me", "weight": 0.0065, "tier": "validated", "z": 3.28, "z_oos": 2.24, "n": 2017, "win_rate": 48.3, "avg_entry": 0.45, "band_0204": 0.34, "rank": 82, "arch": "value", "wins": 974}, {"wallet": "0x2c697b1d8e5546aef19ed939522af03d90a3a9a2", "name": "traxup", "weight": 0.0065, "tier": "validated", "z": 3.27, "z_oos": 1.39, "n": 1720, "win_rate": 49.7, "avg_entry": 0.46, "band_0204": 0.19, "rank": 83, "arch": "value", "wins": 855}, {"wallet": "0x25d8c73a5ebeb6db934d8da68592ba3d4f1ca71f", "name": "none910", "weight": 0.0064, "tier": "validated", "z": 3.24, "z_oos": 2.47, "n": 1463, "win_rate": 47.8, "avg_entry": 0.44, "band_0204": 0.1, "rank": 84, "arch": "value", "wins": 699}, {"wallet": "0xca2d072efd5e4f02cd1a3539967ed1ab308539ed", "name": "Originator", "weight": 0.0064, "tier": "validated", "z": 3.2, "z_oos": 2.12, "n": 2000, "win_rate": 51.3, "avg_entry": 0.48, "band_0204": 0.22, "rank": 85, "arch": "value", "wins": 1026}, {"wallet": "0xcea972195c2d011a5525df117abf0230e05157c6", "name": "VelonLabs", "weight": 0.0063, "tier": "validated", "z": 3.18, "z_oos": 3.95, "n": 1391, "win_rate": 34.4, "avg_entry": 0.31, "band_0204": 0.17, "rank": 86, "arch": "value", "wins": 479}, {"wallet": "0xb410255a64fd72acdb7e57b8f65999865a017736", "name": "Lexma", "weight": 0.0062, "tier": "validated", "z": 3.13, "z_oos": 2.86, "n": 2038, "win_rate": 82.4, "avg_entry": 0.81, "band_0204": 0.02, "rank": 87, "arch": "balanced", "wins": 1679}, {"wallet": "0xe1d6b51521bd4365769199f392f9818661bd907c", "name": "0xe1D6b51521Bd4365769199f392F9818661BD907", "weight": 0.0062, "tier": "validated", "z": 3.11, "z_oos": 2.8, "n": 2119, "win_rate": 48.0, "avg_entry": 0.45, "band_0204": 0.24, "rank": 88, "arch": "value", "wins": 1017}, {"wallet": "0xde0463ea7f611b065e8ab06bbfbddad75e6dfa37", "name": "mwenya", "weight": 0.0061, "tier": "validated", "z": 3.08, "z_oos": 2.92, "n": 2051, "win_rate": 50.6, "avg_entry": 0.48, "band_0204": 0.16, "rank": 89, "arch": "value", "wins": 1038}, {"wallet": "0x323965e26fc0573234d6faa6819b6e886e986e1b", "name": "maxev", "weight": 0.006, "tier": "validated", "z": 3.04, "z_oos": 1.77, "n": 2006, "win_rate": 99.2, "avg_entry": 0.98, "band_0204": 0.0, "rank": 90, "arch": "favorite", "wins": 1990}, {"wallet": "0xddb0629096a8a03f490b6572c06f2ee76465f95a", "name": "IVY56", "weight": 0.006, "tier": "validated", "z": 3.01, "z_oos": 0.18, "n": 2012, "win_rate": 48.7, "avg_entry": 0.47, "band_0204": 0.06, "rank": 91, "arch": "value", "wins": 980}, {"wallet": "0xfe37315964b9a43b48b4ece3882a08f226619d5c", "name": "kitsune222", "weight": 0.006, "tier": "validated", "z": 3.01, "z_oos": 1.89, "n": 635, "win_rate": 50.6, "avg_entry": 0.45, "band_0204": 0.24, "rank": 92, "arch": "value", "wins": 321}, {"wallet": "0xd189664c5308903476f9f079820431e4fd7d06f4", "name": "rwo", "weight": 0.006, "tier": "validated", "z": 2.99, "z_oos": 1.75, "n": 2000, "win_rate": 53.6, "avg_entry": 0.51, "band_0204": 0.07, "rank": 93, "arch": "balanced", "wins": 1072}, {"wallet": "0x47138dc1eef25f1ea91f3b2fda0e0f455c634d21", "name": "dsknadkasnkfjs", "weight": 0.006, "tier": "validated", "z": 2.99, "z_oos": 1.61, "n": 2001, "win_rate": 44.1, "avg_entry": 0.41, "band_0204": 0.26, "rank": 94, "arch": "value", "wins": 882}, {"wallet": "0xf4f88a1e25ff5dfae68326eb62049d6a1b7c5bf1", "name": "cosmicsteaks", "weight": 0.0059, "tier": "validated", "z": 2.97, "z_oos": 2.2, "n": 2035, "win_rate": 43.8, "avg_entry": 0.41, "band_0204": 0.32, "rank": 95, "arch": "value", "wins": 891}, {"wallet": "0x86520db4175cf4e7f7f646cae22365f1f3b61ccb", "name": "traxnorth", "weight": 0.0058, "tier": "validated", "z": 2.92, "z_oos": 1.0, "n": 2001, "win_rate": 42.7, "avg_entry": 0.4, "band_0204": 0.26, "rank": 96, "arch": "value", "wins": 854}, {"wallet": "0xb7ab821f037a4c8deb9b23b8001a4be985d116d0", "name": "funfacts", "weight": 0.0058, "tier": "validated", "z": 2.92, "z_oos": 3.07, "n": 2015, "win_rate": 63.7, "avg_entry": 0.61, "band_0204": 0.05, "rank": 97, "arch": "balanced", "wins": 1284}, {"wallet": "0x4caee221267f30efdc751bbca7fdb7ffef10c482", "name": "Hinton07", "weight": 0.0057, "tier": "validated", "z": 2.88, "z_oos": 1.71, "n": 2011, "win_rate": 90.0, "avg_entry": 0.88, "band_0204": 0.0, "rank": 98, "arch": "favorite", "wins": 1810}, {"wallet": "0x1d949489f736378cbde40db18c093c5cff459100", "name": "BullishBarb", "weight": 0.0057, "tier": "validated", "z": 2.87, "z_oos": 1.31, "n": 2108, "win_rate": 53.4, "avg_entry": 0.51, "band_0204": 0.25, "rank": 99, "arch": "balanced", "wins": 1126}, {"wallet": "0x43d7c53c20814021da901e89bc0a582ee7881c75", "name": "STULAH", "weight": 0.0057, "tier": "validated", "z": 2.85, "z_oos": 3.3, "n": 2004, "win_rate": 44.3, "avg_entry": 0.41, "band_0204": 0.34, "rank": 100, "arch": "value", "wins": 888}, {"wallet": "0x55154a54cd74db752540dcd663a30cdb5c00eb8b", "name": "AK47ForLIFE", "weight": 0.0057, "tier": "validated", "z": 2.84, "z_oos": 2.64, "n": 1405, "win_rate": 41.5, "avg_entry": 0.38, "band_0204": 0.35, "rank": 101, "arch": "value", "wins": 583}, {"wallet": "0x15ac9d4fb9c30fca4fec2fdecde3fdace721f3ba", "name": "toireK", "weight": 0.0056, "tier": "validated", "z": 2.82, "z_oos": 3.4, "n": 2006, "win_rate": 96.7, "avg_entry": 0.96, "band_0204": 0.01, "rank": 102, "arch": "favorite", "wins": 1940}, {"wallet": "0x229a29c0e1a54d3177d899af3b36ceb0f67b1bf0", "name": "HEROZ", "weight": 0.0056, "tier": "validated", "z": 2.82, "z_oos": 0.42, "n": 1352, "win_rate": 39.6, "avg_entry": 0.37, "band_0204": 0.18, "rank": 103, "arch": "value", "wins": 535}, {"wallet": "0x4d4bdf24c73473e5b68e230bd843a667276a153c", "name": "SisplacBII", "weight": 0.0056, "tier": "validated", "z": 2.79, "z_oos": 1.11, "n": 2100, "win_rate": 71.8, "avg_entry": 0.69, "band_0204": 0.02, "rank": 104, "arch": "balanced", "wins": 1508}, {"wallet": "0x689c37af05b28153d718757a5b3c1008c4226b1e", "name": "amnesia12", "weight": 0.0055, "tier": "validated", "z": 2.78, "z_oos": 4.82, "n": 1854, "win_rate": 56.6, "avg_entry": 0.54, "band_0204": 0.14, "rank": 105, "arch": "balanced", "wins": 1049}, {"wallet": "0x255ab4ffc544bccbcdc2e5891fa239c5a3813435", "name": "BaronOnThrone", "weight": 0.0055, "tier": "validated", "z": 2.76, "z_oos": 2.27, "n": 2001, "win_rate": 38.7, "avg_entry": 0.36, "band_0204": 0.4, "rank": 106, "arch": "value", "wins": 774}, {"wallet": "0x290367f43d250062f470bb531fde2e3ab32e9203", "name": "HarryRitter", "weight": 0.0055, "tier": "validated", "z": 2.74, "z_oos": 3.49, "n": 1611, "win_rate": 64.1, "avg_entry": 0.61, "band_0204": 0.12, "rank": 107, "arch": "balanced", "wins": 1033}];
const fmtW=w=>w.length>14?w.slice(0,6)+'…'+w.slice(-4):w;
let sortK='z',asc=false,open=null;
const body=document.getElementById('body');
function render(){
const q=document.getElementById('q').value.toLowerCase();
const af=document.getElementById('arch').value;
let rows=DATA.filter(r=>(!af||r.arch===af)&&
(!q||(r.name||'').toLowerCase().includes(q)||r.wallet.toLowerCase().includes(q)));
rows.sort((a,b)=>{const x=a[sortK],y=b[sortK];return (asc?1:-1)*((x>y)-(x<y));});
body.innerHTML=rows.map(r=>{
const zc=r.z>=10?'var(--violet)':r.z>=6?'var(--green)':'var(--fg)';
const oc=r.z_oos>=5?'var(--green)':r.z_oos>=3?'var(--amber)':'var(--red)';
const bw=Math.round(r.band_0204*46);
return `<tr class="row" data-w="${r.wallet}">
<td>${r.rank}</td>
<td class="name">${r.name||fmtW(r.wallet)}<div class="mono">${fmtW(r.wallet)}</div></td>
<td class="z" style="color:${zc}">${r.z.toFixed(1)}</td>
<td class="z" style="color:${oc}">${r.z_oos==null?'—':r.z_oos.toFixed(1)}</td>
<td>${r.wins}/${r.n}</td>
<td>${r.win_rate.toFixed(0)}%</td>
<td>${r.avg_entry.toFixed(2)}</td>
<td><span class="bar" style="width:${bw}px"></span> ${(r.band_0204*100).toFixed(0)}%</td>
<td><span class="pill ${r.arch}">${r.arch}</span></td></tr>`;
}).join('')||'<tr><td colspan="9" style="text-align:center;color:var(--dim);padding:24px">no matches</td></tr>';
}
body.addEventListener('click',async e=>{
const tr=e.target.closest('tr.row'); if(!tr)return;
const w=tr.dataset.w;
const nx=tr.nextElementSibling;
if(nx&&nx.classList.contains('det')){nx.remove();return;}
document.querySelectorAll('tr.det').forEach(x=>x.remove());
const d=document.createElement('tr');d.className='det';
d.innerHTML=`<td colspan="9">loading recent trades… · <a href="https://polymarket.com/profile/${w}" target="_blank">open profile ↗</a></td>`;
tr.after(d);
try{
const r=await fetch(`https://data-api.polymarket.com/activity?user=${w}&type=TRADE&limit=8`);
const ts=await r.json();
const rows=(ts||[]).map(t=>`<div class="trade"><span class="${t.side==='BUY'?'b':'s'}">${t.side}</span>
<span>${(t.outcome||'')} · ${(t.title||'').slice(0,52)}</span>
<span style="margin-left:auto;color:var(--dim)">${((t.price||0)*100).toFixed(0)}¢</span></div>`).join('');
d.firstChild.innerHTML=`<a href="https://polymarket.com/profile/${w}" target="_blank">open profile ↗</a><div style="margin-top:6px">${rows||'no recent trades'}</div>`;
}catch(err){d.firstChild.innerHTML=`<a href="https://polymarket.com/profile/${w}" target="_blank">open profile ↗</a> · live feed unavailable`;}
});
document.querySelectorAll('th').forEach(th=>th.onclick=()=>{
const k=th.dataset.k; if(k===sortK)asc=!asc;else{sortK=k;asc=(k==='rank'||k==='avg_entry');} render();});
document.getElementById('q').oninput=render;
document.getElementById('arch').onchange=render;
document.getElementById('sort').onchange=e=>{sortK=e.target.value;asc=false;render();};
render();
</script></body></html>