Adds a 5-step negative-mood reflection flow with an evidence-examination step, Socratic templated questions that back-reference prior answers, and a deterministic cognitive-distortion detector that routes the perspective- check prompt to a distortion-specific reframe. Includes CBT plan docs, flowchart, stats research notes, and MCP config. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
6.9 KiB
Advanced Statistics — Deep Data Research
Temporal Pattern Mining
Mood Cycles & Seasonality
- Weekly cycles — not just "best/worst day" but the actual shape of the week (do they dip mid-week and recover Friday, or crash on Sunday night?)
- Monthly cycles — mood patterns across the month (beginning vs end, paycheck timing effects)
- Seasonal patterns — spring vs winter mood baselines. Weather data can separate "it's cold" from "it's January" effects
- Time-of-day patterns —
timestamp(when they logged) vsforDate. Late-night loggers vs morning loggers may show different patterns. Logging time itself could correlate with mood.
Trend Decomposition
Instead of just "improving/declining/stable", decompose the mood signal into:
- Baseline (long-term average that shifts slowly)
- Trend (is the baseline rising or falling over months?)
- Volatility (are swings getting wider or narrower over time?)
This gives users a real answer to "am I actually getting better?" that a simple average can't.
Cross-Signal Correlations
Health × Mood (Per-User Correlation Ranking)
9 health metrics available. Instead of showing all, rank which health signals matter most for THIS specific user. Compute per-user Pearson correlation between each health metric and mood:
- "Sleep is your #1 mood predictor (r=0.72)"
- "Steps have no significant correlation for you (r=0.08)"
- "Your HRV and mood are moderately linked (r=0.45)"
Personalized and genuinely useful — tells each user what to focus on.
Weather × Mood (Beyond Averages)
Instead of just "sunny days = happier":
- Temperature sweet spot — fit a curve to find their optimal temperature range
- Weather transitions — does a sunny day after three rainy days hit differently than a sunny day in a sunny streak?
- Humidity as a factor — stored but not analyzed
Tags × Health × Mood (Multivariate)
Cross-signal analysis:
- "On days tagged 'work' + sleep < 6hrs, your mood averages 1.8. On 'work' + sleep > 7hrs, it's 3.4" — sleep is a buffer against work stress
- "Exercise days tagged 'social' average 4.2, exercise days tagged 'solo' average 3.1" — social exercise matters more
Behavioral Pattern Analysis
Logging Behavior as Signal
The act of logging contains information:
- Entry source patterns — do they use the widget more on bad days? Watch on good days? Could reveal avoidance patterns
- Logging time drift — are they logging later and later? Often correlates with declining mood
- Note length vs mood — do they write more when upset or when happy?
notes?.countis free data - Reflection completion rate — do they bail on guided reflections for certain moods? Completing a negative reflection may itself be therapeutic
Gap Analysis (Deeper)
Beyond simple gap tracking:
- What predicts a gap? Look at the 3 days before each gap — was mood declining? Were they on a negative streak?
- Recovery patterns — how long after returning does mood stabilize? Is there a "bounce" effect?
- Gap frequency over time — are they getting more or less consistent? Consistency trend is a health proxy
AI-Enriched Analysis
Note/Reflection Sentiment Trends
- Sentiment trajectory within a reflection — does the user start negative and end positive (processing) or start positive and end negative (rumination)?
- Topic evolution — what themes are growing vs fading over months? "Work" mentions peaking = potential burnout signal
- Gratitude frequency — entries tagged "gratitude" tracked as a percentage over time. Research shows gratitude journaling improves wellbeing — show them their own trend
Predicted Mood
With enough data (30+ entries), build a simple predictor:
- Given today's day of week, recent weather, recent sleep, and current streak — what mood is likely?
- Show as a "forecast" card: "Based on your patterns, Tuesdays after poor sleep tend to be tough — be gentle with yourself"
- Uses correlations already computed, just applied forward
Comparative & Benchmark Insights
Personal Bests & Records
- Longest positive streak ever (and when it was)
- Best week/month on record
- Most consistent month (lowest variance)
- "Your mood this March was your best March in 2 years"
Milestone Detection
- "You've logged 100 days"
- "Your 30-day average just hit an all-time high"
- "First month with no 'horrible' days"
- Motivational and drives retention
Before/After Analysis
If a user starts a new habit (e.g., enables HealthKit, starts guided reflections, starts tagging), compare stats before vs after:
- "Since you started doing guided reflections 45 days ago, your average mood is up 0.6 points"
- "Since enabling Health tracking, your logging consistency improved 23%"
Feasibility Notes
All of this runs on data already collected. The compute is lightweight:
- Correlations are just
zip+ arithmetic on two arrays - Cycle detection is grouping by
weekDay/Calendar.component(.month)/ hour-of-day - Trend decomposition is a sliding window average
- Predictions are weighted averages of correlated factors
- No server needed — Foundation Models handles the narrative, Swift handles the math
The heavy lift is visualization (Swift Charts) and narrative framing (using Foundation Models to turn "r=0.72 for sleep" into "Sleep is your superpower — on nights you get 7+ hours, your mood jumps by a full point").
Existing Data Points Available
Per Entry (MoodEntryModel)
- Date logged (
forDate) - Mood value (5-point scale)
- Entry type (10 sources: app, widget, watch, siri, etc.)
- Timestamp created
- Day of week
- Text notes (optional)
- Photo ID (optional)
- Weather data — condition, temp high/low, humidity, location (optional)
- Guided reflection responses (optional)
- AI-extracted tags from 16 categories (optional)
HealthKit (9 metrics)
- Steps, exercise minutes, active calories, distance
- Average heart rate, resting heart rate, HRV
- Sleep hours, mindful minutes
Already Computed (MoodDataSummarizer)
- Mood distribution (counts, percentages, averages)
- Day-of-week averages, best/worst day, weekend vs weekday
- Trend direction and magnitude
- Streaks (current, longest, positive, negative)
- Mood stability score and swing count
- Tag-mood correlations (good-day tags, bad-day tags)
- Weather-mood averages (by condition, by temp range)
- Logging gap analysis (pre/post gap averages)
- Entry source breakdown
Already Visualized
- Year heatmap + donut chart (YearView)
- AI-generated text insights (InsightsView)
- Weekly digest card (WeeklyDigestCardView)
- AI reports with PDF export (ReportsView)
NOT Yet Visualized (Gaps)
- No trend line charts
- No health correlation charts
- No tag/theme visualizations
- No period comparisons
- No streak visualizations beyond a number
- No mood stability visualization
- No logging behavior analysis
- No predictive features