Skip to main content

Live Bittensor · Subnet 21 · updated daily

SN21 leaderboard

Results for 3 November 2026 · 145 miners scored of 256 registered

Full record
Verify this day

Every score for 3 November 2026 is in a signed daily receipt anchored on chain. Re-check it yourself with the public verifier from the SN21 repo:

python scripts/verify_day.py --url https://hope-bittensor-api.onrender.com --day 2026-11-03

It checks the signature, the hash chain and the on-chain anchor, and recomputes every score. Add --miner <your hotkey> to check only yours.

Miners earning

20 / 147

paid today, out of everyone scored

Needed to earn

+0.026

edge of place 20, the last paid miner

Top miner

UID 18

+0.034 edge · 0.632 accuracy

Scores settled

6,046,149

predictions checked against real outcomes

46,461 episodes served in 92 daily baskets · latest basket 1,221 (2 Nov) · basket size over time →

Leaderboard

147 miners · ranked by edge over the field

Place UID Edge accuracy below Result
1 18 +0.034 0.632 Earning · Elite
2 253 +0.033 0.626 Earning · Elite
3 1 +0.032 0.600 Earning · Elite
4 242 +0.031 0.638 Earning · Elite
5 141 +0.031 0.611 Earning · Elite
6 193 +0.031 0.622 Earning · Elite
7 72 +0.029 0.594 Earning · Elite
8 178 +0.029 0.597 Earning · Elite
9 29 +0.029 0.624 Earning · Elite
10 95 +0.028 0.595 Earning · Elite
11 74 +0.028 0.627 Earning · Elite
12 224 +0.028 0.631 Earning · Elite
13 235 +0.028 0.619 Earning · Elite
14 126 +0.028 0.616 Earning · Elite
15 52 +0.028 0.597 Earning · Elite
— 162 +0.027 0.606 Below the alpha hold
Why?
  • Below the alpha hold Held 1.3 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
16 218 +0.027 0.591 Earning · Competitive
17 44 +0.027 0.591 Earning · Competitive
18 13 +0.027 0.606 Earning · Competitive
— 173 +0.027 0.621 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 154 +0.027 0.632 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 145 +0.027 0.619 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
19 103 +0.027 0.591 Earning · Competitive
20 75 +0.026 0.591 Earning · Competitive
Earning cut · place 20 · edge +0.026
— 170 +0.026 0.636 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 194 +0.026 0.624 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 199 +0.026 0.604 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 63 +0.025 0.590 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 118 +0.024 0.629 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 28 +0.024 0.629 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 91 +0.024 0.603 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 130 +0.024 0.631 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 188 +0.024 0.587 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 61 +0.024 0.628 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 221 +0.024 0.614 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 165 +0.023 0.612 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 56 +0.023 0.587 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 39 +0.023 0.587 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 124 +0.023 0.589 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 237 +0.023 0.632 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 26 +0.023 0.632 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 94 +0.023 0.632 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 66 +0.023 0.600 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 133 +0.023 0.586 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 110 +0.022 0.589 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 244 +0.022 0.586 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 211 +0.022 0.586 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 30 +0.021 0.656 Tenure
Why?
  • Tenure Scored on 5 of the 7 days needed. Scores still count and the model keeps running — tenure accrues by showing up.
— 222 +0.021 0.588 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 255 +0.021 0.618 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 171 +0.021 0.584 Below the alpha hold
Why?
  • Below the alpha hold Held 2.7 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 160 +0.021 0.655 Tenure
Why?
  • Tenure Scored on 5 of the 7 days needed. Scores still count and the model keeps running — tenure accrues by showing up.
— 177 +0.020 0.583 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 51 +0.020 0.620 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 92 +0.019 0.583 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 196 +0.019 0.582 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 254 +0.019 0.588 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 176 +0.018 0.614 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 43 +0.018 0.595 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 143 +0.018 0.649 Tenure
Why?
  • Tenure Scored on 5 of the 7 days needed. Scores still count and the model keeps running — tenure accrues by showing up.
— 226 +0.017 0.605 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 2 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 145 · 5GHpSi...DBfs
— 163 +0.016 0.579 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 113 +0.015 0.597 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 148 +0.014 0.577 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 249 +0.013 0.586 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 4 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 43 · 5GbCae...25xi
— 42 +0.011 0.631 Tenure
Why?
  • Tenure Scored on 3 of the 7 days needed. Scores still count and the model keeps running — tenure accrues by showing up.
— 45 +0.009 0.570 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 125 +0.008 0.607 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 50 +0.008 0.622 Tenure
Why?
  • Tenure Scored on 3 of the 7 days needed. Scores still count and the model keeps running — tenure accrues by showing up.
— 117 +0.006 0.569 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 205 +0.006 0.569 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 76 +0.006 0.578 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 4 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 43 · 5GbCae...25xi
— 38 +0.004 0.604 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 186 +0.004 0.566 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 200 +0.003 0.566 Duplicate model
Why?
  • Duplicate model This model is already earning under an earlier submission. Identical models pay once. The seat is held by the hotkey shown. earns as · 5GgSss...9P3D
  • Same model lineage Same behaviour lineage as an earlier submission; the earliest in the group earns. earns as · 5GgSss...9P3D
— 114 +0.003 0.566 Duplicate model
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 4 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 200 · 5GsntL...yTwB
  • Duplicate model This model is already earning under an earlier submission. Identical models pay once. The seat is held by the hotkey shown. earns as · 5GgSss...9P3D
  • Same model lineage Same behaviour lineage as an earlier submission; the earliest in the group earns. earns as · 5GgSss...9P3D
— 142 +0.003 0.566 Duplicate model
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 3 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 110 · 5GCYWv...goaT
  • Duplicate model This model is already earning under an earlier submission. Identical models pay once. The seat is held by the hotkey shown. earns as · 5GgSss...9P3D
  • Same model lineage Same behaviour lineage as an earlier submission; the earliest in the group earns. earns as · 5GgSss...9P3D
— 60 +0.003 0.565 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 53 +0.003 0.576 Duplicate model
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 4 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 43 · 5GbCae...25xi
  • Duplicate model This model is already earning under an earlier submission. Identical models pay once.
  • Same model lineage Same behaviour lineage as an earlier submission; the earliest in the group earns. earns as UID 76 · 5DeX1w...Cz2d
— 120 +0.002 0.578 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 137 +0.001 0.564 Below the alpha hold
Why?
  • Below the alpha hold Held 554.3 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 87 −0.001 0.569 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 149 −0.002 0.560 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 3 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 186 · 5HZ6xj...MMgj
— 48 −0.009 0.553 Below the alpha hold
Why?
  • Below the alpha hold Held 7.7 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 246 −0.009 0.570 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 17 −0.009 0.556 Tenure
Why?
  • Tenure Scored on 2 of the 7 days needed. Scores still count and the model keeps running — tenure accrues by showing up.
— 89 −0.010 0.552 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 5 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 75 · 5FkH3C...nPHC
— 134 −0.011 0.551 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 4 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 200 · 5GsntL...yTwB
— 88 −0.013 0.549 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 5 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 75 · 5FkH3C...nPHC
— 214 −0.014 0.547 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 5 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 75 · 5FkH3C...nPHC
— 40 −0.017 0.542 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 198 −0.017 0.544 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 5 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 75 · 5FkH3C...nPHC
— 25 −0.025 0.487 Tenure
Why?
  • Tenure Scored on 2 of the 7 days needed. Scores still count and the model keeps running — tenure accrues by showing up.
— 164 −0.028 0.532 Below the alpha hold
Why?
  • Below the alpha hold Held 0.1 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 0 −0.028 0.530 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 179 −0.037 0.523 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 247 −0.042 0.520 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 233 −0.042 0.535 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 69 −0.045 0.514 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 2 −0.048 0.512 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 132 −0.051 0.508 Duplicate model
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 4 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 200 · 5GsntL...yTwB
  • Duplicate model This model is already earning under an earlier submission. Identical models pay once. The seat is held by the hotkey shown. earns as UID 203 · 5Dz8LD...nxjh
  • Same model lineage Same behaviour lineage as an earlier submission; the earliest in the group earns. earns as UID 203 · 5Dz8LD...nxjh
