April 29, 2026 · 8 min read

Sahha Insights Explained: Signals for action and engagement

Insights sit above raw scores and biomarkers. They turn point-in-time data into signals of change (Trends) and signals of context (Comparisons) — so your product can react to patterns and benchmarks instead of single-day numbers. Learn what each insight is for and when to reach for which.

A daily score answers “where is the user today?” That’s enough for a card, a chart, a number to surface in the UI. It’s not enough for product decisions. A user whose sleep score is 65 today might be having an unremarkable Tuesday, slipping after weeks of decline, or recovering from an illness. The number alone doesn’t say which.

Insights add that missing layer. They take the same scores, factors, and biomarkers Sahha already produces and turn them into signals of change and context — so your product can react to patterns and benchmarks instead of single-day values.

Two insight types exist today, and they answer two different builder questions:

  • Trends — What’s changing? Direction and magnitude of movement over the last 4 weeks. Weekly cadence. Output: increasing, decreasing, or stable.
  • Comparisons — Compared to what? Today’s value against the user’s own baseline, against demographic peers, and against the global population. Daily cadence. Output: a state from very_low to very_high plus a percentile and reference value.

Different questions, different outputs, different cadences — and they compose well. A trend tells you direction; a comparison tells you context. Used together, they catch real changes that single-signal triggers would either miss or fire false positives on.

At a glance: Use scores in the UI, insights in product logic. Trends for direction-of-travel decisions (retention, lifecycle journeys, weekly recaps). Comparisons for context-of-value decisions (daily personalization, “how am I doing” UI, triage).


The two insights are easy to confuse on first look — they both read the same source data, both produce summary signals, both target product logic. The cleanest way to keep them straight is by the question each answers.

TrendsComparisons
AnswersWhat direction is this metric moving?How does today’s value compare to a reference?
CadenceWeeklyDaily
WindowRolling 4 weeksSingle day, with 30-day baseline lookback
Output stateincreasing / stable / decreasingvery_low / low / average / high / very_high
Reference pointsThe user’s own preceding weeksThree lenses: baseline (you), demographic (peers), global (everyone)
Series data4 weekly values + percent changeOne reading per lens (no series)
Categories coveredScores, factors, biomarkersScores, biomarkers (not factors)
Best forRetention, lifecycle journeys, weekly recapsDaily personalization, triage, “how am I doing” UI
Pitfall to avoidReading state without checking isHigherBetter polarityFiring on a single noisy day without a persistence rule

The cadence difference is the most important practical distinction. Trends are slower-moving and more robust — fewer false positives, but the signal lags by up to a week. Comparisons are immediate and contextual — you get fresh signal every morning, but a single day can mislead. Pick the one whose cadence matches the surface you’re building.


How They Pair Together

Each insight is independently useful, but pairing them produces noticeably better triggers and copy.

The pattern: a trend gives you direction; a comparison gives you unusualness. Together they tell you whether something is changing and whether it’s actually unusual right now.

Take a user whose sleep score is 0.65 today. Read alone it’s an unremarkable medium night. Now layer in the insights:

  • Sleep trend: decreasing — their weekly average has been sliding for the past month
  • Sleep comparison vs baseline: very_low — today’s value is well below their own typical
  • Sleep comparison vs demographic: average — they’re still in the normal range for their cohort

That stack is high-confidence: the user is genuinely off — both relative to their own pattern and to where they were a month ago — even though they don’t look unusual against peers. This is exactly the user a recovery journey should engage. Compare to:

  • Sleep trend: stable — no directional change
  • Sleep comparison vs baseline: very_low — but only today

That stack is low-confidence: the user had an off night against a stable pattern. Probably a one-off (a flight, an event). Don’t trigger on this — wait for persistence or for the trend to turn.

The dedicated guides go deeper on patterns like these. The short version: don’t reach for one insight when both can answer the question more reliably.


When to Use Insights vs Raw Scores

A clean rule of thumb: scores in the UI, insights in product logic.

Surface scores so the user has a number to react to today. Branch on insights so your system reacts to weeks-long patterns and benchmarked context, not to single-day noise. The exception is when you’re displaying an insight directly — a weekly recap, a “vs your usual” badge — in which case the insight is the UI element, but the rule still holds for any decision wired up around it.

If your product is asking questions like:

  • “Should we send this user a re-engagement email?”
  • “Is this user slipping?”
  • “Which 5,000 users do we reach this morning?”
  • “How is this user doing compared to people their age?”
  • “Should the home screen show a recovery message or a celebration message?”

— those are insight questions, not score questions. Raw scores will give you noisy answers; insights will give you reliable ones.


Cadence and Real-Time

Insights are summary signals. They aggregate windows of data, which means they aren’t real-time:

  • Trends are computed at the end of each rolling 4-week window — once weekly per metric.
  • Comparisons are computed once per day per metric.

Sahha’s underlying data ingestion is real-time — scores recalculate within a minute of new data arriving. Insights sit a layer above and update on their own cadence. For UI that needs an up-to-the-minute value, use the score endpoint. For product logic that benefits from a window of data behind the signal, use the insight endpoints.

This is by design. A “trend” calculated from real-time data would just be noise; the windowing is what makes the signal trustworthy.


What’s Eligible

Insights are derived from Sahha’s existing data layer:

  • Scores (5) — activity, sleep, readiness, wellbeing, mental_wellbeing
  • Factors — the explainable drivers inside scores (sleep duration, regularity, steps, RHR, HRV, and more) — eligible for Trends only
  • Biomarkers — daily aggregates eligible for both insight types

The supported metric set continues to grow on both products. The Trends docs page and Comparisons docs page are the source of truth for the live lists.


Practical Patterns at a Glance

The dedicated use-case guides go deep on each of these, but a quick map of where insights fit:

  • Lifecycle journeys — the highest-leverage trends use case. A decreasing trend that persists across two consecutive weeks is a much safer trigger for a re-engagement campaign than any daily score would be. The weekly cadence and significance threshold are exactly what robust journey triggers need.
  • Weekly recaps and “what changed” UI — trends are pre-aggregated artifacts you can render almost directly. The 4-week series powers a sparkline; the state plus percentChangeFromPrevious powers the copy.
  • Daily “how am I doing” cards — the highest-leverage comparisons use case. Baseline framing (“vs your usual”) is more personal and less judgmental than any score state on its own.
  • Triage and prioritization — comparisons sort users into state buckets (very_lowvery_high) every day. That’s a natural sort key for “which users need attention this morning.”
  • Multi-signal decisions — trend + comparison stacked together is the strongest standalone trigger insights can produce. High-confidence patterns become possible without resorting to brittle multi-day score rules.

Roadmap

Two insight types are live today. The roadmap adds more shapes of signal, each answering a different builder question:

  • Streaks (coming) — consecutive days meeting a goal. Answers “how consistent has this user been?”
  • Milestones (coming) — achievement and progress markers. Answers “what’s worth celebrating?”
  • Associations (coming) — correlations between behaviors and outcomes. Answers “which behaviors actually matter for this user?”
  • Alerts (coming) — threshold-crossing notifications. Answers “did something just change?”

In addition, monthly trend periodicity is on the trends roadmap — same state / data / percentChangeFromPrevious model at a longer horizon, complementing the existing weekly cadence.

The two foundational insights — Trends and Comparisons — set the pattern the rest follow: derive a signal from existing data, give it a clear state label, and make it cheap to act on. Each new insight type slots into the same mental model.


Further Reading