tools/fleet/box-prover.py point 6: each claimed segment is an eligible job and closes once as paid, expired (unpaid, held_expired) or cancelled (disk, export, cut, chain, timeout, shards, statement, sign, refused), active until then; the row carries outcome, cause, deadline, margin at the claim, seconds spent (wasted unless paid) and the deadline miss; the state carries the counters and the wasted seconds by cause; every close is a RESULT outcome line, the run ends with a RESULT ledger line.
tools/fleet/prover-outcomes.py: the report over state files and logs (a log from before the ledger is reconstructed from its RESULT lines; a state row wins over a log row): outcomes, paid completions (segments, shards, IGN, median end to end, median time to pay, median margin), missed deadlines by cause with the median miss (never negative, none on a stale tip), wasted work by cause, throughput per hour and the paid share of the seconds spent, the open jobs. --self-test to known numbers (known-failed first), run by the gate. tools/fleet/night.py sums the fleet's counters into its hourly row. docs/analysis/proving-outcome-ledger.md: the definitions and how to read the three ratios.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>