Leo/Conditions/Migraine

Migraine. Logged honestly.

Most apps treat a migraine like a one-row event: pain level, painkiller, done. Migraine doesn't actually work that way. Leo follows attacks through their four phases — prodrome, aura, headache, postdrome — and then shows you which factors in your own logged data tend to line up with the attacks you've had.

Status · in app today·Engine · descriptive, on-device·Not · a forecast or diagnosis
The disease

Migraine has four phases.

Treating a migraine as a one-row pain event is what most apps do, and it's why most logs feel useless after a month. The headache is the most visible phase, but it's not the only one — and the other three carry signal a clinician would want to see.

Hours to two days before

Prodrome

The warning phase. Many people learn to recognize a handful of signals — a craving, a stiff neck, yawning, mood shift, a foggy half-day — that show up before the headache does.

American Migraine Foundation · 2024
5–60 minutes

Aura

Sensory or neurological symptoms that happen for about a third of people. Most often visual (zig-zag lines, blind spots), but also sensory (tingling), speech, motor, brainstem, or retinal.

ICHD-3 · International Headache Society
4–72 hours, untreated

Headache

The pain itself, typically one-sided, often throbbing, usually worse with movement, frequently with light, sound, or smell sensitivity and nausea.

ICHD-3 · diagnostic criteria 1.1
Up to 24 hours after

Postdrome

The recovery phase, sometimes called the migraine hangover — brain fog, fatigue, residual sensitivity, mood changes. About 80% of people experience some form of it.

AMF / Bose & Goadsby 2016
Sources · American Migraine Foundation, “The Phases of Migraine” (2024) · International Classification of Headache Disorders, 3rd edition (ICHD-3) · Bose P, Goadsby PJ. “The migraine postdrome.” Curr Opin Neurol. 2016.
Day to day

What an attack looks like inside Leo.

You can log it three ways: Happening Now opens an active timer that lets you tick through phases as they actually happen; Log Past Attack is for backfilling a single attack from memory; Detailed Log is the guided form. Whichever route, the same set of fields is captured.

As you move through phases, Leo can suggest the next one based on time elapsed and the symptoms you've recorded — for example, suggesting headache when prodrome symptoms have been logged and your personal prodrome length has typically been four hours. You can accept the suggestion or ignore it.

Attack type
With aura · Without aura · Chronic · Vestibular · Menstrual
Aura type
Visual · Sensory · Speech · Motor · Brainstem · Retinal
Headache location
Left · Right · Bilateral
Pain quality
Throbbing · Pressing · Stabbing · Burning · Pulsating
Symptoms
Light · Sound · Smell · Skin sensitivity · Nausea · Vomiting · Dizziness · Neck pain · Brain fog · Fatigue · Mood · Nasal congestion
Severity
0–10 slider, captured at each phase transition
Triggers
Poor sleep · Stress · Dehydration · Skipped meal · Weather · Bright lights · Strong smells · Alcohol · Caffeine withdrawal · Hormonal · Screen time · Exercise (plus your own custom tags)
Rescue medication
Drawn from your med list. Rate effectiveness 0–10 and time-to-relief on resolve.
Weather at the time of the attack — barometric pressure, temperature, humidity — is captured automatically and attached to the record.
Today's outlook

A daily card of factors that co-occur with your attacks.

Once you've logged five or so attacks, the hub shows a Today's Outlook card. It surfaces three things at once: today's weather (with a flag for rapid barometric drops), today's menstrual-cycle phase if you track that, and the top factors from your own history that line up with today.

It's described in plain English — “pressure dropping, sleep below your usual, Thursday” — and labeled low / moderate / elevated. It's a reflection of your data, not a forecast, not a recommendation, and not a medical claim. The math is documented at /engines and runs entirely on your device.

Weather

Captured locally. Barometric pressure, temperature, humidity. Rapid pressure changes flagged.

Cycle

If you track a cycle, current phase is read from the Cycle hub — not duplicated.

Your patterns

Top factors from your own data — day of week, time of day, sleep below your usual, triggers you've logged before.

The Outlook is computed from your own logged attacks — it doesn't apply general-population thresholds. The first version shows up after about five logged attacks; the more you log, the sharper it gets.
The hub

Monthly summary, severity trend, and a four-tab insights drawer.

Open the hub and the top of the screen shows the month at a glance — a ring of migraine-free days, a count of attacks, average severity, average duration, days since the last one. Below that, a severity trend chart you can flip between 30 and 90 days, with the “severe” threshold marked.

Then four tabs of insights, computed from your own data:

Triggers

Top triggers by frequency. Bar chart of how often each tag appears across your attacks. Custom tags count too.

Medications

Rescue meds you've taken, ranked by average effectiveness rating and average time-to-relief. Sorted with the most reliable on top.

Patterns

Day-of-week and time-of-day breakdowns. Plain-English lines like "2.1× more attacks on Mondays" when the pattern is strong enough to mention.

MIDAS

MIDAS-5, the standard Migraine Disability Assessment questionnaire, with Grade I–IV interpretation. Retake any time and watch your score trend.

After every resolved attack, Leo also generates a per-attack summary card — duration, phase timeline, symptoms, triggers, medication effectiveness, and the top co-occurrences for that specific event.
What it isn't

The list of things we'd like to ship, and haven't yet.

Most condition pages on the internet read like a brochure. This one tells you where the migraine surface stops today. The list below is the active backlog for this hub — every item is on the feature-parity tracker, and the page gets updated as items ship.

◦ Not yet
PDF / CSV export of attack records

A general-purpose Leo health report exists; a migraine-specific report card isn't shipped yet.

◦ Not yet
Push notifications on incoming weather changes

Weather is captured at the time you log an attack and surfaced in Today's Outlook. Push alerts based on pressure forecasts aren't wired up.

◦ Not yet
Medication-overuse (MOH) detection

We log how often rescue meds are taken but don't yet flag frequency-based rebound-headache risk.

◦ Not yet
Botox cycle + CGRP injection scheduling

Preventive injection cadence isn't yet built into the migraine hub. Track injection dates in the general medications list for now.

◦ Not yet
Food-trigger diary

Food triggers can be entered as custom tags but there's no structured food log yet.

◦ Not yet
Hydration tracking

Dehydration is selectable as a trigger; daily fluid logging isn't a feature.

◦ Not yet
Screen-time auto-import

Screen time is a selectable trigger; Leo doesn't yet pull from iOS Screen Time.

◦ Not yet
Glucose / Dexcom direct integration

Glucose can flow in via HealthKit if your CGM writes there, but Leo has no Dexcom-direct integration.

Leo does not diagnose migraine, doesn't score whether you should take a medication, and doesn't forecast attacks. The hub describes what you've logged. Clinical decisions belong with your clinician.
Migraine hub

Track an attack the way it actually unfolds.

Phase-aware logging, descriptive co-occurrence, on-device math, and a backlog we name out loud. Built for adults and kids with migraine, and the parents and partners who help them through it.