Finding 01 — Hardcore score is survival time, and survival is a flow-balance problem
Status: exploratory, evidence tier development (64 paired whole games on a
fresh exploratory lease). Reproduced in this checkout on 2026-08-20.
Namespace: approaches/lifetime-objective/score-decomposition, run
runs/RUN-A51D-d4/, seed lease SEEDLEASE-A51D.
Nothing in docs/research/ was modified by this work.
Summary
Two facts, both measured rather than assumed:
-
Score is lifetime. Across 64 fair-D4 games the correlation between final score and moves survived is r = 0.9995. 94.3% of all points came from the flat 17,000-point row-rise bonus, 5.7% from chain waves, and 0.0% from board clears — there were none in 64 games. Points per move was 3,423, against a theoretical ceiling of 17,000 / 5 = 3,400 from rises alone.
-
Lifetime is a conservation law. Every five-move cycle inserts 5 placed discs + 7 risen covered discs = 12 discs onto a 49-cell board. A policy therefore survives indefinitely only if it sustains
- ≥ 2.400 numbered clears per move (12 / 5), and
- ≥ 1.400 covered reveals per move (7 / 5).
Fair D4 sustains 1.973 clears and 1.090 reveals per move. It is running a structural deficit of 18% and 22%. That deficit, not chain design, is what ends its games.
The million-point target is consequently a lifetime target: at 3,400 points per move a 1,000,000 mean requires a mean lifetime near 294 moves, versus the 94.06 measured here. That is a 3.1× survival problem.
Measured reference cohort
Fair D4, unmodified frozen source, 64 games, seeds 0xa51d0000–0xa51d003f,
2,000-move cap, 32 threads, 408 s wall.
| Metric | Value |
|---|---|
| Mean score | 321,991.7 |
| Median score | 266,282 |
| Q25 score | 188,701 |
| Min / max score | 104,731 / 1,017,234 |
| Score standard deviation | 187,502 |
| Mean moves | 94.06 |
| Median moves | 80.0 |
| Min / max moves | 35 / 280 |
| Censored games | 0 |
| Rises per game | 17.86 |
| Board clears per game | 0.000 |
| Points per move | 3,423.2 |
| Numbered clears per move | 1.973 |
| Covered reveals per move | 1.090 |
| Score-identity violations | 0 / 64 |
This is consistent with, and independently reproduces, the ledger-recorded figure of 308,295.578 points at 90.031 moves over 64 games. It is a fresh-seed reproduction, not a replay of the historical cohort.
Score decomposition
The engine's score is exactly
score = 17,000 x rises + 70,000 x boardClears + Σ_waves popperCount x floor(7 x depth^2.5)
The runner asserts this identity on every game; it held for 64/64.
| Source | Share of all points |
|---|---|
| Row-rise level bonus | 94.29% |
| Chain waves | 5.71% |
| Board clears | 0.00% |
The same decomposition next to the policies later measured in
finding-06 §4 puts this cohort in context:
Source data
Shares of total points from the 17,000-point row-rise bonus, chain waves, and the 70,000-point board clear, copied verbatim from finding-01's Score decomposition table (64 fair-D4 games, base engine, seeds 0xa51d0000-0xa51d003f) and finding-06 section 4 (8-game master-tape cohorts in the latent scenario engine, 400-move cap). The two engines are not bit-comparable (audit-01 M2); the finding-01 row and the finding-06 rows are separate cohorts and are placed side by side, never pooled. Board clears are 0.00% in every row — zero board clears in 19,610 measured moves on realistic boards (finding-06 section 5). finding-01 pairs its 94.29% with r(score, moves) = 0.9995 over 64 games: score is survival. The rh-points row is the World-A test: 51.56% of its points from chain waves at 1.75x the points per move — and it still loses 1,123,130 to 1,544,461 on the mean because it cuts lifetime by 58%. Recorded rows of the same finding-06 table NOT charted (the plan's selection of five): rh-clears H5 89.99/10.01/0.00, rh-clears H7 87.27/12.73/0.00, rh-clears H9 cap-1000 87.97/12.03/0.00, and the H9 window optimum 53.77/46.23/0.00. The eight-tape cohort is now known to favour long games (finding-12); these are composition shares rather than lifetimes, but the cohort caveat stands. Evidence tier: development/pilot.
| Series | policy (engine and cohort in the popover) | share of all points | Bounds | n | Source |
|---|---|---|---|---|---|
| row-rise bonus | fair D4 · finding-01 base engine, 64 games; 3,423 points/move; r(score, moves) = 0.9995 | 94.29 % | — | 64 | docs/exploratory/finding-01-score-is-survival.md Score decomposition table |
| row-rise bonus | lowest column scenario engine, 8 master tapes; 2,932 points/move | 98.47 % | — | 8 | docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table |
| row-rise bonus | fair D4 · finding-06 scenario engine, 8 master tapes; 3,482 points/move | 93.81 % | — | 8 | docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table |
| row-rise bonus | rh-clears H9 clairvoyant clear-seeker; 3,891 points/move; 7/8 alive at the 400-move cap | 87.23 % | — | 8 | docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table |
| row-rise bonus | rh-points H9 clairvoyant score-seeker; 6,807 points/move but 165.00 mean moves — loses on the mean | 48.44 % | — | 8 | docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table |
| chain waves | fair D4 · finding-01 a five-deep seven-disc wave is worth 2,737 points — 0.16 of one row rise | 5.71 % | — | 64 | docs/exploratory/finding-01-score-is-survival.md Score decomposition table |
| chain waves | lowest column | 1.53 % | — | 8 | docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table |
| chain waves | fair D4 · finding-06 | 6.19 % | — | 8 | docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table |
| chain waves | rh-clears H9 | 12.77 % | — | 8 | docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table |
| chain waves | rh-points H9 the only policy whose points come mostly from chains — and it dies at 165 moves | 51.56 % | — | 8 | docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table |
| board clears | fair D4 · finding-01 no board clears in 64 games | 0 % | — | 64 | docs/exploratory/finding-01-score-is-survival.md Score decomposition table |
| board clears | lowest column | 0 % | — | 8 | docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table |
| board clears | fair D4 · finding-06 | 0 % | — | 8 | docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table |
| board clears | rh-clears H9 | 0 % | — | 8 | docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table |
| board clears | rh-points H9 | 0 % | — | 8 | docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table |
Spec: web/content/figures/score-composition.json · 2 source records
Chain-wave points are small by construction: a wave awards 7 points per disc at depth 1, 39 at depth 2, 109 at depth 3, 224 at depth 4, 391 at depth 5. A five-deep, seven-disc wave — a spectacular play — is worth 2,737 points, or 0.16 of one row rise. The 70,000-point board clear is worth 20.6 moves of survival but was never once achieved in 64 games of the strongest known policy.
Flow balance predicts lifetime
Sorting the 64 games by lifetime and grouping into quartiles:
| Group | n | Mean moves | Mean score | Clears/move | Reveals/move |
|---|---|---|---|---|---|
| Shortest 16 | 16 | 44.7 | 138,762 | 1.471 | 0.732 |
| Second 16 | 16 | 70.0 | 232,515 | 1.812 | 0.975 |
| Third 16 | 16 | 99.5 | 341,310 | 1.989 | 1.099 |
| Longest 16 | 16 | 162.1 | 575,380 | 2.147 | 1.216 |
| Steady-state requirement | ∞ | 2.400 | 1.400 |
Correlations over whole games: clears/move vs. moves r = 0.804, reveals/move vs. moves r = 0.770, score vs. moves r = 0.9995.
The single million-point game in the cohort (1,017,234 points, 280 moves,
seed 0xa51d0033) reached 2.229 clears and 1.254 reveals per move — closer to
the balance point than any other game, and still below it. Its 82,234 chain
points are 8.1% of its score; the other 91.9% is survival.
Why this matters for the research program
It reframes the objective. The program's documents describe three competing jobs — stay alive, open the board, prepare chains — and much of the historical work went into chain structure and score prediction. The measurement says the third job is worth 5.7% of the score and only matters insofar as clearing discs is how you stay alive. There is one job with two names.
It explains a documented failure pattern. docs/research/status.md records
that learned value models repeatedly fit visited states and then failed to rank
unplayed siblings. Part of that difficulty is target conditioning: raw score is
a 17,000-quantized, heavy-tailed variable with a standard deviation of 187,502
in this cohort — 58% of its own mean. Remaining lifetime is the same quantity
divided by 3,400, with no heavy tail and no quantization. Per-move flow
(clears and reveals) is denser still: it yields one labelled observation per
move rather than one per game, with a bounded range.
It gives the 2.4 / 1.4 diagnostic a derivation. status.md describes
"roughly 2.4 numbered clears and 1.4 reveals per move" as an empirical region
"associated with stable long games" and warns they are "diagnostic targets from
limited runs, not proven universal thresholds." They are neither empirical nor
approximate: they are 12/5 and 7/5, the exact disc-conservation requirement of
the five-move rise cadence on a 49-cell board. They are necessary conditions for
unbounded survival, and this cohort confirms the engine obeys them.
It bounds what search can do. Rises occur every five moves; a depth-4 search sees at most one rise boundary and cannot observe the accumulation of a flow deficit over the eight-plus cycles that separate a 90-move game from a 294-move one. The deficit is a slow variable. This is a direct, quantitative argument for a learned long-horizon evaluator rather than deeper exact search, and it says what that evaluator should predict.
Trivial-policy control cohort
To separate "value of search" from "value of merely being alive", three deliberately weak policies were run on the same 64 seeds:
| Policy | Mean score | Mean moves | Level share | Board clears |
|---|---|---|---|---|
| Center-first | 57,233 | 21.64 | 98.9% | 0 |
| Random legal | 80,778 | 28.44 | 98.7% | 0 |
| Lowest column | 100,050 | 33.28 | 98.5% | 0 |
| Fair D4 | 321,992 | 94.06 | 94.3% | 0 |
Fair D4 buys 3.2× the lifetime of uniformly random legal play. Reaching the target requires buying a further 3.1× on top of that.
Limitations
- 64 games on one exploratory lease. The score standard deviation is 58% of the mean, so the mean is known to roughly ±46,000 at one standard error.
- The flow-balance requirement is a necessary condition for indefinite survival, not a sufficient one; a policy can meet it locally and still die by stacking a single column into the top row.
- Board clears were absent here, so this cohort says nothing about whether a clear-seeking policy could change the economics. At 70,000 points a clear is worth 20.6 moves, so a policy achieving one clear per 20 moves would double the points-per-move rate. Nothing in this repository has measured whether that is reachable; that is a separate open question, not a refuted one.
- These figures describe the repository's simulator. See
audit-01-engine-fidelity.mdfor two identified rise-boundary scoring discrepancies against the cited reference implementation, both of which act at rise boundaries and therefore act directly on the quantity measured here.
Reproduce
./approaches/lifetime-objective/score-decomposition/build.sh
./build/lifetime/decompose --policy fair-d4 --seed-start 0xa51d0000 \
--games 64 --max-moves 2000 --threads 32 --output runs/RUN-A51D-d4/d4-standard64.json