# As-of reads

URL: /products/data/as-of-reads · Id: `page:products/data/as-of-reads`

> Read any record of a Dataset as it stood at an earlier time or Version, so an order, an audit or a model run is reproducible years later.

An as-of read returns a record as it stood at an earlier moment. Nothing in a [Dataset](/business/nouns/dataset) is overwritten, so every past value is still there to read.

## One input on every get
Every `get` takes `at`: a time, or a [Version](/business/nouns/version) name. Unset, it reads the record as it stands now. On the API, the same read appends `@` and the time to the record's address.

| Read | Returns |
| --- | --- |
| A rate with no `at` | The rate in force now |
| The same rate `at` an order's date | The rate the checkout charged that day |
| The same rate `at` a Version name | The rate under that build of the definition |

A checkout that stores the time of each order reproduces every tax line it charged. Its auditor reads the same answer a year later.

## Why it replaces snapshots
A copy of the whole Dataset on a date is one more thing to store and to trust. An as-of read gives the same answer from the record itself, for any moment, with no copy to keep.

## Corrections and the past
A refreshed value keeps the one it replaced, and both read back. A corrected value keeps the wrong one it fixed, with the reason, so an as-of read shows what a buyer was served then. [Corrections](/products/data/corrections) has status `planned`.