You're confusing cache with snapshots.
Your customer wants to see snapshots of data.
That can be implemented in different ways - caching is not one of them.
History tables would also not be the right choice here.
Most likely you'd need to implement some form of as-of reporting parameter in the models, so that only data relevant to the reporting period is considered.
The other, more rigid but also less flexible version, would be to actually store the results of the calculation views in a snapshot table and report off of that, if required.