— 203 −0.051 0.508 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 208 −0.051 0.507 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 5 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 203 · 5Dz8LD...nxjh
— 41 −0.054 0.505 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 2 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 40 · 5CyUYf...yyYU
— 82 −0.057 0.502 Below the alpha hold
Why?
  • Below the alpha hold Held 0.8 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 33 −0.066 0.492 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 140 −0.074 0.491 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 32 −0.075 0.490 Duplicate model
Why?
  • Duplicate model This model is already earning under an earlier submission. Identical models pay once.
  • Same model lineage Same behaviour lineage as an earlier submission; the earliest in the group earns. earns as UID 140 · 5C5kbk...BZGi
— 181 −0.076 0.481 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 5 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 203 · 5Dz8LD...nxjh
— 90 −0.077 0.490 Duplicate model
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 3 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 44 · 5Evf2A...voUX
  • Duplicate model This model is already earning under an earlier submission. Identical models pay once. The seat is held by the hotkey shown. earns as UID 140 · 5C5kbk...BZGi
  • Same model lineage Same behaviour lineage as an earlier submission; the earliest in the group earns. earns as UID 140 · 5C5kbk...BZGi
— 5 −0.085 0.479 Duplicate model
Why?
  • Duplicate model This model is already earning under an earlier submission. Identical models pay once.
  • Same model lineage Same behaviour lineage as an earlier submission; the earliest in the group earns. earns as UID 140 · 5C5kbk...BZGi
— 230 −0.087 0.477 Duplicate model
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 5 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 203 · 5Dz8LD...nxjh
  • Duplicate model This model is already earning under an earlier submission. Identical models pay once.
  • Same model lineage Same behaviour lineage as an earlier submission; the earliest in the group earns. earns as UID 140 · 5C5kbk...BZGi
— 105 −0.095 0.461 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 100 −0.100 0.455 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 5 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 203 · 5Dz8LD...nxjh
— 250 −0.125 0.432 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 241 −0.132 0.425 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 5 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 250 · 5EyeKT...2oHi
— 209 −0.133 0.424 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 136 −0.138 0.418 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 5 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 250 · 5EyeKT...2oHi
— 245 −0.198 0.357 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 115 −0.228 0.328 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 192 −0.239 0.306 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 225 −0.245 0.309 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 3 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 186 · 5HZ6xj...MMgj
— 19 −0.266 0.290 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 5 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 250 · 5EyeKT...2oHi
— 138 −0.273 0.284 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 5 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 250 · 5EyeKT...2oHi
— 239 −0.276 0.263 Duplicate model
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 3 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 44 · 5Evf2A...voUX
  • Duplicate model This model is already earning under an earlier submission. Identical models pay once. The seat is held by the hotkey shown. earns as · 5DJBrU...wMbw
  • Same model lineage Same behaviour lineage as an earlier submission; the earliest in the group earns. earns as UID 140 · 5C5kbk...BZGi
— 189 −0.276 0.263 Duplicate model
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 3 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 110 · 5GCYWv...goaT
  • Duplicate model This model is already earning under an earlier submission. Identical models pay once. The seat is held by the hotkey shown. earns as · 5DJBrU...wMbw
  • Same model lineage Same behaviour lineage as an earlier submission; the earliest in the group earns. earns as UID 140 · 5C5kbk...BZGi
— 58 −0.276 0.279 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 107 −0.311 0.244 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 234 −0.314 0.175 Tenure
Why?
  • Tenure Scored on 5 of the 7 days needed. Scores still count and the model keeps running — tenure accrues by showing up.
— 108 −0.321 0.219 Duplicate model
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 8 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 118 · 5CtypK...3TaM
  • Duplicate model This model is already earning under an earlier submission. Identical models pay once.
  • Same model lineage Same behaviour lineage as an earlier submission; the earliest in the group earns. earns as UID 70 · 5Ek7Wq...KXaZ
— 70 −0.321 0.219 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 8 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 118 · 5CtypK...3TaM
— 20 −0.321 0.219 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 8 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 118 · 5CtypK...3TaM
— 152 −0.321 0.218 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 8 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 118 · 5CtypK...3TaM
— 216 −0.360 0.168 Duplicate model
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 8 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 118 · 5CtypK...3TaM
  • Duplicate model This model is already earning under an earlier submission. Identical models pay once.
  • Same model lineage Same behaviour lineage as an earlier submission; the earliest in the group earns. earns as UID 70 · 5Ek7Wq...KXaZ
— 167 −0.372 0.169 Duplicate model
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 8 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 118 · 5CtypK...3TaM
  • Duplicate model This model is already earning under an earlier submission. Identical models pay once.
  • Same model lineage Same behaviour lineage as an earlier submission; the earliest in the group earns. earns as UID 70 · 5Ek7Wq...KXaZ
— 240 −0.375 0.133 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 169 −0.396 0.140 Duplicate model
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 8 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 118 · 5CtypK...3TaM
  • Duplicate model This model is already earning under an earlier submission. Identical models pay once.
  • Same model lineage Same behaviour lineage as an earlier submission; the earliest in the group earns. earns as UID 70 · 5Ek7Wq...KXaZ
— 106 −0.413 0.139 Below the earning cut
Why?
  • Below the earning cut Ranked below the earning cut. The score stands and the model keeps running — the paid set is a fixed size, so placing outside it is not a penalty and carries nothing forward.
— 97 −0.490 0.064 Below the alpha hold
Why?
  • Below the alpha hold Held 0.0 alpha against the 1,000 required today. Zero weight for the day; the standing and every score stand, and the seat pays again from the next run on which the hold is met.
— 31 −0.492 0.047 Tenure
Why?
  • Tenure Scored on 6 of the 7 days needed. Scores still count and the model keeps running — tenure accrues by showing up.
— 252 −0.498 0.015 Tenure
Why?
  • Tenure Scored on 3 of the 7 days needed. Scores still count and the model keeps running — tenure accrues by showing up.
— 23 −0.530 0.000 Below baseline
Why?
  • Tenure Scored on 2 of the 7 days needed. Scores still count and the model keeps running — tenure accrues by showing up.
— 202 −0.539 0.000 Below baseline
Why?
  • Tenure Scored on 3 of the 7 days needed. Scores still count and the model keeps running — tenure accrues by showing up.
— 204 −0.540 0.013 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 5 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 92 · 5GZ1yJ...1PrF
— 55 −0.540 0.013 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 5 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 92 · 5GZ1yJ...1PrF
— 14 −0.547 0.006 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 5 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 92 · 5GZ1yJ...1PrF
— 54 −0.547 0.006 One seat per coldkey
Why?
  • One seat per coldkey One coldkey holds one earning seat. This owner runs 5 hotkeys on the subnet; the one shown holds the seat today. seat held by UID 92 · 5GZ1yJ...1PrF

Click a UID to open that miner's page. Edge is the average lead over the field on the same changes — it ranks and pays; accuracy is shown beneath it.

About this data

Daily stream — live. Each day's settled standings are published here as they mature, with outcomes measured at 7, 14 and 28 days. Earlier weekly epochs remain in the Epochs tab as the historical record. About the daily stream →

Prediction performance by change type. For every kind of account change: the best model's score, the current winner's beside it, and the score broken into direction, size, range and goal. Performance tab → Full page →

More on SN21: daily numbers, score distribution, history, method, API and performance

Pulse

Pulse · Operational snapshot

Headline numbers from the latest published day. SN21 publishes a new day of settled results every day; these tiles describe the most recent one. The leaders are in the leaderboard at the top of the page.

Pool size

145

miners

Trailing 4 epochs awaiting more closes

