The /datum/maint/agg/stale endpoint currently marks hour aggregate buckets as "stale" based on a date range, but only for hour buckets that have raw data. If raw data was removed, but hour aggregates already existed, those hours would not be recalculated but should.