Open almost any recovery app and you get a stress score the first morning. It feels generous. It is also close to meaningless, and it took building one to see why.
What the number is actually made of
Praana's stress score reads two things off your wearable: heart-rate variability, and resting heart rate. Both are strongly individual. A heart-rate variability of 40ms is unremarkable for one person and a warning sign for another. Resting heart rate varies with age, fitness, genetics, and how much coffee you had at four.
So a score computed against a population average tells you roughly where you sit among strangers. That is a fact about the population, not about you, and it does not change day to day in any way you can act on.
What Praana does instead
The score is measured against your own history. Your baseline is learned from your readings, and the number describes how today compares with your normal. That is the version worth reading before deciding whether to train.
The cost is that there is nothing to compare against until there is history. Roughly two weeks of wearing the watch through the day, not just overnight, before the baseline is stable enough to be worth trusting.
Saying so out loud
The easy path is to show a number anyway and quietly improve it as data arrives. We decided against it, because a number that looks confident and is not is worse than no number. The app says the baseline is still forming, and the website says the same thing on the requirements page, where someone can read it before installing rather than after.
It costs us the first two weeks of the experience. It buys a score that means something on week three.