145/256 passed the participation gate

Baseline beat rate

100.0%

of pool

Trailing 4 epochs awaiting more closes

Share above the conditional-prior baseline

Elite tier

16

60.0% of emissions

Trailing 4 epochs awaiting more closes

EMA ≥ baseline + 1σ this epoch

Cohort context · this epoch vs all published

  • Pool size145→ largest of 125 published
  • Baseline beat rate100.0%→ highest beat rate yet (range 76.0%–100.0%)
  • Top score0.656→ 28th of 125 epochs with histograms

Tier band · Pool vs emissions

Where the qualifying pool sits — and where the rewards flow.

Live

Share of pool

measured

Share of emissions

policy constant

Elite

EMA ≥ baseline + 1σ

pool 11.0% · emit 60.0%

Competitive

beats baseline

pool 22.1% · emit 30.0%

Participating

passed gate

pool 22.8% · emit 10.0%

Tier rail · Emission shares + epoch context

4 metrics

Competitive

32

0.30 emissions share

Participating

33

0.10 emissions share

Multiplier

1.00×

Search

Formula

1.2.1

@ 34dbdfe

Find yourself on chain

Opens taostats

Enter your numeric UID (the slot you registered into on netuid 21). This opens SN21's miner table on taostats with your UID copied: paste it into the table's search box to see your hotkey, stake, incentive and emission.

Don't know your UID? Paste your hotkey (SS58 address starting with 5). It is copied for you: paste it into the search box on SN21's miner table to find your UID.

Per IA D-05, no per-miner identifier ever leaves this server. The browser navigates straight to taostats.

Prediction performance

For every kind of account change since the rich-data baseline (2026-08-20): the best model, the current winner beside it, and each score broken into its parts — 6,046,149 settled scores from 207 models.

Full page →

Where the number comes from

75 days, 2026-08-20 to 2026-11-02
  1. 1. Captured398,783raw changes per day, before any rule
  2. 2. Measurable episodes71,990since 20 Aug, after the published rules and 72-hour clustering
  3. 3. Served to models27,984of 34,461 eligible; 6,949 held out for validation, 231 on our own accounts
  4. 4. Settled & scored23,337this page — served changes old enough to have settled
  5. 5. Predictions scored6,046,149every model predicts every change

Each stage is deliberate. The page counts the fourth: a change reaches it about 15 days after it happened, once its first outcome window has closed and settled.

14 groups covering 93 change types. Open a row to see the types inside it.

Budget change — when a daily budget was raised or lowered 5,434 Reliable UID 42 6 types

