Over-aggregation is irreversible, under-aggregation is recoverable
By aggregating to a high-level variable, like simple SUM(), we potentially mix up varying levels of signal and noise together into a single value. That transformation is now baked in and we won’t be able to recover any of the signal (nor prune any of the noise) downstream. By under-aggregating (starting bottom-up), we deliberately keep as much granularity as possible, as the signal can be recovered later, and the noise can be pruned.