Reports
Patterns in how you feel are hard to see day to day. Egon reports bring your journal and your Apple Health data together over a week, a month, a quarter or a year — mood, stress, personality, sleep, activity, and how they relate.
Every report is generated on your own device and saved as a single HTML file that works offline and never makes a network request. Each chart explains why it matters for your wellbeing and how to read it. Use reports for self-reflection, or choose to share one with someone you trust — print it or save it as a PDF from your browser.
See an example
A full quarterly report for David Osei, a fictional 58-year-old who retired early after a heart scare and is finding his feet again. He represents our Self-Directed Individual persona. His journal and health data are synthetic — no real person's data — but the report was made with exactly the same command and local models you would use yourself. Hover, zoom, and click around. Its AI health summary was written by a small model (qwen2.5:7b) on an older laptop; a newer computer can run larger models for more reliable summaries.
Generating your own reports
Reports are part of the egon-journal CLI. If you haven't set it up yet, start with the Journal page. Then point it at your Apple Health export (optional) in .env:
To export from your iPhone: Health app → your profile picture → Export All Health Data, then unzip the file. Optional targets (EGON_TARGET_BODY_MASS, EGON_TARGET_RESTING_HEART_RATE, EGON_TARGET_EXERCISE_MINUTES) add a personal goal line to the matching charts.
Generate every chart for a period plus one combined report:
The terminal shows one line per chart and where the combined report was saved (reports/full_report/). Periods can be weeks (2026-W14), months (2026-02), quarters (2026-Q1) or years (2026). Which analyses are included is set in egon.toml.
Optional extras
Charts marked below need an optional install. Everything runs locally; models are downloaded once on first use.
On an Intel Mac, run bash scripts/setup_limbic.sh once instead of the limbic extra.
What's in a report
The full report has four sections. Each chart is also available on its own.
Journal insights
Word count
Words per entry with a 7-day trend — a quiet signal of how engaged you are with writing, and of changes in rhythm.
Frequent words
The most frequent meaningful words across a period, ranked — what kept coming up. Opt-in: set wordcloud = true in egon.toml.
Self-focus in language
The share of first-person pronouns (I, me, my) in your writing. A sustained rise can reflect turning inward — healthy reflection or rumination.
Included in the full report (--full).
Topics
Recurring themes discovered with BERTopic, ranked by size, and how they shift from month to month.
Personality & affective patterns
Sentiment
Daily tone of your writing (VADER, −1 to +1) as positive and negative bars around a neutral band, with a 7-day trend. Fast and fully local.
Stress
Daily probability that your writing reads as stressed (DistilBERT fine-tuned on the Dreaddit dataset), with a 7-day trend.
Loneliness
Daily probability that your writing expresses loneliness (MentalBERT), with a 7-day trend.
Emotional tone
The balance of seven emotions in your writing (DistilRoBERTa): positive affect above a neutral band, negative below, plus a period profile. Click an emotion to isolate it.
Thinking traps
Cognitive distortions such as catastrophizing and should statements (BERT-tiny classifier): a daily distortion signal and a week-by-week heatmap of which traps appear most.
Big Five traits
Openness, Conscientiousness, Extraversion, Agreeableness and Neuroticism as reflected in your writing (DistilBERT), with period averages compared to the population.
MBTI type
Your type for the period (e.g. INFJ) and the daily lean on each of the four dimensions. A playful lens rather than a measurement.
Physiological measures
Weight
Daily body weight (and lean body mass, if recorded) with a 7-day trend and an optional personal target.
Resting heart rate
Daily resting heart rate with a 7-day trend. A sustained rise above your baseline is an early sign of strain.
Heart rate variability
Daily HRV (SDNN) with a 7-day trend — a mirror of stress and recovery.
Sleep
Nightly time asleep with 7 h and 9 h reference lines, and when you fell asleep — the narrower the band, the more regular your bedtime.
Steps
Daily steps with a 7-day trend and a 7,000-step reference line — the range where benefits for mood show up in research.
Exercise
Daily Apple Exercise Time with the WHO guideline of 30 minutes a day, or your own target.
VO₂ max
Cardiorespiratory fitness estimates over time — best read over months.
Cross-signal analysis
Correlations
How your journal and health signals move together: an interactive heatmap (click a cell to see that pair day by day), the ten strongest pairs, and four pairs with known links to mental health, such as sleep and next-day mood.
All report commands accept --period (week, month, quarter, year, all-time) and --for (e.g. 2026-02, 2026-W14, 2026-Q1). Health reports also accept --xml to point at an Apple Health export directly.
Private by design
- Your journal and health data are read from local files and analyzed on your device.
- Reports contain your data and are marked confidential — share them only if you mean to.
- Model scores are estimates from language, not a diagnosis. If something in a report worries you, talk to someone you trust or a professional.