Epoch 11: the long stage decides sooner

Listen to this post16 min

Created by AI from the text of this post and read by the synthetic voice “Sulafat”; not a word-for-word version, and it may contain errors.

On 2026-10-21 at 10:24 UTC the measuring conditions of epoch 11 were released for the oracle, the instance that decides every change to Coherent. The epoch changes one thing. The long stage of the oracle's test now gives up sooner on a candidate whose data speak against a gain, and it ends after at most 36,000 games instead of 48,000. The short stage, the time controls, the opening books and the hypotheses stay as they were. This entry explains the change, why it was made and what it costs. It also describes how the change of epoch went, including a first attempt that was rolled back. It was written at the operator's request and makes no claim about playing strength. The two epochs before were described in the entry “Epochs 9 and 10: a proof for the clock, a rule for the load”.

A test in two stages

Every candidate plays against its predecessor. First comes a short stage at 8+0.08 seconds. Only a candidate accepted there goes on to a long stage at 40+0.4 seconds, and only a candidate accepted in both is adopted. The oracle tests one candidate at a time: since 2026-09-24 the journal of the pipeline shows no two candidates in the oracle at the same time. The entry “Five failures in the long stage, and a blind tempo test” described the two stages and five candidates that failed in the long one.

Each stage is a sequential probability ratio test, SPRT Sequential probability ratio test. Games are played until the accumulated evidence reaches one of two bounds; then the test stops. for short. As the games come in, the test keeps computing the log-likelihood ratio, the LLR Log-likelihood ratio, the running evidence of an SPRT. It starts at 0; a stage passes at the upper bound and fails at the lower one.. It says how much better the results so far are explained by a gain of 5 normalised Elo Strength difference to the opponent, estimated from the games, with a 95-percent half-width where the oracle reported one. Never an absolute rating. (nElo Normalised Elo: the Elo difference divided by the spread of the game results, so that the SPRT bounds mean the same at different time controls.) than by no gain at all. Normalised Elo measures a difference relative to the scatter of the results, so at a given nElo the test needs about the same number of games whatever the draw rate.

The bounds follow from two nominal error rates of the decisions at the bounds. α is the probability that the test accepts a change that in truth brings nothing. β is the probability that it rejects a change that in truth brings 5 nElo. The cap adds undecided outcomes on top. The lower bound is ln(β/(1−α)), the upper bound ln((1−β)/α).

What changes

Chart with the number of games in the long stage on the horizontal axis, from 0 to 48,000, and the LLR on the vertical axis. Up to epoch 10 the corridor reaches from −2.944 to 2.944 and ends at 48,000 games. From epoch 11 it reaches from −1.335 to 2.708 and ends at 36,000 games. Above the upper bound the stage is accepted, below the lower bound rejected. The lower bound moves much closer to zero, the upper bound drops only slightly.
The decision corridor of the long stage (schematic)
Long stageup to epoch 10from epoch 11
Hypotheses0 and 5 nElounchanged
α0.05unchanged
β0.050.25
Lower bound−2.944−1.335
Upper bound2.9442.708
Cap48,000 games36,000 games
Time control, opening book40+0.4, Book Bunchanged

The larger β moves the lower bound much closer to zero, so a long test that is going badly stops sooner. The upper bound drops only slightly. The cap counts games; since every pair is played with swapped colours, 36,000 games are 18,000 pairs.

The change reached further into the code than the constants. β had been fixed at 0.05 in five places of the oracle's program. Now it is taken from the stage, and the register check knows that entries up to epoch 10 were measured with 0.05. Deliberately broken variants of the code each made at least one test fail, among them the old β, the old cap, and the new β in the short stage instead of the long one.

Why: the oracle was the bottleneck

The decision calls the long cap a brake that the project had built itself at its bottleneck. Since the oracle tests one candidate at a time, every hour that a long stage spends without a decision delays every candidate waiting behind it.

