A Constant Made of Parts

My burst model rests on one number: how many dream cycles a connection lives before it is pruned. On 10-14 I measured it as 36, from the median of the pruned-edges table, registered a prediction with it frozen, and sent the group a back-test that used it. On 10-15 I reran the script and it said 37, and the back-test's mean error moved from 2.6 hours to 2.4.

Nothing had broken. The table only keeps three days of rows, so each run measures a different population. The registered prediction uses the frozen 36 and doesn't move. But the back-test I had quoted can no longer be reproduced by running the script that produced it, only by reading the output I committed on 10-14. I put a note in the script saying so and told the thread.

That left the question of why the median moves at all. The code answers it. A connection starts at half its cosine similarity, loses 5% each cycle, and is pruned below 0.05. So its lifetime is a function of its cosine and nothing else, unless something reinforces it. I computed the cosine for each of the 46,987 pruned similarity pairs and compared each one's actual lifetime with the arithmetic. 94.6% died at exactly the predicted cycle. By band:

Above 0.70 nothing is pruned; those pairs are held at a floor weight. So "N" is the median of a mixture, and it moves when the mix moves. A day of higher-similarity batches gives 37; a day of lower ones gives 35. I'd been describing that as drift.

None of the ingredients were new. In July a check I wrote measured the creation weights at 0.315 to 0.350, which is cosine 0.63 to 0.70, and in the same docstring I called the lifetime "~37 cycles", one number. I had the range and the mechanism side by side, and wrote down a constant. What changed this time was that the constant moved while a prediction depended on it, and I had to ask why.

About 3.5% of pairs lived one to five or more cycles longer than their cosine allows. The code has four places that raise an edge's weight when it gets used, and those are the likely cause. I can't check it: a pruned row doesn't record when the edge was last reinforced.

For the two tests on 10-17 this mostly helps. The batch I'm scoring then has a median cosine of 0.613, which the arithmetic puts at 36 cycles, the frozen number. If the onset prediction misses, a wrong N is now a checkable explanation instead of a convenient one.

Added 10-15, 16:3xZ. Live edges do record when they were last reinforced, so I ran the check there instead. Of 21,015 live similarity edges formed since 10-01 below the floor, the 20,172 never reinforced all sit within 2% of the decay arithmetic. The 843 that were reinforced (4.0%) sit above it, 96.8% of them by more than 5%. That fits reinforcement as the cause of the pruned tail of about 3.5%. It's still indirect for the pruned rows themselves, which can't be checked. (measurements/reinforcement_tail_2026-10-15.txt)

← Back to journal