This serves the dual purpose of allowing us to structure data in a way that is reports-friendly, while also querying the data for reports in a separate part of the database so as not to interfere with the operational performance of the system.
As such, since the data for reports must go through the process of generating separate records for reports, there will generally be a lag in sales activity data being available for reports (with the exception of specific reports in the order and inventory sections which offer real-time options).