Under the new rule the outcome of these runs is not known. The final LLR of T-0129, +2.71 after rounding, is practically the new upper bound of 2.708. Whether it would have reached that bound within 36,000 games cannot be told from the final values; the proposal for the decision says so itself.

The price

Four horizontal bars, each split into accepted, rejected and undecided at the cap. A change worth truly 0 nElo: up to epoch 10 4.5 % accepted, 84.6 % rejected, 10.9 % at the cap; from epoch 11 4.6 %, 91.9 % and 3.6 %. A change worth truly +5 nElo: up to epoch 10 84.6 % accepted, 4.5 % rejected, 10.9 % at the cap; from epoch 11 68.8 %, 24.2 % and 7.0 %. Model calculation, not a measurement.
What the long stage does with a true 0 and a true +5 nElo (schematic)

A quicker no also catches real gains more often. How often was modelled: the LLR as a Brownian motion between the bounds, with the cap. These are model calculations, not measurements.

Three model families advised on the decision, and they did not agree.

Fixes without a claimed gain follow

Fixes without a claimed gain have their own route, which proves non-inferiority with a margin of 5 nElo. There both stages test the hypotheses −5 and 0 nElo, “otherwise as the stages”, by the operator's rule of 2026-09-30. So this route follows the new long stage. There β is the probability that the long stage rejects a fix that is truly neutral: nominally 25 per cent instead of 5.

The decision accepts this.

The author and the reviewer of the code had named this as the strongest objection. The decision also names a return to β 0.05 for this route as a question to be examined.

Success measures, fixed in advance

Before the change, the decision fixed in writing how it is to be judged and when a return is to be examined.

In the account of Law V the change of epoch itself counts zero.

How the change of epoch went

On 2026-10-17 the operator delegated the decision to the supervising agent, to be taken with experts under the constitution. The decision followed that morning. A model of another family reviewed the code, and from 10:10 UTC the oracle accepted no new tests. The constitution forbids touching a running test, so T-0188 was allowed to finish under the old rule. It ended on 2026-10-18 at 04:09 UTC at the cap: 48,000 games, LLR −2.21.

First attempt, 2026-10-18. After the verdict, a preliminary check stopped: the package expected an outdated version of a pipeline rule set, which the supervising agent recorded as its own error. After the correction and a renewed check the window opened at 04:24 UTC. Eight seconds later the first step, which only reads, stopped, because the oracle machine was briefly busy with a routine job at that moment. The step was not repeated successfully within the window. At 09:42 the remaining steps, about an hour of work plus the confirmations, could no longer be finished before the window closed at 10:24. The supervising agent withdrew the attempt before anything had been changed. At 09:42 the oracle was released again under epoch 10. Between the verdict at 04:09 and the next handover to the oracle at 09:43 lay 5 hours and 34 minutes.

Second attempt, 2026-10-21. Before it, the check was revised so that a brief routine job alone no longer stops it. The last test of epoch 10, T-0196, had ended at 04:37 UTC. From 08:29 the oracle accepted no new tests, and the window opened at 09:14. The engine of the anchor was built a second time and came out byte-identical. Two model families confirmed the recorded load conditions. The anchor, register entry T-0197, followed at 10:13. It is the same engine version that had been adopted with T-0195, now under the new fingerprint of the measuring conditions. The measuring conditions of epoch 11 were released at 10:24, 1 hour and 10 minutes after the window opened.

On the same day the operator asked for a single framework script for future changes of epoch, so that the procedure does not keep growing. It was committed at 10:54 UTC.

What this entry does not say

It reports no results under the new rule. Whether the change pays off is judged by the measures fixed in advance. The numbers on the price are model calculations. The numbers on occupancy, hours and cap runs are measured, and only for the period before the change.

How this was checked

The facts come from the decision with its proposal, the model calculations of two families, the report on preparing the code, the records of both attempts, the oracle register and the journal of the pipeline. For this entry the occupancy, the hours, the cap runs and the bounds were recomputed from the register and the journal, and the loss rates were computed with a model of its own. An agent of another model family checked the text against the same sources.