Foundations and Explorer¶
Core rule: missing is not zero¶
Steady stores normal check-in values in a daily entry and repeatable activity as events. The analytics layer uses only values that are actually present.
| State | Analytical meaning |
|---|---|
| key is missing | unknown, omitted |
null or empty |
not selected, omitted |
0 |
actual numeric zero |
no / false |
deliberately negative status |
na |
not applicable, no signal |
This distinction applies to Explorer, the Life Wheel and correlations. An unanswered day is interpreted neither as a bad day nor as a day without urges.
Data sources¶
flowchart LR
E[entries] --> M[metric daily values]
F[field definitions and versions] --> M
X[events] --> M
M --> EX[Explorer]
M --> COR[Correlations]
E --> RAD[Life Wheel]
X --> RAD
F --> RAD
Normal fields are combined through their logicalId. After a field type changes, older field versions remain analyzable; the version actually present on a given day is used.
Dynamic events additionally appear as virtual metrics:
- social connection,
- exercise duration and exertion,
- self-care duration, relaxation and clarity,
- urge intensity,
- trigger count,
- meal amount and balance.
Field-dependent analytics rules¶
The valid aggregation and chart type depend on the field type. Invalid or obsolete configurations are normalized.
| Field type | Default aggregation | Default chart | Further aggregations |
|---|---|---|---|
| Boolean | mean | line | count, last value |
| Status | mean | line | count, last value |
| Scale | mean | line | count, last value |
| Duration | sum | bar | mean, count, last value |
| Number | mean | bar | sum, count, last value |
| Choice | count per answer | bar | no numeric mean |
| Free text | count of non-empty days | bar | text content is not interpreted numerically |
auto resolves to the field type default or to the event aggregation. Exercise and self-care durations, for example, are summed; qualitative event values are averaged by default.
Explorer¶
Explorer is the direct time-series path. It first filters the selected range and then creates buckets by day, week, month, quarter or year.
flowchart TD
S[selected metric] --> V[resolve field versions]
V --> T{Field or event?}
T -->|Field| A[collect entry values]
T -->|Event| B[collect event values]
A --> G[time buckets]
B --> G
G --> AG[type-aware aggregation]
AG --> C[chart]
AG --> D[optional breakdown]
Choice fields¶
Choice fields are not averaged through artificial numeric values. Every answer option is counted as a separate component and displayed as a distribution.
Breakdowns¶
A metric can be split by a categorical dimension, for example:
- exercise duration by activity,
- connection by person,
- a metric by status or choice field,
- events by meal, trigger or self-care activity.
The breakdown also calculates a descriptive association value as the share of between-group variance in total variance. It describes how strongly group means differ; it is neither proof of causality nor a significance test.