Drop7 Research
← Docs
docs/exploratory/finding-01-score-is-survival.md

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:

  1. 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.

  2. 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 0xa51d00000xa51d003f, 2,000-move cap, 32 threads, 408 s wall.

MetricValue
Mean score321,991.7
Median score266,282
Q25 score188,701
Min / max score104,731 / 1,017,234
Score standard deviation187,502
Mean moves94.06
Median moves80.0
Min / max moves35 / 280
Censored games0
Rises per game17.86
Board clears per game0.000
Points per move3,423.2
Numbered clears per move1.973
Covered reveals per move1.090
Score-identity violations0 / 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.

SourceShare of all points
Row-rise level bonus94.29%
Chain waves5.71%
Board clears0.00%

The same decomposition next to the policies later measured in finding-06 §4 puts this cohort in context:

Score composition by policy — the row-rise bonus is the score; only the points-maximizing clairvoyant escapes it Score composition by policy — the row-rise bonus is the score; only the points-maximizing clairvoyant escapes it. 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. Sources: docs/exploratory/finding-01-score-is-survival.md, docs/exploratory/finding-06-flow-ceiling.md. Score composition by policy — the row-rise bonus is the score; only thepoints-maximizing clairvoyant escapes it020406080100fair D4 ·finding-01lowest columnfair D4 ·finding-06rh-clears H9rh-points H9share of all points (%)policy (engine and cohort in the popover)row-rise bonus — fair D4 · finding-01 | base engine, 64 games; 3,423 points/move; r(score, moves) = | 0.9995 | share of all points: +94.29 % | n = 64 games | source: docs/exploratory/finding-01-score-is-survival.md · Score | decomposition tablerow-rise bonus — fair D4 · finding-01base engine, 64 games; 3,423 points/move; r(score, moves) =0.9995share of all points: +94.29 %n = 64 gamessource: docs/exploratory/finding-01-score-is-survival.md · Scoredecomposition tablerow-rise bonus — lowest column | scenario engine, 8 master tapes; 2,932 points/move | share of all points: +98.47 % | n = 8 games | source: docs/exploratory/finding-06-flow-ceiling.md · section 4 | score-composition tablerow-rise bonus — lowest columnscenario engine, 8 master tapes; 2,932 points/moveshare of all points: +98.47 %n = 8 gamessource: docs/exploratory/finding-06-flow-ceiling.md · section 4score-composition tablerow-rise bonus — fair D4 · finding-06 | scenario engine, 8 master tapes; 3,482 points/move | share of all points: +93.81 % | n = 8 games | source: docs/exploratory/finding-06-flow-ceiling.md · section 4 | score-composition tablerow-rise bonus — fair D4 · finding-06scenario engine, 8 master tapes; 3,482 points/moveshare of all points: +93.81 %n = 8 gamessource: docs/exploratory/finding-06-flow-ceiling.md · section 4score-composition tablerow-rise bonus — rh-clears H9 | clairvoyant clear-seeker; 3,891 points/move; 7/8 alive at the | 400-move cap | share of all points: +87.23 % | n = 8 games | source: docs/exploratory/finding-06-flow-ceiling.md · section 4 | score-composition tablerow-rise bonus — rh-clears H9clairvoyant clear-seeker; 3,891 points/move; 7/8 alive at the400-move capshare of all points: +87.23 %n = 8 gamessource: docs/exploratory/finding-06-flow-ceiling.md · section 4score-composition tablerow-rise bonus — rh-points H9 | clairvoyant score-seeker; 6,807 points/move but 165.00 mean | moves — loses on the mean | share of all points: +48.44 % | n = 8 games | source: docs/exploratory/finding-06-flow-ceiling.md · section 4 | score-composition tablerow-rise bonus — rh-points H9clairvoyant score-seeker; 6,807 points/move but 165.00 meanmoves — loses on the meanshare of all points: +48.44 %n = 8 gamessource: docs/exploratory/finding-06-flow-ceiling.md · section 4score-composition tablechain waves — fair D4 · finding-01 | a five-deep seven-disc wave is worth 2,737 points — 0.16 of one | row rise | share of all points: +5.71 % | n = 64 games | source: docs/exploratory/finding-01-score-is-survival.md · Score | decomposition tablechain waves — fair D4 · finding-01a five-deep seven-disc wave is worth 2,737 points — 0.16 of onerow riseshare of all points: +5.71 %n = 64 gamessource: docs/exploratory/finding-01-score-is-survival.md · Scoredecomposition tablechain waves — lowest column | share of all points: +1.53 % | n = 8 games | source: docs/exploratory/finding-06-flow-ceiling.md · section 4 | score-composition tablechain waves — lowest columnshare of all points: +1.53 %n = 8 gamessource: docs/exploratory/finding-06-flow-ceiling.md · section 4score-composition tablechain waves — fair D4 · finding-06 | share of all points: +6.19 % | n = 8 games | source: docs/exploratory/finding-06-flow-ceiling.md · section 4 | score-composition tablechain waves — fair D4 · finding-06share of all points: +6.19 %n = 8 gamessource: docs/exploratory/finding-06-flow-ceiling.md · section 4score-composition tablechain waves — rh-clears H9 | share of all points: +12.77 % | n = 8 games | source: docs/exploratory/finding-06-flow-ceiling.md · section 4 | score-composition tablechain waves — rh-clears H9share of all points: +12.77 %n = 8 gamessource: docs/exploratory/finding-06-flow-ceiling.md · section 4score-composition tablechain waves — rh-points H9 | the only policy whose points come mostly from chains — and it | dies at 165 moves | share of all points: +51.56 % | n = 8 games | source: docs/exploratory/finding-06-flow-ceiling.md · section 4 | score-composition tablechain waves — rh-points H9the only policy whose points come mostly from chains — and itdies at 165 movesshare of all points: +51.56 %n = 8 gamessource: docs/exploratory/finding-06-flow-ceiling.md · section 4score-composition tableboard clears — fair D4 · finding-01 | no board clears in 64 games | share of all points: 0 % | n = 64 games | source: docs/exploratory/finding-01-score-is-survival.md · Score | decomposition tableboard clears — fair D4 · finding-01no board clears in 64 gamesshare of all points: 0 %n = 64 gamessource: docs/exploratory/finding-01-score-is-survival.md · Scoredecomposition tableboard clears — lowest column | share of all points: 0 % | n = 8 games | source: docs/exploratory/finding-06-flow-ceiling.md · section 4 | score-composition tableboard clears — lowest columnshare of all points: 0 %n = 8 gamessource: docs/exploratory/finding-06-flow-ceiling.md · section 4score-composition tableboard clears — fair D4 · finding-06 | share of all points: 0 % | n = 8 games | source: docs/exploratory/finding-06-flow-ceiling.md · section 4 | score-composition tableboard clears — fair D4 · finding-06share of all points: 0 %n = 8 gamessource: docs/exploratory/finding-06-flow-ceiling.md · section 4score-composition tableboard clears — rh-clears H9 | share of all points: 0 % | n = 8 games | source: docs/exploratory/finding-06-flow-ceiling.md · section 4 | score-composition tableboard clears — rh-clears H9share of all points: 0 %n = 8 gamessource: docs/exploratory/finding-06-flow-ceiling.md · section 4score-composition tableboard clears — rh-points H9 | share of all points: 0 % | n = 8 games | source: docs/exploratory/finding-06-flow-ceiling.md · section 4 | score-composition tableboard clears — rh-points H9share of all points: 0 %n = 8 gamessource: docs/exploratory/finding-06-flow-ceiling.md · section 4score-composition tablerow-rise bonuschain wavesboard clears
Where each policy's points come from. Every survival-oriented policy earns roughly nine-tenths of its score from the flat row-rise bonus; the one planner that escapes that split — the clairvoyant score-maximizer — pays for its chains with its lifetime.
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.

