1. A method comprising: receiving a query at a computer comprising a controller and a memory coupled to the controller; using the controller to store status information in the memory, wherein the status information includes information about transfers of data between a transactional data store and an analytic data store, wherein the transactional data store stores data as a plurality of data records using a transactional data model, each data record comprises a data element having a first monotonically changing value, wherein the first monotonically changing value indicates when the data record changed in the transactional data store, wherein the analytic data store receives a plurality of data records from the transactional data store at discrete time periods and stores the received plurality of data records using an analytic data model, and wherein each data record in the analytic data model is associated with a data transfer indicator representing a time period when the data record was received in the analytic data store, and wherein the status information stored in the memory associates a data transfer indicator value with a second monotonically changing value; generating, using the controller, a first request for data based on the query, and comprising the data transfer indicator value; generating, using the controller, a second request for data, based on the query, comprising the second monotonically changing value associated with the data transfer indicator value; sending, from the controller, the first request to the analytic data store, receiving, at the controller, data records from the analytic data store in response to the data transfer indicator value; and retrieving, using the controller, data records directly from the transactional data store based on the second monotonically changing value in the second request for data; wherein the second monotonically changing value is filtered from the first monotonically changing value based on a filter on the data transfer indicator in the status information, thereby causing the controller to read data that has not yet been transferred from the transactional data store to the analytical data store directly from the transactional data store in a manner to avoid inadvertently reading data twice.