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

# Periods, Windows & Confidence

> Signal grain and window, period_key vs. measurement window, fact vs. estimate, and exact values vs. bands.

Signals are not all measured the same way. Reading them faithfully means knowing three things about each one: its **grain**, its **window**, and its **confidence**. The legend reports all three per signal — read it, don't assume.

## Grain and window

**Grain** is the cadence a signal is expressed at:

* **quarter** — one value per quarter
* **month** — one value per month
* **snapshot** — a point-in-time reading
* **rolling** — a moving window that slides forward
* **all-time** — a cumulative or lifetime value

**Window** is the span the value summarizes. Grain and window are independent.

### period\_key is not the measurement window

<Warning>
  A signal's `period_key` is the **observation period** — *when* the value was recorded. It is **not** the same as the **measurement window** — *what span* the value covers.

  Example: a `period_key` of `2026-07-01` may summarize the **last 90 days**, not the month of July. Report the value against the window it actually measures, not against its period label.
</Warning>

This is also why a default `vertical_card` can hold signals with different `period_key`s — each channel returns its newest observation, so the card is completeness-first, not a single aligned period. Never describe a default card as "all data from quarter X". Use a strict `period=` when you need alignment.

## Confidence: fact vs. estimate

Every value carries a confidence:

* **fact** — computed or retrieved directly from the data.
* **estimated** — a projection or proxy.

<Note>
  **Never present an estimated value as a measured fact.** An estimate stays an estimate all the way into the answer. If two signals disagree and one is estimated, say so — the confidence is part of the finding.
</Note>

## Rankings: exact values vs. bands

Some signals carry **exact values**; others intentionally give a **band, quartile, or class**. Respect whichever representation the signal uses.

| Representation          | Example signals                                             | How to report                                  |
| ----------------------- | ----------------------------------------------------------- | ---------------------------------------------- |
| Exact value             | follower growth, review count, ad count, reach, video views | Report the number                              |
| Band / quartile / class | trajectory class, density band, quartile signals            | Report the band — "upper mid-range", not "#14" |

<Warning>
  Do not fabricate an exact rank from a band signal. If the feed represents something as a quartile or class, that *is* the resolution — inventing "#14" from an "upper-quartile" band is a grounding error.
</Warning>

## Reporting-lag caveat

Recent periods can be **incomplete** — data is still arriving. A dip in the newest, still-filling window is a **reporting lag**, not a confirmed decline. Preserve that caveat, especially for paid-media reach.

## Related

* [AI Operating Rules](/for-agents/vertical/operating-rules) — rules 4 (preserve confidence) and 6 (respect the representation).
* [Business Question Recipes](/for-agents/vertical/recipes) — where the "recent incomplete reach ≠ collapse" caveat applies.
* [Error Handling & Sources](/for-agents/vertical/errors) · [Vertical tool list](/for-agents/vertical)
