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

# Prompt state

> Where you stand on a prompt, in one word per engine and one word overall: who had the answer, read from the latest successful answers, with a dash where nothing was measured.

A rate tells you how often you were named. It does not tell you who had the answer when you were not, and "named in 0% of answers" reads the same whether a rival took every answer or nobody was named at all. Those are different jobs. **State** is the word for that difference: one per engine (the **cell**), and one for the prompt across its engines.

State is folded from the same answers as the rates beside it, so a cell and the percentage next to it never come from two different samples.

## Cell state: one prompt on one engine

A cell is read from the **latest reading in the window that has at least one successful answer** on that engine. Failed answers do not count; a reading where every answer failed is skipped and the one before it is used. With `n` successful answers in that reading:

| State | Shown as | When |
| - | - | - |
| **Named and linked** | ● | You are named in at least half of the answers, **and** your domain is cited in at least half of them |
| **Named** | ◐ | You are named in at least half of the answers |
| **Lost** | ✕ | You are not, and one tracked competitor is named in at least half of them, in the answer's own words |
| **Absent** | ○ | Otherwise: nobody you track is named often enough to hold the answer |
| **Not measured** | — | No successful answer on this engine in the window |

The rules are checked in that order, and the first that holds wins.

* **At least half, not at least one.** A cell is a label on `n` answers. At sampling depth 3, a label that one answer in three could flip would move inside the sampling noise. Ties go to you: named in 1 of 2 answers is **Named**.
* **Lost needs a rival in the words.** A competitor counts only when the answer names it in its text. A competitor that appears only among the links is a source, not a name the answer chose. A lost cell says which rival, the one named in the most answers (ties broken alphabetically), and when the reading was taken.
* **Absent is a measurement.** It means the answers were read and nobody you track was named in enough of them. **Not measured** means there was nothing to read. The grid draws them differently, and never one in place of the other.

A cell that is not measured always says why, on hover:

| Reason | Means |
| - | - |
| not read in this window | The prompt is tracked on this engine and has no reading in the window |
| every read in this window failed | Readings exist and every answer failed. The commonest reason we can show you follows it |
| no answers came back in this window | Readings exist with no answers in them at all |
| this prompt is not read on this engine | Another prompt is read on this engine; this one is not |

## Prompt state: one prompt across its engines

The prompt's state is folded from its cells. Only measured cells count: let **M** be the number of engines with a measured cell.

| State | When |
| - | - |
| **Won** | Named (or named and linked) on at least half of the M engines, rounded up, **and** named and linked on at least one |
| **Contested** | Named on at least one engine, but not enough to have won it |
| **Lost** | Not named on any engine, and lost on at least one |
| **Absent** | Measured on at least one engine, and every measured engine is absent: you are named on none and lost on none |
| **Not measured** | M is 0: no engine has a successful reading in the window. Shown as — |

The precedence is won, then contested, then lost, then absent. A prompt named on one engine and lost on two is **Contested**, not lost: you are in the answer somewhere.

An engine that is not measured is left out of M. It neither helps nor hurts the prompt, because counting it would turn a gap in our coverage into a claim about your brand. A prompt read on four engines, where one failed for the whole window, is judged on the other three.

The board also counts the engines a prompt is **lost on**. That number sorts the losses first, and it is what the analytics overview's "Where are we losing" block ranks by.

## Where you see it

* **Prompts**: the **Standing** column is the prompt state, and each engine column is that engine's cell. You can filter and group by standing; grouped, the groups run worst first (lost, absent, contested, won), with not measured last because "never read" is not a low score. A group's summary counts its prompts in each state, for example "3 lost · 1 contested · 2 won".
* **The prompt page**: each engine shows its state with the `n` it was read over and when, from the same rule, so the page and the board never disagree.
* **CSV export**: a `state` and `lost_on` column per prompt, and a `<engine>_state` and `<engine>_state_n` column per engine. An empty cell is not measured, which is not absent.
* **Over MCP**: `query_evidence` counts prompts by state (`prompt_state_count`) and filters any metric by `state`. See [MCP tools](/mcp/tools).

## Reading it

State is a word, not a trend. It describes the latest successful answers in the window, so it moves as soon as one reading moves, and a single reading at sampling depth 1 can only ever be all or nothing. Read the `n` beside a cell before you act on it, and use the rates and their [significance test](/measure/reading-the-numbers#why-does-a-change-say-real) for whether anything changed.

Next: [Share of voice](/measure/share-of-voice) for the rate behind **Named**, and [Competitors](/tracking/competitors) for the rivals a **Lost** cell names.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.