Terms and boundaries¶
Terms¶
| Term | Meaning in Steady |
|---|---|
| Section | visible group of fields in the daily check-in |
| Field | definition of one daily value |
| Field version | concrete historical form of a field |
logicalId |
shared domain identity of several field versions |
| Entry | one daily record with sparse field values |
| Event | repeatable event on a date |
| Catalog Item | reusable person, sport, meal or trigger |
| Evidence | how strongly a signal contributes to the current analytical picture |
| Quality | how favorable a signal is according to its goal direction |
| Momentum | saturating function of current, time-weighted evidence |
| Life Wheel | compact 0–100 overview of several configurable axes |
| Aggregation | summary by day, week, month, quarter or year |
| Spearman-ρ | rank correlation between two time series |
| Recovery profile | selected change areas and optional program contexts |
| Counter | running period calculated from start and reset timestamps |
| Sparse | only values that are actually present are stored |
| Atomic | several changes are stored completely together or not at all |
Boundaries and open points¶
Current field/axis assignment boundaries¶
- Life Wheel axes are configurable.
- Each group can be assigned to exactly one axis.
- Fields inherit their group's axis.
- A field cannot contribute to several axes with separate weights.
- Field weights are not freely configurable.
- A field with
goal: neutralcontributes no Life Wheel signal. - Choice and text fields do not automatically contribute to the Life Wheel.
Analytical boundaries¶
- Life Wheel parameters are defined globally in code, not in the UI.
- Predefined correlations cover only selected relationships.
- Correlations are observational, not causal.
- Tracking frequency affects momentum; interpretation must therefore always consider data coverage.
- A score is a product metric, not a clinically validated measure.
Architectural boundaries¶
App.jsxstill carries substantial orchestration logic.- Analytics are calculated in the frontend.
- Browser and Android use different persistence adapters.
- There is no server, synchronization or multi-device conflict resolution.
Next clean extension¶
One possible extension would be a versioned field assignment such as:
{
"radar": {
"links": [
{ "axis": "regulation", "weight": 0.7 },
{ "axis": "connection", "weight": 0.3 }
],
"mode": "goal"
}
}
This would enable field-level instead of group-level assignment, but it would have to be implemented together in the field editor, versioning, configuration import, validation and Life Wheel engine.