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

# Measurements

> Measurement types and their thresholds.

Configuration for condition measurements — what can be measured, and what counts as
acceptable. Nothing can be imported until it is set up here.

***

## Tabs

| Tab                               | Shows                                                     |
| --------------------------------- | --------------------------------------------------------- |
| **Measurement Types** *(default)* | What can be measured, and the rules for each              |
| **Measurement Thresholds**        | Acceptable bounds per measurement type and component type |

***

### Measurement Types

| Field                | Meaning                                                                     |
| -------------------- | --------------------------------------------------------------------------- |
| Code, name           | The identifier the import sends, and its label                              |
| Unit                 | Millimetres, for example                                                    |
| Progression rule     | `ASCENDING`, `DESCENDING` or `NONE`                                         |
| Allowed action codes | Which action codes the import will accept                                   |
| Reset action codes   | Which of those reset the progression — must be a subset of the allowed list |

The **progression rule** says which way a value may move over time. A `DESCENDING` type such
as wheel diameter may not increase; an `ASCENDING` one may not decrease. A **reset action** —
a reframing, say — permits the movement, because the material has been restored.

<Note>
  The progression rule is enforced **only at import**. Nothing in the application or the
  analytics re-checks it, so it is a data-quality gate on the way in rather than an ongoing
  constraint.
</Note>

***

### Measurement Thresholds

One row per (measurement type, component type) pair, carrying a **nominal**, a **minimum** and
a **maximum** value.

The row does two jobs:

1. **It registers the pair as importable at all.** A measurement whose type-and-component-type
   combination has no threshold is refused outright — this is the gate, not a warning.
2. **It bounds the value.** A measurement outside the minimum or maximum rejects the whole
   file. Bounds are inclusive, and each is only enforced if it is set.

The nominal and minimum also drive the remaining-life calculation on
[Wheel Analysis](/pages/wheel-analysis).

A threshold can additionally name a **reframing task** from a maintenance plan. Where it does,
the [reframing forecast](/pages/wheel-analysis) uses that task's schedule as a cap — whichever
comes first, wear or the preventive interval.

***

## Tables

<Card title="Field reference" icon="table" href="/data/tables/measurements">
  `measurements_measurementtype`, `measurements_measurementthreshold` and
  `measurements_measurement`.
</Card>

***

## Roles

Reading requires **Asset Manager**. Creating and editing requires **Project Admin**. The
measurements themselves are import-owned and read-only.
