Docs

How Causal works.

Causal takes check-ins and Apple Health records, turns them into simple numbers, and looks for patterns. That is the whole idea.

It is not a doctor, not a lab, and not proof of medical causality. It is a way to ask better personal questions: what tends to happen after caffeine, alcohol, stress, workouts, sleep, and mood changes?

Getting Started

The app has three jobs: collect low-friction check-ins, read the Health data you allow, and show the comparisons it can justify.

  1. Choose the Apple Health records Causal may read; separately allow writes when you explicitly log supported measurements, meals, mindful sessions, State of Mind, or symptoms.
  2. Pick built-in factors in Pulse or create your own numeric, intensity, or recency factor. Mood is always on.
  3. Set the check-in limit and waking-hours window. Two check-ins per day is the default; four is the max.
  4. Answer prompts when they appear. Add optional context to an answer, or add an anytime note and time range from Home.
  5. Review your transcript. If you want cloud coach findings, separately opt in to AI analysis.

Check-ins

A check-in answer becomes a number for statistical tools. Optional prose is preserved as quoted context, not treated as a command to the model and not counted toward streaks.

AnswerValue used
MoodExcellent 4, Good 3, Meh 2, Awful 1
Caffeine, alcohol, sugar, socializingWithin 3h 1.0, 3-6h 0.6, 6-18h 0.3, yesterday or earlier 0.0
StressLow 0.0, Moderate 0.5, High 1.0
Workout promptNone 0.0, <20m 0.25, 20-45m 0.55, 45+m 1.0

For recency answers, Causal estimates when the event happened: within 3 hours becomes 1.5 hours before the prompt, 3-6 hours becomes 4.5 hours before, and 6-18 hours becomes 12 hours before.

The transcript combines check-ins, attached context, anytime notes, and relevant measurements chronologically. You can edit or delete your own text.

Health Snapshots

Snapshots are local summaries of available records. If there is no record, there is no snapshot.

MetricSourceDisplayBenchmarkPercentile
SleepApple Health sleepAnalysis asleep stagesHours, one decimal7+ hours from AASM/SRS and CDC adult guidancePersonal after 5 prior daily buckets; population when age is available
Resting heart rateApple Health restingHeartRateBpm, whole numberAHA common adult range: 60-100 bpmLower is treated as better; population when age is available
HRVApple Health heartRateVariabilitySDNNMs, whole numberNo public benchmark shownPersonal only; higher values rank higher
Workout durationApple Health workouts, plus prompt answers when used by the modelHours, one decimalNo public duration benchmarkLonger logged duration ranks higher

Personal baseline

Baselines need at least 5 prior daily buckets for the same metric. If a day has multiple samples, Causal uses that day's median. It compares the latest value with the mean of the latest 14 prior buckets.

Delta means latest value - baseline mean. For resting heart rate, lower is treated as better. For sleep and HRV, higher ranks higher, but longer sleep is not automatically called better sleep.

Percentiles

Personal percentile

Personal percentiles compare today with your own prior daily buckets. They stay hidden until there are at least 5 prior buckets.

Formula: ((betterCount + 0.5 * equalCount) / priorCount) * 100. Ties get half credit. Results are rounded and capped from P1 to P99.

  • Resting heart rate: lower values rank better.
  • Sleep and HRV: higher values rank higher.
  • A personal percentile is not a population percentile.

Population percentile

Population benchmarks use age and sex assigned at birth when available. If sex is unavailable or unmapped, Causal uses an all-people cohort.

The stored NHANES cut points are P5, P10, P25, P50, P75, P90, and P95. Causal interpolates between them. Values below P5 show as P5; values above P95 show as P95.

  • Sleep: CDC NHANES Aug 2021-Aug 2023 SLQ_L/DEMO_L.
  • Resting heart rate: CDC NHANES 2017-2018 BPX_J/DEMO_J.
  • HRV has no population percentile yet because public reference tables are too protocol-dependent.

Personalized Coach Findings

