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.
| Severity | Calendar Load | Biological Capacity |
|---|---|---|
| Severe | Above 70 | Below 40 |
| Moderate | Above 60 | Below 50 |
| Mild | Above 50 | Below 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
| Pattern | What counts |
|---|---|
| High density days | 6 or more hours of meetings in a single day |
| Back-to-back meetings | 3 or more consecutive meetings with less than 15 minutes between them |
| Late-day meetings | Any meetings after 6 PM |
| Early morning meetings | Any 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 score | Zone | What it means |
|---|---|---|
| 0 to 20 | Healthy | Recovery is keeping up with demands |
| 21 to 50 | Caution | Strain is building. Consider lightening your schedule. |
| 51+ | Burnout risk | Accumulated strain is high. Prioritize recovery. |
What data is needed
| Insight | Required integrations | Minimum data |
|---|---|---|
| Collision detection | Google Calendar + Oura Ring | Current day data from both |
| Capacity warnings | Oura Ring only | Current day Oura data |
| Meeting hangover | Google Calendar + Oura Ring | 14 days of overlapping data, 3+ pattern occurrences |
| Recovery debt | Google Calendar + Oura Ring | 7 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.