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

# Seasonality

> The seasonal factor per month and where it comes from — measured, overridden, or profile-based.

## What it is

The seasonal factor per month, and where it comes from. Measured from this tenant's own sales unless a manual override is set. Profiles come from the products themselves — a profile nobody uses does not appear.

One row per (profile, month). `factor` is what the demand engine actually applies; `factor_source` says whether it is the damped measured value or a manual override, and `sample_size` / `confidence` say how much history backs the measurement. This is the factor behind *Sales/day (season removed)* and the coverage-window season factor in [Product Demand](/api/data-model/product-demand).

## How it gets data

**Computed view** — measured automatically from this tenant's sales history per [Products](/api/data-model/products) seasonality profile; manual overrides come from [Procurement Config](/api/data-model/procurement-config). Read-only; no ingest endpoint.

## Fields

| Field                 | Label             | Type     | Writable  | Description                                        |
| --------------------- | ----------------- | -------- | --------- | -------------------------------------------------- |
| `month`               | Month             | number   | read-only | Calendar month (1–12)                              |
| `profile`             | Profile           | text     | read-only | Seasonality profile name (from the product master) |
| `products_on_profile` | Products          | number   | read-only | How many products use this profile                 |
| `measured_raw`        | Measured          | number   | read-only | Raw measured seasonal factor from own sales        |
| `measured_applied`    | Measured (damped) | number   | read-only | Measured factor after damping                      |
| `override_factor`     | Override          | number   | read-only | Manual override, if set                            |
| `factor`              | Applied           | number   | read-only | The factor the demand engine actually applies      |
| `factor_source`       | Source            | status   | read-only | Where `factor` comes from (measured / override)    |
| `sample_size`         | Years             | number   | read-only | Years of history behind the measurement            |
| `confidence`          | Confidence        | text     | read-only | Confidence of the measured factor                  |
| `calculated_at`       | Calculated        | datetime | read-only | When the view was computed                         |

All columns are read-only. The view also carries `tenant_id` / `workspace_id` for tenant isolation — filtered automatically, never selected.

## Query it

```json theme={null}
{
  "method": "tools/call",
  "params": {
    "name": "data_query",
    "arguments": {
      "view_slug": "v_seasonality_effective",
      "filters": { "month": 12 },
      "select_fields": ["profile", "factor", "factor_source", "confidence"],
      "limit": 25
    }
  }
}
```
