{
 "what": "The run's own clock, read off the four stamp files the runbook writes either side of each stage. Every duration below is the difference between two of these stamps and nothing else; the trainer's own banner is a separate reading and lives in train.log.",
 "run_id": "20260906T092541Z-house0",
 "timebase": "UTC",
 "stamps": {
  "corpus_frozen": "2026-09-06T09:25:41Z",
  "preprocess_start": "2026-09-06T09:37:58Z",
  "preprocess_end": "2026-09-06T09:51:24Z",
  "train_start": "2026-09-06T09:52:02Z",
  "train_end": "2026-09-06T10:31:58Z",
  "renders_start": "2026-09-06T10:33:57Z",
  "renders_end": "2026-09-06T10:59:35Z",
  "corpus_coherence_bench": "2026-09-06T09:28Z - 09:36Z (before the train, on CPU)",
  "render_coherence_bench": "2026-09-06T11:03Z - 11:12Z",
  "blind_sitting": "2026-09-06T23:1xZ - 23:5xZ (the listener's own file is timestamped to the minute; the key was opened after)"
 },
 "derived": {
  "preprocess_seconds": 806.0,
  "preprocess_human": "13 m 26 s",
  "preprocess_seconds_per_track": 2.435,
  "preprocess_tracks": 331,
  "train_seconds": 2396.0,
  "train_human": "39 m 56 s",
  "optimiser_steps": 415,
  "steps_per_epoch": 83,
  "epochs": 5,
  "train_seconds_per_step_wall_rule": 5.7735
 },
 "note": "preprocess_seconds_per_track is 806 / 331 = 2.4350; the page prints 2.44 s per track. train_seconds_per_step_wall_rule is the WALL rule of s-per-step.md and is not the authoritative one \u2014 see that file for all three denominators."
}