• Nice article, thanks.

    In my opinion there's not really any such thing as the "truth" because data changes all the time. The focus should really be on consistency. The problem is that most clients hate inconsistency - yes really hate it - it makes them look bad to their internal clients and undermines confidence in their data/project. Most clients seem ok that things change over time, but they absolutely want reports to be consistent at least within a batch.

    If data changes frequently then I find it's best to generate some reporting tables or a cache of some sort to contain a consistent set of data to produce all the reports from. This has the added advantage that you can compare your cache to future caches to see what has changed or caused changes. Clients love to know what causes change so they can explain it to the end user. The quicker you can explain any changes the happier the client is in my experience.