Skip to content

Episodic Reporting Contract

The temporal-game exports keep using per-agent runs.npy histories as their durable source of truth. New EpisodeLog rows include start_step in addition to episode, t_end, ep_len, and reward fields; old rows without start_step remain valid, and graph helpers infer it from t_end - ep_len + 1 when needed.

The existing EWMA satisfaction figures answer an episode-indexed question: how objective satisfaction changes over completed episodes. They keep their default x_axis="episode" behavior.

Paper/report episodic exports answer a sample-efficiency question: what completed-episode return was achieved at the episode's actual end step. Regraph writes these under graphs/all/ using t_end and union alignment:

  • episode_return.png, episode_return_legend.png, papers/episode_return.png

Trainer fields such as episode_return_mean and episode_length_mean remain logging metrics, but they are not used for canonical graph exports. Generated graphs/episodes/ and graphs/metrics/ directories are legacy namespaces and should be removed during export so stale per-update episode aggregate plots and old episode_length graph files do not remain visible.

For suite-level curves, per-agent rows are aggregated into one algorithm-level episode row by episode index: t_end is the latest agent end step, cum_reward is the mean across agents, and ep_len is the mean completed episode length.