Lifestack
docs

Insights

Collision detection, recovery debt, meeting hangover patterns. The patterns you can not see when everything lives in separate apps.

You had back-to-back meetings all day Thursday. Friday morning your HRV dropped 15%. Two weeks later it happened again. And again. You would never connect these dots yourself because the data lives in different apps. Lifestack connects them automatically.

The insight engine cross-references your calendar and health data to find patterns like these. Every insight is deterministic and rule-based. No machine learning, no black boxes. If Lifestack tells you something, you can trace exactly why.

Correlational, not causal

All messages use language like "when X was observed, Y tended to follow." Lifestack shows you what the data says. It does not claim to know why.

Collision detection

This is the core insight. When your calendar demands exceed what your body can handle, Lifestack fires a collision warning.

A collision requires two scores: Calendar Load (from Google Calendar) and Biological Capacity (from Oura Ring). Both conditions must be true for a collision to fire.

SeverityCalendar LoadBiological Capacity
SevereAbove 70Below 40
ModerateAbove 60Below 50
MildAbove 50Below 60

A high load alone or low capacity alone does not trigger a collision (though low capacity triggers a separate capacity warning).

Meeting hangover detection

After 14 days of paired calendar and Oura data, Lifestack starts looking for meeting patterns that correlate with next-day fatigue. The name captures the idea: certain meeting patterns today can leave your body feeling the effects tomorrow.

Patterns Lifestack looks for

PatternWhat counts
High density days6 or more hours of meetings in a single day
Back-to-back meetings3 or more consecutive meetings with less than 15 minutes between them
Late-day meetingsAny meetings after 6 PM
Early morning meetingsAny meetings before 9 AM

Recovery debt

Are you spending more energy than you are recovering? Recovery Debt tracks the cumulative gap between your calendar demands and your biological capacity over a rolling 7-day window.

Each day, Lifestack computes a daily deficit:

deficit = max(0, CalendarLoad - BiologicalCapacity)

If your Capacity exceeds your Load, the deficit is zero. Recovery Debt is the sum of daily deficits over the last 7 days.

Debt scoreZoneWhat it means
0 to 20HealthyRecovery is keeping up with demands
21 to 50CautionStrain is building. Consider lightening your schedule.
51+Burnout riskAccumulated strain is high. Prioritize recovery.

What data is needed

InsightRequired integrationsMinimum data
Collision detectionGoogle Calendar + Oura RingCurrent day data from both
Capacity warningsOura Ring onlyCurrent day Oura data
Meeting hangoverGoogle Calendar + Oura Ring14 days of overlapping data, 3+ pattern occurrences
Recovery debtGoogle Calendar + Oura Ring7 days of overlapping data

Graceful degradation

If one data source is unavailable, Lifestack shows what it can:

  • Calendar only: Calendar Load, Focus Score
  • Oura only: Biological Capacity, capacity warnings
  • Both sources: Full cross-domain insights (collisions, meeting hangover, recovery debt)

Cross-domain insights require both sources to be synced within the last 6 hours.

Privacy

All insight computation happens on Cloudflare's edge network. No data is sent to third-party AI services. Raw health and calendar data never leave your personal database partition.