We have had a fact table in production for many years now in which we utilize a posting date key to track historical changes. The original business requirement was for the business to be able to recreate any report as of the day it was created. Utilizing this posting date key solved the requirement but creates a great deal of overhead in the fact table as each change requires we back out and then restate any changed transactions and our transactions (railcar tracking/status events) change constantly. We have an opportunity to revisit this schema and I am looking for a more elegant (albeit simpler) way to meet the requirement without creating all the extraneous records and requiring the ETL to correctly reverse out and restate the changed records. Any suggestions folks have on better ways to handle this and still meet the overall requirement would be appreciated. I'd love to tackle this beast given the opportunity.