normalizeCostModels used the bounded day count directly as the first-day index, so a fractional window (e.g. 2.5) left every loop index fractional, missed all day lookups, and silently dropped every model row. Floor the bound like normalizeCostDaily and fillMissingCostDays already do, and pin the behavior with a direct QtTest.
2 files changedLine totals unavailable