Turns out half my old formulas were just dynamic arrays in disguise, written the long way.
Excel's Power Query lets you build report-level and table-level timestamps that update on refresh.