Across 5,434 such changes (567,319 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

down 1,234 Reliable UID 240
down large 1,277 Reliable UID 42
flat 349 Roughly right UID 42
unknown 12 Reliable UID 126
up 1,048 Roughly right UID 240
up large 1,514 Reliable UID 42
Bid strategy switch — when the bid strategy was switched from one type to another 153 Reliable — 8 types

Across 153 such changes (15,975 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

maximize conversion value → maximize conversions 2 Too early —
maximize conversions → maximize conversion value 5 Too early UID 48
maximize conversions → target spend 14 Reliable —
target spend → maximize conversion value 1 Too early —
target spend → maximize conversions 6 Roughly right UID 5
switched to Maximize Conversion Value 39 Roughly right —
switched to Maximize Conversions 49 Reliable UID 204
unknown → target spend 37 Reliable —
Bid target change — when a bid-strategy target value changed (e.g. Target CPA $60 → $50) 824 Reliable UID 234 13 types

Across 824 such changes (94,656 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

ad-group bid change 14 Reliable UID 198
maximize conversion value · down 77 Roughly right UID 240
maximize conversion value · down large 4 Too early —
maximize conversion value · flat 114 Reliable UID 221
switched to Maximize Conversion Value 2 Too early —
maximize conversion value · up 146 Reliable UID 242
maximize conversion value · up large 22 Reliable UID 141
maximize conversions · down 115 Reliable UID 234
maximize conversions · down large 38 Roughly right —
maximize conversions · flat 24 Roughly right UID 74
switched to Maximize Conversions 13 Roughly right UID 196
maximize conversions · up 196 Reliable —
maximize conversions · up large 59 Roughly right UID 107
Negative keyword changes — when negative keywords were added 3,786 Reliable UID 31 16 types

Across 3,786 such changes (404,922 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

negative keyword add 327 Reliable —
broad · 1 80 Reliable UID 42
broad · 11+ 19 Roughly right UID 204
broad · 2-10 79 Reliable UID 194
exact · 1 594 Reliable UID 240
exact · 11+ 422 Reliable UID 94
exact · 2-10 935 Reliable UID 94
mixed · 11+ 205 Reliable UID 234
mixed · 2-10 303 Reliable UID 31
phrase · 1 231 Reliable —
phrase · 11+ 118 Reliable UID 55
phrase · 2-10 325 Reliable —
unknown · 1 8 Reliable UID 53
unknown · 11+ 9 Reliable UID 165
unknown · 2-10 9 Reliable UID 171
negative keyword remove 122 Reliable —
Keyword changes — when this changed 1,089 Reliable UID 224 2 types

Across 1,089 such changes (114,949 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

keyword add 636 Reliable UID 126
keyword remove 453 Reliable —
Other criterion changes (kind not recorded) — when this changed 2,375 Reliable — 6 types

Across 2,375 such changes (245,976 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

bid on a keyword / audience / placement 563 Reliable UID 42
targeting criteria change 931 Reliable —
criterion enable 100 Reliable UID 170
criterion pause 737 Reliable UID 240
criterion remove 37 Reliable UID 173
criterion url change 7 Reliable —
Location, audience and demographic targeting — when this changed 185 Reliable — 3 types

Across 185 such changes (19,179 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

audience change 110 Reliable UID 176
demographic change 33 Reliable —
geo change 42 Reliable UID 165
Device, schedule and placement targeting — when this changed 312 Reliable UID 242 2 types

Across 312 such changes (32,611 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Roughly right Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

device targeting change 2 Too early —
schedule change 310 Reliable UID 242
Campaign pause / enable — when this changed 1,178 Reliable UID 234 1 type

Across 1,178 such changes (133,225 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Roughly right Range — how often the real result fell inside the predicted range
  • Roughly right Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Ad group pause / enable — when this changed 172 Reliable UID 42 2 types

Across 172 such changes (18,391 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

adgroup enable 25 Roughly right UID 14
adgroup pause 147 Reliable UID 42
Other ad group changes — when this changed 226 Reliable — 3 types

Across 226 such changes (23,130 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

adgroup bid change 122 Reliable UID 42
adgroup change 102 Reliable —
adgroup remove 2 Too early —
Ad changes — when this changed 314 Reliable — 5 types

Across 314 such changes (32,957 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

ad create 67 Reliable UID 31
ad edit 135 Reliable UID 234
ad enable 9 Reliable —
ad pause 95 Reliable UID 55
ad remove 8 Reliable UID 189
Asset changes — when this changed 1,039 Reliable — 1 type

Across 1,039 such changes (103,994 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Combined changes — when several kinds of change happened together 5,793 Reliable UID 42 25 types

Across 5,793 such changes (606,433 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

adgroup bid change 40 Roughly right —
adgroup change 10 Roughly right UID 241
adgroup enable 19 Reliable —
adgroup pause 408 Reliable UID 18
ad-group bid change 1 Too early —
ad create 692 Reliable UID 222
ad edit 71 Reliable UID 234
ad enable 25 Roughly right UID 13
ad pause 14 Reliable UID 115
asset change 57 Reliable UID 242
audience change 22 Reliable UID 222
bid strategy change 45 Reliable UID 26
budget change 1,603 Reliable UID 234
campaign pause 191 Reliable —
bid on a keyword / audience / placement 47 Reliable —
targeting criteria change 150 Reliable UID 143
criterion enable 48 Reliable UID 55
criterion pause 17 Reliable UID 162
criterion remove 11 Reliable UID 221
demographic change 1 Too early —
keyword add 1,291 Reliable —
keyword remove 154 Reliable UID 30
negative keyword add 630 Reliable —
negative keyword remove 1 Too early —
target value change 245 Reliable UID 18

14 groups covering 93 change types. Open a row to see the types inside it.

Budget change — when a daily budget was raised or lowered 5,007 Roughly right UID 18 6 types

Across 5,007 such changes (526,484 model predictions), a prediction here is roughly right. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

down 1,134 Roughly right UID 194
down large 1,200 Reliable UID 26
flat 315 Roughly right —
unknown 11 Reliable UID 18
up 944 Roughly right UID 18
up large 1,403 Roughly right UID 18
Bid strategy switch — when the bid strategy was switched from one type to another 138 Reliable UID 107 8 types

Across 138 such changes (14,593 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

maximize conversion value → maximize conversions 1 Too early —
maximize conversions → maximize conversion value 4 Too early —
maximize conversions → target spend 15 Reliable UID 75
target spend → maximize conversion value 1 Too early —
target spend → maximize conversions 6 Roughly right UID 5
switched to Maximize Conversion Value 35 Roughly right UID 107
switched to Maximize Conversions 40 Reliable UID 55
unknown → target spend 36 Reliable UID 145
Bid target change — when a bid-strategy target value changed (e.g. Target CPA $60 → $50) 551 Roughly right UID 235 13 types

Across 551 such changes (57,730 model predictions), a prediction here is roughly right. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

ad-group bid change 14 Roughly right UID 138
maximize conversion value · down 60 Roughly right —
maximize conversion value · down large 4 Too early —
maximize conversion value · flat 14 Roughly right UID 13
switched to Maximize Conversion Value 2 Too early —
maximize conversion value · up 66 Roughly right UID 226
maximize conversion value · up large 22 Roughly right UID 58
maximize conversions · down 99 Roughly right UID 51
maximize conversions · down large 37 Roughly right UID 38
maximize conversions · flat 19 Reliable —
switched to Maximize Conversions 13 Roughly right UID 196
maximize conversions · up 155 Reliable —
maximize conversions · up large 46 Roughly right UID 176
Negative keyword changes — when negative keywords were added 3,246 Reliable UID 170 16 types

Across 3,246 such changes (344,656 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

negative keyword add 330 Roughly right UID 245
broad · 1 70 Roughly right UID 224
broad · 11+ 19 Roughly right UID 55
broad · 2-10 75 Roughly right UID 74
exact · 1 511 Roughly right UID 237
exact · 11+ 370 Reliable UID 216
exact · 2-10 817 Reliable UID 169
mixed · 11+ 180 Roughly right UID 29
mixed · 2-10 243 Reliable UID 253
phrase · 1 174 Reliable UID 74
phrase · 11+ 85 Reliable UID 253
phrase · 2-10 259 Reliable UID 237
unknown · 1 8 Reliable UID 66
unknown · 11+ 9 Reliable UID 165
unknown · 2-10 8 Reliable UID 56
negative keyword remove 88 Roughly right —
Keyword changes — when this changed 988 Reliable — 2 types

Across 988 such changes (104,920 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

keyword add 574 Reliable —
keyword remove 414 Reliable —
Other criterion changes (kind not recorded) — when this changed 2,172 Reliable UID 237 6 types

Across 2,172 such changes (231,272 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

bid on a keyword / audience / placement 520 Reliable UID 154
targeting criteria change 840 Reliable UID 141
criterion enable 94 Roughly right —
criterion pause 685 Reliable UID 237
criterion remove 28 Reliable UID 221
criterion url change 5 Too early —
Location, audience and demographic targeting — when this changed 180 Reliable — 3 types

Across 180 such changes (19,040 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

audience change 105 Reliable UID 221
demographic change 32 Reliable UID 165
geo change 43 Reliable —
Device, schedule and placement targeting — when this changed 278 Reliable UID 242 2 types

Across 278 such changes (30,007 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Roughly right Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

device targeting change 2 Too early —
schedule change 276 Reliable UID 242
Campaign pause / enable — when this changed 1,015 Reliable UID 51 1 type

Across 1,015 such changes (107,564 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Ad group pause / enable — when this changed 142 Roughly right — 2 types

Across 142 such changes (15,107 model predictions), a prediction here is roughly right. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

adgroup enable 24 Roughly right UID 204
adgroup pause 118 Roughly right UID 51
Other ad group changes — when this changed 195 Reliable — 3 types

Across 195 such changes (20,537 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

adgroup bid change 103 Roughly right UID 253
adgroup change 90 Reliable —
adgroup remove 2 Too early —
Ad changes — when this changed 282 Reliable UID 55 5 types

Across 282 such changes (30,169 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

ad create 58 Roughly right UID 130
ad edit 119 Reliable UID 90
ad enable 9 Roughly right UID 90
ad pause 87 Reliable UID 55
ad remove 9 Roughly right UID 117
Asset changes — when this changed 820 Reliable UID 237 1 type

Across 820 such changes (86,119 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Combined changes — when several kinds of change happened together 5,266 Reliable UID 224 25 types

Across 5,266 such changes (555,071 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 (UID 18) on this change type: Reliable.

Broken down by kind:

adgroup bid change 32 Reliable UID 55
adgroup change 9 Reliable UID 199
adgroup enable 17 Roughly right —
adgroup pause 395 Reliable —
ad-group bid change 1 Too early —
ad create 634 Roughly right UID 95
ad edit 60 Roughly right UID 194
ad enable 24 Roughly right UID 165
ad pause 10 Roughly right UID 90
asset change 49 Reliable UID 253
audience change 18 Reliable UID 222
bid strategy change 39 Reliable —
budget change 1,446 Reliable UID 70
campaign pause 200 Reliable —
bid on a keyword / audience / placement 45 Reliable UID 194
targeting criteria change 133 Reliable UID 216
criterion enable 46 Reliable UID 224
criterion pause 17 Roughly right UID 58
criterion remove 9 Reliable UID 107
demographic change 1 Too early —
keyword add 1,188 Reliable —
keyword remove 156 Reliable —
negative keyword add 531 Reliable —
negative keyword remove 1 Too early —
target value change 205 Roughly right UID 74

14 groups covering 90 change types. Open a row to see the types inside it.

Budget change — when a daily budget was raised or lowered 4,000 Roughly right UID 126 6 types

Across 4,000 such changes (414,733 model predictions), a prediction here is roughly right. What that's made of:

  • Roughly right Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 has no scored prediction on this change type yet.

Broken down by kind:

down 898 Roughly right UID 126
down large 1,007 Roughly right UID 126
flat 224 Roughly right —
unknown 5 Reliable —
up 740 Roughly right UID 91
up large 1,126 Roughly right UID 126
Bid strategy switch — when the bid strategy was switched from one type to another 93 Reliable UID 72 7 types

Across 93 such changes (9,567 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 has no scored prediction on this change type yet.

Broken down by kind:

maximize conversion value → maximize conversions 1 Too early —
maximize conversions → maximize conversion value 3 Too early —
maximize conversions → target spend 10 Reliable UID 92
target spend → maximize conversions 6 Roughly right —
switched to Maximize Conversion Value 22 Roughly right UID 107
switched to Maximize Conversions 28 Reliable UID 55
unknown → target spend 23 Reliable UID 204
Bid target change — when a bid-strategy target value changed (e.g. Target CPA $60 → $50) 421 Roughly right — 13 types

Across 421 such changes (43,505 model predictions), a prediction here is roughly right. What that's made of:

  • Roughly right Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 has no scored prediction on this change type yet.

Broken down by kind:

ad-group bid change 14 Roughly right UID 254
maximize conversion value · down 46 Roughly right —
maximize conversion value · down large 4 Too early —
maximize conversion value · flat 10 Roughly right UID 196
switched to Maximize Conversion Value 2 Too early —
maximize conversion value · up 46 Roughly right UID 91
maximize conversion value · up large 14 Roughly right UID 204
maximize conversions · down 73 Roughly right UID 113
maximize conversions · down large 27 Roughly right UID 222
maximize conversions · flat 14 Roughly right UID 203
switched to Maximize Conversions 13 Roughly right UID 196
maximize conversions · up 128 Reliable —
maximize conversions · up large 30 Roughly right —
Negative keyword changes — when negative keywords were added 2,235 Roughly right UID 107 16 types

Across 2,235 such changes (230,871 model predictions), a prediction here is roughly right. What that's made of:

  • Roughly right Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 has no scored prediction on this change type yet.

Broken down by kind:

negative keyword add 332 Roughly right UID 218
broad · 1 33 Roughly right —
broad · 11+ 10 Roughly right —
broad · 2-10 36 Roughly right —
exact · 1 353 Roughly right —
exact · 11+ 222 Roughly right UID 107
exact · 2-10 557 Roughly right UID 141
mixed · 11+ 116 Roughly right —
mixed · 2-10 150 Roughly right UID 222
phrase · 1 109 Roughly right UID 87
phrase · 11+ 68 Roughly right UID 87
phrase · 2-10 167 Roughly right UID 107
unknown · 1 7 Reliable —
unknown · 11+ 4 Too early —
unknown · 2-10 6 Roughly right UID 244
negative keyword remove 65 Roughly right —
Keyword changes — when this changed 600 Roughly right — 2 types

Across 600 such changes (62,007 model predictions), a prediction here is roughly right. What that's made of:

  • Roughly right Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 has no scored prediction on this change type yet.

Broken down by kind:

keyword add 407 Roughly right —
keyword remove 193 Reliable —
Other criterion changes (kind not recorded) — when this changed 1,297 Reliable UID 126 6 types

Across 1,297 such changes (134,153 model predictions), a prediction here is reliable. What that's made of:

  • Roughly right Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 has no scored prediction on this change type yet.

Broken down by kind:

bid on a keyword / audience / placement 332 Reliable UID 113
targeting criteria change 538 Reliable UID 107
criterion enable 67 Reliable UID 107
criterion pause 334 Roughly right UID 107
criterion remove 21 Reliable UID 162
criterion url change 5 Too early UID 186
Location, audience and demographic targeting — when this changed 113 Roughly right UID 222 3 types

Across 113 such changes (11,698 model predictions), a prediction here is roughly right. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 has no scored prediction on this change type yet.

Broken down by kind:

audience change 57 Roughly right UID 107
demographic change 24 Reliable UID 115
geo change 32 Roughly right UID 95
Device, schedule and placement targeting — when this changed 110 Reliable — 1 type

Across 110 such changes (11,315 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Roughly right Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 has no scored prediction on this change type yet.

Campaign pause / enable — when this changed 876 Roughly right — 1 type

Across 876 such changes (91,797 model predictions), a prediction here is roughly right. What that's made of:

  • Roughly right Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 has no scored prediction on this change type yet.

Ad group pause / enable — when this changed 85 Roughly right UID 52 2 types

Across 85 such changes (8,741 model predictions), a prediction here is roughly right. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 has no scored prediction on this change type yet.

Broken down by kind:

adgroup enable 15 Roughly right —
adgroup pause 70 Reliable —
Other ad group changes — when this changed 130 Reliable — 3 types

Across 130 such changes (13,346 model predictions), a prediction here is reliable. What that's made of:

  • Roughly right Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 has no scored prediction on this change type yet.

Broken down by kind:

adgroup bid change 65 Roughly right UID 52
adgroup change 64 Reliable —
adgroup remove 1 Too early —
Ad changes — when this changed 172 Reliable UID 55 5 types

Across 172 such changes (17,723 model predictions), a prediction here is reliable. What that's made of:

  • Reliable Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 has no scored prediction on this change type yet.

Broken down by kind:

ad create 36 Roughly right UID 218
ad edit 56 Roughly right UID 90
ad enable 5 Roughly right UID 124
ad pause 66 Reliable UID 55
ad remove 9 Roughly right —
Asset changes — when this changed 437 Roughly right — 1 type

Across 437 such changes (44,852 model predictions), a prediction here is roughly right. What that's made of:

  • Roughly right Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 has no scored prediction on this change type yet.

Combined changes — when several kinds of change happened together 3,833 Roughly right UID 113 24 types

Across 3,833 such changes (394,855 model predictions), a prediction here is roughly right. What that's made of:

  • Roughly right Direction — called the change up or down correctly on the goal metric
  • Reliable Size — how close the predicted size of the effect was
  • Not reliable Range — how often the real result fell inside the predicted range
  • Not reliable Goal — how close on the goal number itself (CPA or ROAS)

Today's leaderboard #1 has no scored prediction on this change type yet.

Broken down by kind:

adgroup bid change 18 Roughly right UID 13
adgroup change 4 Too early —
adgroup enable 12 Roughly right —
adgroup pause 295 Roughly right UID 107
ad-group bid change 1 Too early —
ad create 460 Roughly right UID 246
ad edit 38 Roughly right UID 58
ad enable 19 Not reliable UID 245
ad pause 9 Roughly right UID 72
asset change 34 Roughly right UID 113
audience change 16 Roughly right UID 14
bid strategy change 32 Reliable —
budget change 1,047 Roughly right UID 126
campaign pause 180 Roughly right UID 52
bid on a keyword / audience / placement 27 Roughly right UID 53
targeting criteria change 91 Reliable UID 107
criterion enable 32 Reliable UID 55
criterion pause 15 Roughly right UID 205
criterion remove 3 Too early —
keyword add 873 Reliable —
keyword remove 112 Reliable —
negative keyword add 368 Roughly right —
negative keyword remove 1 Too early —
target value change 146 Roughly right UID 52

A row reads Too early until at least 500 of its changes have settled. Open any row for the score breakdown and the best model.

Today's slice — accuracy by change type on BD-2026-11-03

Accuracy by change type

Change type Predictions Field average Winning model
Negative keyword add 14647 0.599 0.644
Combined changes 11774 0.575 0.628
Budget change 9199 0.604 0.653
Asset change 9815 0.588 0.630
Campaign pause 3020 0.529 0.571
Keyword add 1510 0.545 0.591
Bid target change 2416 0.509 0.569
Criterion pause 1057 0.557 0.638
Schedule change 1057 0.674 0.767
Criterion bid change 1208 0.660 0.752
Negative keyword remove 1359 0.580 0.617
Targeting criteria change 452 0.485 0.447
Adgroup change 150 0.691 0.865
Audience change 453 0.559 0.574
Bid strategy switch 302 0.548 0.625
Adgroup pause 302 0.717 0.810
Adgroup bid change 302 0.649 0.730
Keyword removal 151 0.486 0.565
Criterion url change 151 0.592 0.678
Change type Predictions Field average Winning model
Negative keyword add 10668 0.560 0.603
Combined changes 5969 0.580 0.607
Budget change 3429 0.566 0.612
Keyword add 762 0.548 0.513
Criterion pause 381 0.449 0.494
Schedule change 127 0.689 0.791
Criterion bid change 254 0.594 0.770
New ad 762 0.480 0.517
Adgroup change 381 0.511 0.666
Bid strategy switch 127 0.616 0.605
Adgroup pause 127 0.620 0.667
Ad edit 127 0.369 0.379
Change type Predictions Field average Winning model
Negative keyword add 1836 0.559 —
Combined changes 3240 0.537 —
Budget change 2268 0.510 —
Campaign pause 540 0.522 —
Keyword add 540 0.515 —
Criterion pause 432 0.546 —
Schedule change 324 0.599 —
Targeting criteria change 216 0.663 —
Ad edit 108 0.668 —
Ad pause 108 0.523 —
Criterion enable 108 0.570 —
Demographic change 108 0.515 —

Scores are on the same 0-to-1 scale as the leaderboard standing. "Winning model" is the current leaderboard #1's average on that change type; "—" means it has no settled predictions there yet.

Score distribution

Distribution · Score histogram + tier breakdown

Per IA D-05 the public surface publishes the shape of the score distribution — not per-miner identifiers. Bins are k-anonymity-collapsed to a 5-miner floor; the chain remains the source of truth for raw per-UID data.

Results · BD-2026-11-03

Search ×1.00

Plain-language summary

20 of 147 miners are earning today.

Earning today

20/147

14% of the field

Not earning

127

most: holding less alpha than the published hold

Top score

0.656

leader of the pool

Score range

0.169

Wide range

Why the other 127 are not earning

  • 50 holding less alpha than the published hold
  • 25 ranked below the earning cut
  • 25 a second hotkey on one owner
  • 15 running a model that already earns
  • 12 still building a track record

Each row below names the rule that applied to it, and who holds the seat where that matters. Scores are unaffected — they are facts either way.

Verifiable against chain

Signed and chain-anchored

2026-11-03

Every published day is attested and hash-chained to the day before, and the feed's rolling root is committed on chain — so one anchor covers the whole history, not a single block span.

Reproduce locally

python scripts/verify_day.py --url https://hope-bittensor-api.onrender.com --day 2026-11-03

Recomputes every score from the day's signed receipt. Prints "ok": true when they reproduce, and names the entry that disagrees when they do not.

Scoring · v1.2.1 · commit 34dbdfeabc

The per-miner leaderboard is at the top of this page.

Score range · 145 miners scored

Aggregate summary

Scores landed between 0.487 and 0.656 — top score 0.656

Range collapses to a 18.6-point window

mean · p25 0.500
median 0.570
p75 0.604
top 0.656

0.478

0.665

Axis is auto-zoomed to the data range so percentile positions are legible even when the underlying histogram bins are coarse. Score cuts shown above are exact; positioning is proportional.

Score distribution for SN21 epoch BD-2026-11-03 (Search) Histogram of 145 qualifying miners across 13 score bins. Y-axis is miner count; x-axis is epoch-weighted score in the range 0.00 to 1.00. Each bin contains at least 5 miners per the k-anonymity rule. Equivalent data table follows below the chart. 0 12.5 25 37.5 50 Score 0.00–0.20: 13 miners Score 0.20–0.25: 5 miners Score 0.25–0.45: 13 miners Score 0.45–0.50: 10 miners Score 0.50–0.55: 16 miners Score 0.55–0.60: 49 miners Score 0.60–0.70: 39 miners Score 0.70–0.75: 0 miners Score 0.75–0.80: 0 miners Score 0.80–0.85: 0 miners Score 0.85–0.90: 0 miners Score 0.90–0.95: 0 miners Score 0.95–1.00: 0 miners 0.00 0.20 0.25 0.45 0.50 0.55 0.60 0.70 0.75 0.80 0.85 0.90 0.95 1.00 Score (epoch-weighted mean) Miners
Summary: mean 0.50, median 0.57, p25 0.49, p75 0.60, max 0.66. Bins are collapsed to satisfy a 5-miner minimum (k-anonymity floor) per IA D-05. The on-chain block range and scoring formula commit below let you reconcile every number to the validator output.
Score range Miner count Share of pool
0.00–0.20 13 9.0%
0.20–0.25 5 3.4%
0.25–0.45 13 9.0%
0.45–0.50 10 6.9%
0.50–0.55 16 11.0%
0.55–0.60 49 33.8%
0.60–0.70 39 26.9%
0.70–0.75 0 0.0%
0.75–0.80 0 0.0%
0.80–0.85 0 0.0%
0.85–0.90 0 0.0%
0.90–0.95 0 0.0%
0.95–1.00 0 0.0%

Position bands · Find where you sit

Score cuts at every quartile — match your score to a band.

5 bands

Band Score cut Tier hint What it means
Top score
0.656 Elite · 60% Highest score achieved by any miner in this epoch’s qualifying pool.
Top 25%
0.604 Elite · 60% Scoring at or above this puts you in the top quartile of the pool.
Mean score
0.500 — Average across the qualifying pool — useful proxy for the conditional-prior baseline.
Median
0.570 Competitive · 30% Half the pool scored at or above this, half below.
Bottom 25%
0.487 Participating · 10% Scoring at or below this puts you in the bottom quartile of the pool.

Tier hints are heuristic from this epoch's percentile cuts. Actual tier membership depends on EMA across multiple epochs vs the conditional-prior baseline + 1σ. See Methodology.

Score → band calculator

Heuristic

Enter a value between 0.000 and 1.000. Defaults shown match this epoch's distribution.

p25 0.487 · p50 0.570 · p75 0.604 · max 0.656

Band placement

Enter a score above

—

—

Headline numbers

Pool size
145
Baseline beat rate
100.0%
Epoch type
Search multiplier 1×
Registered UIDs
256

145/256 passed the gate.

Tier distribution

Tier Count Share of pool Share of emissions
Elite 16 11.0% 60.0%
Competitive 32 22.1% 30.0%
Participating 33 22.8% 10.0%

Elite-tier floor: met this epoch.

Accuracy by change type moved to the Performance tab — the cumulative picture with best model, current winner and score parts.

What does the score mean?

The score is an accuracy score from 0 to 1, where 1 is a perfect prediction. A score of 0.6 means the model is about 60% of the way to perfect. It is not the percentage of predictions that were correct.

It blends four things:

  • Closeness (half the score). The model gives a low, middle and high estimate for each change. This measures how close that range sat to what actually happened.
  • Honest confidence (a fifth). When the model claims to be sure, the real result should land inside its range about as often as it claims. Sounding confident and being wrong costs score.
  • Direction (15%). Did it call the move up or down correctly.
  • The account's own goal (15%). A lead business is judged on leads, a shop on sales value — the model has to get the metric that account actually cares about.

The leaderboard number is not a single day: it is the average of a model's recent predictions, where recent work counts more than old (a score twelve days old counts half). Predictions are locked before any outcome exists, and a day's first score settles about 15 days after its basket — 7 days of outcomes plus a settling week so late conversions count.

Mining? Look up your own scores by hotkey — per-day entries, win/lose by change type, and the signed receipt that lets you reproduce every number.

On-chain record

Block range
0–0
Scoring formula version
1.2.1 @ 34dbdfe
Validator output snapshot
2026-11-03T10:47:26.224Z
Chain fetch
2026-11-03T10:47:26.125Z
Horizon set
7d, 14d, 28d

Published epochs

Epochs · Frozen records, newest first

Every closed epoch publishes as a permanent record at /predictions/epochs/[release_key]. Published rows are immutable per IA D-13; corrections appear as separate rows, not edits.

90 epoch slots · newest first · 22 have corrections

  1. BD-2026-11-03 Search · campaign-level pool 145 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 34dbdfe
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  2. BD-2026-11-02 Search · campaign-level pool 143 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 34dbdfe
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  3. BD-2026-11-01 Search · campaign-level pool 140 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 34dbdfe
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  4. BD-2026-10-31 Search · campaign-level pool 140 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ af0fb44
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  5. BD-2026-10-30 Search · campaign-level pool 136 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ b0cbd6c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  6. BD-2026-10-29 Search · campaign-level pool 132 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ b0cbd6c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  7. BD-2026-10-28 Search · campaign-level pool 136 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ b0cbd6c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  8. BD-2026-10-27 Search · campaign-level pool 140 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ b0cbd6c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  9. BD-2026-10-26 Search · campaign-level pool 137 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ b0cbd6c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  10. BD-2026-10-25 Search · campaign-level pool 126 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ b0cbd6c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  11. BD-2026-10-24 Search · campaign-level pool 124 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ f106cbf
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  12. BD-2026-10-23 Search · campaign-level pool 120 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ e85eacb
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  13. BD-2026-10-22 Search · campaign-level pool 117 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ e2d4c12
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  14. BD-2026-10-21 Search · campaign-level pool 118 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ e2d4c12
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  15. BD-2026-10-20 Search · campaign-level pool 127 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ e2d4c12
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  16. BD-2026-10-19 Search · campaign-level pool 126 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ e2d4c12
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  17. BD-2026-10-18 Search · campaign-level pool 117 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 808bc22
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  18. BD-2026-10-17 Search · campaign-level pool 117 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 808bc22
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  19. BD-2026-10-16 Search · campaign-level pool 117 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 8aec3c8
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  20. BD-2026-10-15 Search · campaign-level pool 121 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 8aec3c8
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  21. BD-2026-10-14 Search · campaign-level pool 123 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 128f7d9
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  22. BD-2026-10-13 Search · campaign-level pool 124 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ d0fad2d
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  23. BD-2026-10-12 Search · campaign-level pool 124 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 662fad7
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  24. BD-2026-10-11 Search · campaign-level pool 124 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 662fad7
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  25. BD-2026-10-10 Search · campaign-level pool 122 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 662fad7
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  26. BD-2026-10-09 Search · campaign-level pool 122 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 662fad7
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  27. BD-2026-10-08 Search · campaign-level pool 118 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ b0bc708
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  28. BD-2026-10-07 Search · campaign-level pool 118 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ b0bc708
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  29. BD-2026-10-06 Search · campaign-level pool 118 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ b0bc708
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  30. BD-2026-10-05 Search · campaign-level pool 115 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 6b24e0c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  31. BD-2026-10-04 Search · campaign-level pool 128 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 6b24e0c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  32. BD-2026-10-03 Search · campaign-level pool 128 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 6b24e0c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  33. BD-2026-10-02 Search · campaign-level pool 127 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 6b24e0c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  34. BD-2026-10-01 Search · campaign-level pool 123 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 6b24e0c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  35. BD-2026-09-30 Search · campaign-level pool 125 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 6b24e0c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  36. BD-2026-09-29 Search · campaign-level pool 125 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 6b24e0c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  37. BD-2026-09-28 Search · campaign-level pool 125 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 6b24e0c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  38. BD-2026-09-27 Search · campaign-level pool 127 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 6b24e0c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  39. BD-2026-09-26 Search · campaign-level pool 128 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 6b24e0c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  40. BD-2026-09-25 Search · campaign-level pool 130 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 6b24e0c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  41. BD-2026-09-24 Search · campaign-level pool 130 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 6b24e0c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  42. BD-2026-09-23 Search · campaign-level pool 130 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 6b24e0c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  43. BD-2026-09-22 Search · campaign-level pool 130 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 6b24e0c
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  44. BD-2026-09-21-COR-1 Search · campaign-level Corrected · 1 prior pool 128 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 85ed3c8
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  45. BD-2026-09-20-COR-1 Search · campaign-level Corrected · 1 prior pool 129 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 46a35dd
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  46. BD-2026-09-19 Search · campaign-level pool 130 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 725fdf7
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  47. BD-2026-09-18 Search · campaign-level pool 131 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 098210f
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  48. BD-2026-09-17 Search · campaign-level pool 132 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 098210f
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  49. BD-2026-09-16 Search · campaign-level pool 132 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 2375996
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  50. BD-2026-09-15 Search · campaign-level pool 132 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 8b68ec4
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  51. BD-2026-09-14-COR-1 Search · campaign-level Corrected · 1 prior pool 132 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 884ae5e
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  52. BD-2026-09-13-COR-2 Search · campaign-level Corrected · 2 prior pool 128 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 73b7de0
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  53. BD-2026-09-12-COR-2 Search · campaign-level Corrected · 2 prior pool 128 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 73b7de0
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  54. BD-2026-09-11 Search · campaign-level pool 130 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 57c792d
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  55. BD-2026-09-10 Search · campaign-level pool 129 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 63faef0
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  56. BD-2026-09-09 Search · campaign-level pool 127 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 2c4b5b7
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  57. BD-2026-09-08-COR-1 Search · campaign-level Corrected · 1 prior pool 125 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 2c4b5b7
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  58. BD-2026-09-07-COR-1 Search · campaign-level Corrected · 1 prior pool 122 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 0c0b23a
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  59. BD-2026-09-06-COR-1 Search · campaign-level Corrected · 1 prior pool 122 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 861fdfc
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  60. BD-2026-09-05-COR-2 Search · campaign-level Corrected · 2 prior pool 122 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ b845527
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  61. BD-2026-09-04 Search · campaign-level pool 121 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 75618fb
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  62. BD-2026-09-03 Search · campaign-level pool 118 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 799f4b3
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  63. BD-2026-09-02-COR-2 Search · campaign-level Corrected · 2 prior pool 118 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 799f4b3
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  64. BD-2026-09-01 Search · campaign-level pool 118 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 6450130
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  65. BD-2026-08-31-COR-2 Search · campaign-level Corrected · 2 prior pool 119 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 6450130
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  66. BD-2026-08-30-COR-1 Search · campaign-level Corrected · 1 prior pool 122 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ f678ad5
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  67. BD-2026-08-29-COR-5 Search · campaign-level Corrected · 5 prior pool 123 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 9e0da63
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  68. BD-2026-08-28-COR-1 Search · campaign-level Corrected · 1 prior pool 124 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 28d9e84
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  69. BD-2026-08-27 Search · campaign-level pool 124 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 121aba4
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  70. BD-2026-08-26 Search · campaign-level pool 114 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ a83e1d6
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  71. BD-2026-08-25 Search · campaign-level pool 118 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 4fb93af
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  72. BD-2026-08-24 Search · campaign-level pool 120 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 8463fde
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  73. BD-2026-08-23 Search · campaign-level pool 120 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 84e001d
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  74. BD-2026-08-22-COR-1 Search · campaign-level Corrected · 1 prior pool 120 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 01d18d9
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  75. BD-2026-08-21 Search · campaign-level pool 117 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ 5e39f21
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  76. BD-2026-08-20 Search · campaign-level pool 117 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ b279dca
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  77. BD-2026-08-18-COR-1 Search · campaign-level Corrected · 1 prior pool 112 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ b279dca
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  78. WR-2026-W32-PUB-E1 Search · campaign-level pool 15 beat 93.3% —
    Block range
    8414168–8813452
    Formula
    1.2.1 @ 7cdf7d7
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  79. WR-2026-W31-PUB-E1 Search · campaign-level pool 141 beat 100.0% —
    Block range
    8414168–8763768
    Formula
    1.2.1 @ 7cdf7d7
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  80. WR-2026-W30-PUB-E1 Search · campaign-level pool 125 beat 100.0% —
    Block range
    8414168–8713416
    Formula
    1.2.1 @ 7cdf7d7
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  81. WR-2026-W29-PUB-E1 Search · campaign-level pool 120 beat 100.0% —
    Block range
    8414168–8662242
    Formula
    1.2.1 @ 7cdf7d7
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  82. WR-2026-W28-PUB-E1 Search · campaign-level pool 100 beat 100.0% —
    Block range
    8355702–8611981
    Formula
    1.2.1 @ 7cdf7d7
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  83. WR-2026-W27-PUB-E1-COR-1 Search · campaign-level Corrected · 1 prior pool 92 beat 100.0% —
    Block range
    0–0
    Formula
    1.2.1 @ c79e255
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  84. WR-2026-W26-PUB-E1-COR-1 Search · campaign-level Corrected · 1 prior pool 98 beat 100.0% —
    Block range
    8355702–8512403
    Formula
    1.2.1 @ 7cdf7d7
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  85. WR-2026-W25-PUB-E1 Search · campaign-level pool 88 beat 100.0% —
    Block range
    8355702–8461824
    Formula
    1.2.1 @ 7cdf7d7
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

  86. WR-2026-W24-PUB-E1-COR-1 Search · campaign-level Corrected · 1 prior pool 22 beat 100.0% —
    Block range
    8413094–8413096
    Formula
    1.2.1 @ 8cd3fdc
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  87. WR-2026-W21-RERUN-E1-COR-1 Search · campaign-level Corrected · 1 prior pool 26 beat 100.0% —
    Block range
    8219538–8363696
    Formula
    1.2.1 @ b8b77a9
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  88. WR-2026-W22-PUB-E1-COR-3 Search · campaign-level Corrected · 3 prior pool 54 beat 100.0% —
    Block range
    8219538–8313781
    Formula
    1.2.1 @ a04e036
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  89. WR-2026-W21-COR-3 Search · campaign-level Corrected · 3 prior pool 16 beat 100.0% —
    Block range
    8208900–8258914
    Formula
    1.2.1 @ 91705b5
    Multiplier
    1.00×
    Registered UIDs
    256

    Open permanent record

    Prior versions of this epoch slot (archived)

  90. WR-2026-W99-SMOKE-E1 Search · campaign-level pool 50 beat 76.0% —
    Block range
    4823091–4830290
    Formula
    1.2.1 @ a1b2c3d
    Multiplier
    1.00×
    Registered UIDs
    64

    Open permanent record

Methodology

Methodology · Verification map

Every number on this dashboard is reconcilable to on-chain validator output. The links and procedure below are the entry points for verifying any published epoch independently — the chain is the source of truth; this site mirrors the spec and surfaces aggregates.

Verification path · From spec to chain

3 steps

Step 1 / 3

Read the spec

Mirrored canonical SN21 documents on this site — whitepaper, reward mechanism, epoch structure.

Open whitepaper

Step 2 / 3

Run the verifier

scripts/verify_day.py checks any published day: the signed receipt, the hash chain, the on-chain anchor, and every score recomputed.

View on GitHub

Step 3 / 3

Cross-check the chain

Block range + scoring formula commit on every record lets you query the chain directly.

Latest record

Canonical SN21 documents (mirrored on this site)

Independent verification

scripts/verify_day.py in the SN21 repo fetches a day's signed receipt, checks its signature, the hash chain and the on-chain anchor, re-runs the open-source scoring code, and names the exact entry if anything disagrees.

bash verify_day.py
python scripts/verify_day.py \
    --url https://hope-bittensor-api.onrender.com \
    --day YYYY-MM-DD \
    --miner <your hotkey>   # optional: only your entries

No keys and no archive node needed: the receipt, proof and allocation audit are public. Add --expect-anchor with the root you read from the chain to close the loop yourself. Weekly epochs before 3 August 2026 use scripts/verify_epoch.py.

How to verify

Why aggregate-only · IA decision D-05

Per-miner emissions on SN21 are derivable from per-miner scores (Reward Mechanism §"Component 2"). Publishing per-UID scores publishes per-UID emissions — doxxing-adjacent, and a strong anti-coordination signal. The chain already exposes per-UID data to anyone who queries it. The dashboard publishes what the chain does not: the shape of the distribution, the size of the qualifying pool, the baseline-beat rate, and the scoring formula version that produced them.

API & schema

API & schema · Public read surface for researchers and validators

Every published epoch is reachable as JSON without a key. Drop the cURL line into a terminal, the Python snippet into a Jupyter cell, and you have the same data the dashboard is rendering — plus the provenance fields needed to reconcile against the chain.

Endpoints · Read-only, no auth, JSON

Latest published epoch

GET 200

https://adtao.io/api/sn21/latest.json

Returns { epoch: EpochReport | null } — the freshest published row, or null until the first publish click. 60-second cache.

All published epochs

GET 200

https://adtao.io/api/sn21/index.json

Returns { count, epochs: EpochReport[] } newest first. Canonical snake_case pydantic shape per the SN21 source-of-truth model. 60-second cache.

Total fields

21

Nullable

3

Aggregate-only

D-05

Schema version

v1.0

Quickstart · Read in 30 seconds

bash terminal
curl -sSL "https://adtao.io/api/sn21/latest.json" \
  -H "Accept: application/json" | jq '.epoch'

Returns the full EpochReport JSON. Pair with jq for pretty-printing.

python stdlib only
import json, urllib.request

URL = "https://adtao.io/api/sn21/latest.json"

with urllib.request.urlopen(URL) as r:
    resp = json.loads(r.read())

epoch = resp["epoch"]
if epoch is None:
    raise SystemExit("no published epochs yet")

print(f"Epoch        {epoch['epoch_id']}")
print(f"Pool size    {epoch['pool_size']} of {epoch['total_registered_uids']}")
print(f"Beat rate    {epoch['baseline_beat_rate']:.1%}")
print(f"Formula      {epoch['scoring_formula_version']} @ {epoch['scoring_formula_commit'][:7]}")
print(f"Blocks       {epoch['block_range_start']}-{epoch['block_range_end']}")

Zero dependencies — uses urllib from the stdlib.

Schema · 21 public fields

Pydantic source-of-truth

Field Type Units Semantic
epoch_id string release-key Canonical SN21 release key — BD-2026-08-20 in the daily stream, WR-2026-W21-PUB-E1 in the weekly era. Stable URL path component.
epoch_type string enum Standard epoch classification (Daily, Search, Discovery, …). Drives epoch_type_multiplier.
epoch_subtype string | null — Optional sub-classification when epoch_type alone is insufficient.
block_range_start integer block height Inclusive lower bound of the chain blocks aggregated for this epoch.
block_range_end integer block height Inclusive upper bound. Reconcile via a Bittensor archive node.
scoring_formula_version string semver Released aggregator wire-shape version. Pinned per epoch.
scoring_formula_commit string git sha (40) Commit hash of SN21-adtao at epoch close. Links to the SHA-pinned source.
horizon_set string[] duration Time horizons the scoring formula evaluated — 7d, 14d, 28d in the daily stream; 7d, 14d in the weekly era.
epoch_type_multiplier float × Emission multiplier applied to this epoch_type. Constants per epoch type.
pool_size integer miners Count of qualifying miners (passed the participation gate).
total_registered_uids integer miners Count of UIDs registered on netuid 21 at epoch close.
pool_size_below_distribution_floor boolean — True when pool_size < 15; histogram is omitted in that case.
baseline_beat_rate float ratio (0–1) Share of pool with EMA above the conditional-prior baseline.
score_distribution object | null histogram bin_edges, bin_counts, summary {mean, median, p25, p75, max}. Null when pool below floor.
tier_distribution object — elite, competitive, participating { count, share_of_pool, share_of_emissions } + elite_floor_met.
tier_split_active boolean — False when the pool collapses to a single undivided group.
emergency_intervention object — { triggered, type, outcome, summary_text }. Routine epochs read { triggered: false }.
validator_output_snapshot_timestamp string ISO 8601 UTC When the validator output was captured for this aggregation.
chain_fetch_timestamp string ISO 8601 UTC When the chain reading completed.
commentary_markdown string | null markdown Optional human commentary. Null on routine epochs.
aggregator_version integer — Wire-shape version of the aggregator. Bumped when the same input produces different output.

Full reproducibility · Re-run an epoch end-to-end

The dashboard reads from the JSON endpoint. The JSON came from the aggregator. The aggregator reads chain + validator output. The chain is the source of truth. Re-run the aggregator with the same inputs and you get the same JSON — or a discrepancy you can act on.

bash SN21-adtao
git clone https://github.com/ippcteam/SN21-adtao.git
cd SN21-adtao && pip install -e .
python scripts/verify_epoch.py \
    --epoch-id WR-2026-W21-PUB-E1 \
    --validator-hotkey 5GxVLdpRGZN... \
    --tier-2-base https://archive.example.io

Needs Python 3.11+ and a Bittensor archive node URL. The full score recomputation also needs the operator's truth-file (reveal blob per §9.A.2). Chain-integrity mode does not.

verify_epoch.py

Reading paths · One surface, four audiences

Pick your entry