# Your definitions

Docs for TrueQuery 0.1.6. How DATA.md works as the source of truth, and what happens when a request disagrees with it.

Your definitions live in `DATA.md`, written when you [set up your project](https://analytically.ai/truequery/docs/set-up.md). They hold on every request, whoever asks and however vaguely.

## When definitions disagree

Your definitions are the source of truth, and TrueQuery treats them that way:

- **A request that contradicts a definition:** the agent says so before
  writing anything, follows the definition unless you confirm otherwise, and
  records the decision.
- **Two computations of the same metric:** `metric check` names each one
  and how it differs. TrueQuery doesn't pick a winner: you decide, and the
  decision goes into `DATA.md`, so nobody is asked again.
- **Code or data that breaks a definition:** it's flagged, the way `init`
  caught the warehouse running on Los Angeles time when the shop counts days
  in UTC.
- **A definition that's out of date:** no code can reveal that, so answers
  state the definition behind each number, and the receipt lists every
  assumption. The person asking can always see what a number means.

## An example

Asked for an average over a column the shop stores in cents, on the demo shop, it ended its answer with:

> Conflict recorded: the request "AVG(subtotal_cents)" contradicts D1 and D7, so I followed the definitions and the override is pending your confirmation.