With separate consent, a bounded Gemini agent on Vertex AI inventories your available built-in and custom signals, registers hypotheses, and chooses among deterministic statistical tools. The model never receives database or arbitrary-code access and cannot publish directly.

  • A run registers at most 6 hypotheses, makes at most 20 tool calls, and has a 90-second budget.
  • Tools include lagged OLS with HAC errors, robust Huber regression, elastic net, paired windows, context comparisons and interactions, change points, block bootstrap, rolling and leave-one-day-out checks, permutation placebos, and Benjamini-Hochberg correction.
  • Illness and similar notes become context segments first. Any filtered view is reversible, names its reason, and runs a parallel all-data sensitivity check.
  • Every published number is rebuilt from tool output. A safety validator and critic reject unsupported, diagnostic, medication, treatment, or extreme-behavior claims.
  • Findings append as emerging, strengthened, stable, weakened, contradicted, or retired. Prior versions are not rewritten.
  • Useful, off-base, correction, dismiss, and one-run all-data feedback affect future analysis without changing past evidence.

Evidence gates

Emerging statistical findings need at least 7 distinct days and 12 paired observations plus variation, effect-size, false-discovery, and stability checks. Supported findings need at least 21 days and 30 pairs, comparison coverage on both sides, a bootstrap interval excluding zero, a placebo pass, and a stable direction with and without exclusions. The strongest tested result is not published unless it passes.

Health-to-Health patterns

Supported Apple Health records can act as both predictors and outcomes. Each record carries its unit and whether a lag window should sum daily amounts or use the latest observed state. A Health predictor must be strictly earlier than its outcome, never concurrent or later, and it cannot be tested against itself. Daily continuous predictors compare days above versus at or below their personal median for evidence coverage; reported effects still use the original units.

Workout source fusion

Workout treatment is a de-duplicated union of the daily workout prompt and Apple Health sessions. Exact HealthKit sessions collapse by stable sample ID, while strongly overlapping records with similar durations collapse when a watch and companion app saved the same workout. Repeated prompts collapse to the day's largest answer because the question is cumulative for "today."

The prompt contributes only estimated minutes not already covered by Apple Health workouts ending by the answer time; a later workout remains new exposure. A five-minute tolerance handles bucket rounding. One workout exposure unit is one hour. A 20-minute Health workout plus a "45+ minutes" answer therefore becomes 60 total minutes: 20 exact minutes plus a 40-minute survey residual, not 80 minutes.

The previous fixed OLS controller and coefficient-oriented schema remain readable during rollout. Lagged OLS is now one tool, and personalized coefficient percentiles are not used for new coach findings. Independently sourced population benchmarks remain separate.

Body Metrics

Body Metrics currently cover manual Weight and Body Fat entries. Weight is stored and displayed in pounds. Body fat is displayed as a percent.

  • Trend lines sort entries by timestamp and draw the stored values.
  • Change is latest value minus first value. Differences under 0.05 show as no change.
  • Mood insights need at least 4 body metric entries and 8 matched mood samples.
  • Mood check-ins match to the nearest body metric entry within 3 days.
  • Values split around the median; Causal compares average mood on the 1-4 scale across the two sides.
  • The insight stays hidden unless each side has at least 3 samples and the mood gap is at least 0.25.

Privacy

Causal reads Apple Health only after permission and only for the individual scalar measurements, characteristics, non-quantity records, food correlations, sleep analysis, and workouts a person chooses to share. Write permission is requested only when a person explicitly saves a supported measurement, reviewed meal, mindful session, State of Mind, or symptom. Exact records retain their timestamps, and Causal-authored records are de-duplicated during import. Workout sample IDs and source labels are stored to synchronize and de-duplicate records.

Benchmark profile fields choose comparison cohorts. When a field is empty, date of birth can supply age and a compatible biological-sex value can supply female or male; these Apple Health characteristics are import-only. Height and weight synchronize in both directions and support profile completeness and body metric workflows.

Notes can be stored with AI analysis off. Enabling the coach sends pseudonymous raw signal rows directly to Gemini on Vertex AI; obvious contact information is removed and raw note text is not placed in run logs. Consent, export, and deletion controls live in Pulse under Privacy & Data. The Privacy Policy has retention and service-provider details.