> ## 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.

# How questions are prioritised

> Every tracked prompt carries a value weight built from its intent, its AI search volume and the AI-referred visits to the pages its answers cite. The daily win plan spends its three actions on the highest.

## Why prompts are weighed

The [daily win plan](https://docs.attensira.com/agent/autopilot.md) does at most three pieces of work a day. Before it chooses, it merges the actions its win plans suggest by target: one Reddit thread or one listing page that decides several of your prompts becomes one piece of work.

Counting how many prompts a target decides is not enough. Three "what is an invoice" prompts nobody buys from would outrank one "best invoicing software for freelancers" prompt that people ask right before they pay. So each tracked prompt carries a **value weight**, and the plan ranks its actions by the weights of the prompts each target decides.

## What goes into the weight

The weight is three factors multiplied together. Each one is read from data the product already holds.

| Input | What it is | Factor |
| - | - | - |
| **Intent** | The prompt's [intent](https://docs.attensira.com/tracking/prompts.md#intent-and-stage): `informational`, `comparison`, `commercial` or `transactional` | 0.4, 0.7, 0.8 and 1.0 |
| **AI search volume** | How often the exact prompt is asked of AI assistants each month, from our AI search volume source | 0.5 at a measured zero, then 0.5 + 0.5 × log10(1 + searches): 1.0 at 9 a month, 1.5 at 99, 2.0 at 999 |
| **AI-referred visits** | Visitors AI assistants sent over the last 28 days to the pages of your site that this prompt's answers cite, from the [AI traffic](https://docs.attensira.com/traffic/ai-traffic.md) edge | 0.75 at a measured zero, then 0.75 + 0.25 × log10(1 + visits): 1.0 at 9, 1.25 at 99 |

The intent factors are the same buying-intent weights as the [priority](https://docs.attensira.com/tracking/prompts.md#priority) column, so the two never disagree about which kind of prompt is closer to a purchase. Volume and visits are on a log scale: the difference between 10 and 100 askers matters as much as the one between 1,000 and 10,000. Visits move the weight less than volume, because they are an undercount by construction: an assistant that sends no referrer is not credited.

A visit counts for every prompt whose answers cite the page it landed on. A page cited by two prompts counts for both. The weight orders prompts against each other; it is not a total of visits anyone adds up.

## Missing is not zero

Each input is stored with a **status**:

| Status | Meaning | Factor used |
| - | - | - |
| `measured` | A real number above zero, or for intent, a class | The factor for that number |
| `zero` | A real, measured zero: the source answered and the answer was nobody | The lowest factor: 0.5 for volume, 0.75 for visits |
| `missing` | We have no number. `reason` says why | A neutral factor: 0.725 for intent (the average of the four classes), 1.0 for volume and visits |

A missing input is never counted as zero. A prompt the volume source has never heard of, or a workspace without the AI traffic edge, is ranked as a typical prompt: neither punished as if nobody asked it nor promoted as if everybody did. A measured zero is a fact, and it ranks below neutral.

In practice, a `no_data` prompt gets the neutral volume factor 1.0, which ranks it about level with a prompt measured at roughly 9 searches a month. It ranks above a prompt measured at zero (0.5) and below one measured at 99 (1.5).

The reasons a value can be missing:

| `reason` | Input | Meaning |
| - | - | - |
| `not_classified` | Intent | The prompt has no intent yet. A person can set one |
| `no_data` | Volume | The source answered and has no figure for this exact prompt |
| `not_measured` | Volume | The source could not be read. It is retried on the next refresh |
| `not_installed` | Visits | The AI traffic edge has never reported from your site |
| `history_too_short` | Visits | The edge has less than 28 days of history |
| `not_available` | Volume or visits | The input is not available on this workspace, for example AI traffic on a plan without it |

A prompt no weight has been computed for yet, such as one tracked today, is ranked with the neutral weight 0.725 until the next refresh.

## When it is computed

The weights are recomputed **every night at 04:15 UTC**, after the nightly intent pass, from what is stored then. When a person corrects an intent, or the agent files one, the weight changes on the next night's run. A new volume figure reaches the weight within 30 days: a prompt's volume is kept for 30 days before the source is asked about it again.

The same inputs always give the same weight. It is stored to four decimal places, with the inputs it was computed from, the formula's `version` and when it was computed.

So a prompt's volume input can be up to a month old. If the source refuses one prompt (for example, one it cannot read), only that prompt is marked `not_measured` (neutral) and the refresh carries on. If the source itself is failing (out of credit, rate limited or unreachable), it is not asked again for that workspace that night: the remaining prompts keep any figure already held, and only a prompt with none is marked `not_measured` (neutral) and asked again the next night. An organization its owner has paused is skipped, the same as its daily readings: its weights stay as they were until work resumes. A workspace whose 06:00 daily win plan falls before 04:15 UTC (east of UTC+2) ranks on the previous night's weights.

## How the daily win plan ranks

After merging its actions by target, the plan ranks them:

1. Actions whose tool the run has come first. One it cannot do goes last.
2. The **sum of the value weights** of the prompts each target decides, highest first.
3. The number of prompts the target decides, as the tie-break.
4. Then the smallest sample, then losing prompts before ones being defended.

It keeps the top three. The ordering is done in code (the agent's `rank_actions` tool), not by the model's judgement, so the same actions with the same weights always come back in the same order.

For example: a Reddit thread decides two informational prompts with no volume figure (0.4 × 1.0 × 1.0 = 0.4 each, 0.8 together). A G2 category page decides one commercial prompt asked 500 times a month (0.8 × 1.85 × 1.0 ≈ 1.48). The G2 listing is done first, though the thread decides more prompts.

## What the weight is not

The weight has **no unit and no currency**. It is never multiplied by a price, and it predicts nothing: not traffic, not revenue, not a ranking. It only orders your prompts against each other inside one workspace. A weight of 1.48 is not worth twice a weight of 0.74 in any amount of money.

## Reading it

The weight rides on one prompt's read, so every door returns the same body:

* **MCP:** `get` with `uri: attensira://{workspace}/question/{prompt_id}`, or `get_prompt`.
* **REST:** `GET /v1/objects?uri=attensira://{workspace}/question/{prompt_id}`, or `GET /v1/prompts/{prompt}/detail`.

The prompt's body carries a `value_weight` object:

```json theme={null}
"value_weight": {
  "weight": 1.4799,
  "computed": true,
  "version": 1,
  "computed_at": "2026-10-25T04:15:00Z",
  "inputs": {
    "intent": { "class": "commercial", "status": "measured", "factor": 0.8 },
    "volume": { "monthly_searches": 500, "source": "ai_search_volume", "status": "measured", "factor": 1.8499 },
    "ai_referrals": { "sessions": null, "window_days": 28, "source": "ai_traffic_edge", "status": "missing", "reason": "not_installed", "factor": 1 }
  },
  "explain": "Value weight 1.48: commercial intent (x0.80); 500 AI searches a month, measured (x1.85); AI-referred visits missing (the traffic edge is not installed on the site), counted as neutral (x1.00). A relative priority with no unit and no currency: it orders questions against each other and predicts nothing."
}
```

Before the first refresh reaches a prompt, `weight` and `inputs` are `null`, `computed` is `false`, and `neutral_weight` gives the weight the plan ranks it with. A missing number is always `null`, never `0`.


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