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.
Loading…
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.Position and speed stay in this browser and are sent nowhere.
The recording could not be played. Open the audio file
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.
- If the LLR reaches the upper bound, the stage is passed.
- If it reaches the lower bound, the stage is rejected. The data then favour
0over5nElo; that does not mean the candidate is weaker. - If neither happens before the cap, the stage ends undecided. That does not lead to adoption either.
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
| Long stage | up to epoch 10 | from epoch 11 |
|---|---|---|
| Hypotheses | 0 and 5 nElo | unchanged |
| α | 0.05 | unchanged |
| β | 0.05 | 0.25 |
| Lower bound | −2.944 | −1.335 |
| Upper bound | 2.944 | 2.708 |
| Cap | 48,000 games | 36,000 games |
| Time control, opening book | 40+0.4, Book B | unchanged |
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 journal of the pipeline records when a candidate was handed to the oracle and when its verdict came. In the
3days up to07:00UTC on2026-10-17, the morning of the decision, a candidate was in the oracle94.0per cent of the time; over7days it was74.4per cent. - From epoch
6, since which both stages test0against5nElo, to the end of epoch10, the oracle decided69gain tests:37passed,29were rejected and3stayed undecided. Their stages ran for441.5hours,318.3of them in the long stage, which is72per cent. - Of the
43long stages,37passed and3reached the lower bound.3ran to the cap of48,000games without reaching a bound:T-0129in32.3hours with a final LLR of+2.71,T-0181in32.3hours with+0.18, andT-0188in31.5hours with−2.21. - These
3runs alone took96.2hours,30per cent of all long-stage hours, and none of them led to an adoption.
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
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.
- A change that truly brings
5nElo in the long stage used to be lost in about16per cent of long stages, at the lower bound or at the cap. Under the new rule it is about31per cent. - While preparing the decision, an analytic calculation of one model family got
15.4per cent before and31.2per cent after; a model of another family that weighs the mix of candidates got16.0and30.6per cent. A calculation of its own for this entry, a grid approximation of the same continuous model, reproduced15.4and31.2per cent. - Protection against adopting changes that bring nothing stays, because α remains
0.05. The modelled chance that a long stage passes a change worth exactly0nElo rises only slightly, from4.45to4.59per cent; this entry's grid approximation gives4.46and4.59per cent. - One family's model estimated that the oracle needs
7.4instead of9.0hours per adoption and gains23per cent more nElo per oracle hour. All models underestimated how long a long stage really takes: one gave5.66hours on average, where6.86were measured. The real gain is unknown.
Three model families advised on the decision, and they did not agree.
- One family maintained an objection that remains unresolved: if few candidates arrive, the lost real gains can outweigh the saved hours. The decision answers with the measured occupancy of the oracle,
74to94per cent. - Another family proposed α = β =
0.10instead. That was rejected because it would roughly double the adoption of changes that bring nothing: from4.5to9.7per cent in its own calculation.
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 route measures rarely: at most
4tests per budget and1per week. - Its protection against a loss of
5nElo, α, stays. - A rejected correct fix costs no playing strength.
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.
- Main measure: the gain against external anchors per oracle hour.
- Side measures: hours per adoption, the share of long stages that reach the cap, the share that reach the lower bound, and R from Law V.
- A return to the old rule is to be examined if the hours per adoption lie above the reference measured before the change, if R from Law V falls below its value before the change, or if the supply of candidates rather than the oracle turns out to be the bottleneck, measured as an occupancy of the oracle below
60per cent.
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.