# Provenance

Every value Kelly serves says who produced it and when it was true, and how to show that to your readers.

Every value Kelly serves carries its [provenance](/glossary#provenance): `source`, who produced it, and `as_of`, when it was true.

## The stamp

On the API, a resource carries the stamp beside its own fields. A derived value's `as_of` is the time of its newest input.

| Field | Type | Meaning |
| --- | --- | --- |
| `as_of` | string, always present | When the value was true; for a derived value, its newest input's time. |
| `source` | string, always present | Who produced the value, as shown to readers. |
| `seq` | integer, nullable | The entity stream's sequence number, when live. |
| `stale_after_ms` | integer, nullable | On live data: milliseconds it stays current. |
| `attribution` | string, nullable | Attribution the source's terms require. |

On [Kelly Wire](/concepts/streaming), each data message carries `source` with `source_ts` (when the fact happened upstream) and `emit_ts` (when Kelly published it), so lag can be measured.

## Showing it to people

Show the source and the [as-of time](/glossary#as-of-time) with every number you display, and the `attribution` text when a value carries one: a source's terms may require it. Odds are information, not advice.

## Reading it in these docs

Under every captured response on these pages, numbered lines list where each value comes from. Hover or focus a stamped key in the JSON and its line lights up, and the reverse; on a phone, tap the key to jump to its line.

---

Last updated October 16, 2026

Support: support@askkelly.ai · Security and disclosure: https://docs.askkelly.ai/security

Information is the edge. Odds are information, not advice · 21+ · Get help