Seriespolicy (engine and cohort in the popover)share of all pointsBoundsnSource
row-rise bonusfair D4 · finding-01 base engine, 64 games; 3,423 points/move; r(score, moves) = 0.999594.29 %64docs/exploratory/finding-01-score-is-survival.md Score decomposition table
row-rise bonuslowest column scenario engine, 8 master tapes; 2,932 points/move98.47 %8docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table
row-rise bonusfair D4 · finding-06 scenario engine, 8 master tapes; 3,482 points/move93.81 %8docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table
row-rise bonusrh-clears H9 clairvoyant clear-seeker; 3,891 points/move; 7/8 alive at the 400-move cap87.23 %8docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table
row-rise bonusrh-points H9 clairvoyant score-seeker; 6,807 points/move but 165.00 mean moves — loses on the mean48.44 %8docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table
chain wavesfair D4 · finding-01 a five-deep seven-disc wave is worth 2,737 points — 0.16 of one row rise5.71 %64docs/exploratory/finding-01-score-is-survival.md Score decomposition table
chain waveslowest column1.53 %8docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table
chain wavesfair D4 · finding-066.19 %8docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table
chain wavesrh-clears H912.77 %8docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table
chain wavesrh-points H9 the only policy whose points come mostly from chains — and it dies at 165 moves51.56 %8docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table
board clearsfair D4 · finding-01 no board clears in 64 games0 %64docs/exploratory/finding-01-score-is-survival.md Score decomposition table
board clearslowest column0 %8docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table
board clearsfair D4 · finding-060 %8docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table
board clearsrh-clears H90 %8docs/exploratory/finding-06-flow-ceiling.md section 4 score-composition table
board clearsrh-points H90 %8docs/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:

GroupnMean movesMean scoreClears/moveReveals/move
Shortest 161644.7138,7621.4710.732
Second 161670.0232,5151.8120.975
Third 161699.5341,3101.9891.099
Longest 1616162.1575,3802.1471.216
Steady-state requirement2.4001.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:

PolicyMean scoreMean movesLevel shareBoard clears
Center-first57,23321.6498.9%0
Random legal80,77828.4498.7%0
Lowest column100,05033.2898.5%0
Fair D4321,99294.0694.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.md for 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
For a walkthrough with board animations, start at how the game works and the concepts primer; every term is defined in the glossary.