pub fn learn(
records: &[DayRecord],
start: Load,
window: u32,
today: Date,
) -> LearnedExpand description
The budgets and the gain minimum as of today, replayed day by day over
records (oldest first; days before today only), from start, with
window days of memory. The rules, in order, on each day with an outcome:
a drop when it was bad after a full day; a freeze after a flare; the
target from informative good days; a rise after a stable week
(docs/capacity.md, “Budgets”).