# key-performance-indicator

`https://bbsk.sk/models/kpi/key-performance-indicator/views/qfhhh5no5wz4lk3rfjisdtx3chiyfig3`

## KeyPerformanceIndicator

One number for one window, with the provenance that makes it auditable.

| Slot | Range | Kind | Required | Multivalued | Description |
|---|---|---|---|---|---|
| location | string | GeoProperty | no | no | Where the entity is, as GeoJSON geometry. |
| name | string | Property | yes | no | The indicator's own name, equal to the \`{localId}\` of its id, so the territory is legible without parsing the URN. |
| currentValue | uriorcurie | Property | yes | no | The number, with its unit on the Property as \`unitCode\`, a UN/CEFACT common code, and the instant it describes as \`observedAt\`. A window with no reading in it carries the string \`not measured\` instead of a number, and never a zero: a zero reads as a measurement \(Development/10 §5\). |
| calculationPeriod | uriorcurie | Property | yes | no | The window the value actually covers, as \`{ start, end }\` RFC 3339 instants. It is the window the pipeline used and not the one it was asked for, so the distance between \`calculationPeriod.end\` and \`updatedAt\` is how stale the source is. |
| calculationFormula | string | Property | yes | no | How the value was computed, in words a reader can check the number against: the measure, the aggregation, the window and any divisor, such as \`per km² of the district's own area\`. |
| derivedFrom | string | Property | yes | no | The Endpoint the sources were read through, as its URN. The endpoint and not the space: what an indicator could see is what that endpoint's policy let it see. |
| computedBy | string | Property | yes | no | The Pipeline that computed it, as its URN. |
| updatedAt | datetime | Property | yes | no | When the pipeline last ran, as an NGSI-LD DateTime. It is the run and not the window: an indicator whose source stopped moving keeps its window and gains a newer \`updatedAt\`, which is the visible fact that the source is static. |
