> ## Documentation Index
> Fetch the complete documentation index at: https://docs.truemath.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Versioning

> Domains move through a draft-to-published lifecycle so calculation logic is explicit and controlled. Calculations run against the published version.

Every [domain](/concepts/domains) is versioned. Calculation logic does not change
silently underneath you: a domain moves through an explicit lifecycle, and
calculations run against a published version.

## The lifecycle

* **Draft** — your working copy of the domain. Editing a domain's
  [variables](/concepts/variables) or [activities](/concepts/activities) updates its
  draft. Drafts are not used for calculations through the API.
* **Published** — the live version. Publishing promotes the draft so it becomes the
  version calculations run against.
* **Archived** — a domain that has been retired and hidden from use.

Only published domains are returned by the [API](/api/domains) and available for
calculation.

## Why it matters

Versioning makes the rules behind a result explicit. When business logic changes — a
revised methodology, a new product definition — you update the draft and publish a new
version deliberately, rather than altering live behavior in place. Combined with
[provenance](/concepts/provenance), this is what lets a result be tied to the specific
logic that produced it.

<Note>
  You publish a domain from the builder after testing its activities. See
  [Testing and publishing](/authoring/testing-and-publishing).
</Note>
