For bitemporal data, the asAt timestamp reflects the point in time at which a data item is saved into LUSID. Find out about the effectiveAt timestamp.

An asAt timestamp is determined internally by LUSID and cannot be updated by the user. As such, methods which update data in LUSID do not take an asAt parameter.

All List* and Get* APIs include a parameter for specifying the asAt timestamp. This allows data to be extracted from LUSID as it was at a point in the past, regardless of any subsequent updates or corrections.

A more concrete example would be how the system will deal with a correction. We can deal with two updates for the same business time (effectiveAt) and know that they happened on 2 different asAt times. This means we can ask for the state of that entity either before or after the second update/correction.

This enables us to build a system which can always reproduce its state at any point in time. You can ask how the entire system looked asAt 5pm yesterday and be guaranteed to get the correct answer. Anything that happened after 5pm would have an asAt later than 5pm.