Your agent can call ax1om · scoring is live over MCP, free tier included.Start freeAlready have an account?

The validation split is recorded in training metadata again

Bug fixModels

Training runs have held out later records rather than a random sample since the temporal split shipped. The run’s own metadata did not say so: the serializer that writes stored metadata had no field for the split kind, so it dropped the value silently.

That mattered downstream. The per-rule performance readout reproduces the holdout a run used so that it can score each rule on records the model did not train on. Reading no split kind, it took the legacy random-split path, which on a temporally split run selects a largely different set of rows. So the per-rule numbers were computed partly over rows the model had already seen.

New runs record the split kind, and the per-rule readout and its split note now use the temporal holdout. For scoring models trained between the temporal split shipping and this fix, the stored metadata genuinely cannot say which holdout the run used. Those models report the per-rule basis as unavailable rather than guessing, and retraining is what fills it in. Timing models were never affected.