Why trigger tracking fails chronic migraineurs, and what to track instead

Article ยท 5 min read

Trigger diaries need control days, and chronic migraine has run out.

Trigger logging is an experiment that runs on headache-free days. Past 15 a month, those days are gone. The fix isn't more logging, it's a different question.

Month eight of the diary

Nineteen headache days last month. The diary has columns for sleep hours, aged cheese, red wine, barometric pressure, screen time, cycle day, and a free-text box that mostly says "stressful week."

Now try to run the comparison the diary was built for. Pick a suspected trigger. Find the days it was present and an attack followed. Then the days it was present and nothing happened. Then the days it was absent and the attack came anyway.

That third list is where the method quietly dies. Nineteen headache days out of thirty leaves eleven days without an attack, and most of those eleven are prodrome or postdrome days wearing a costume. There's almost nothing clean left to compare against.

The control-day problem

Call it the control-day problem. A trigger diary is a small observational experiment, and like any experiment it runs on contrast: days with the exposure, days without, days with an attack, days without. The headache-free day is the control arm. It's the only thing in the whole dataset capable of falsifying "the cheese did this."

ICHD-3 sets the chronic migraine threshold at headache on 15 or more days per month for more than three months, with migraine features on at least 8 of those days. Cross that line and the control arm of your own experiment shrinks to a handful of days, and those days are rarely neutral. They're the tail of the last attack or the leading edge of the next one.

The advice to hunt triggers doesn't get re-derived at that threshold. It gets inherited.

Advice built for four attacks a month, handed to someone having nineteen

Trigger hunting earns its reputation honestly in episodic care. Four attacks a month against twenty-six quiet days is a workable signal-to-noise ratio, the pattern is often real, and removing the exposure often helps. Nobody should apologize for that advice.

It just ships without a frequency gate. Trackers across the category lead with some version of a "your top triggers this month" view, and none of them ask how many headache days went into the calculation before rendering it. The same screen draws for someone with three attacks and someone with twenty-four. One of those readouts is an observation. The other is arithmetic performed on almost nothing.

There's a second problem underneath. Plenty of what gets logged as a trigger is a symptom of an attack that already started: the food craving, the neck stiffness, the yawning, the sudden intolerance of a room that was fine an hour ago. Schulte and May scanned a single patient daily across 30 days and three spontaneous attacks (Brain, 2016) and found hypothalamic activity shifting in the 24 hours before pain onset. One patient, so read it carefully. But the direction it points is uncomfortable: the attack can be underway well before the "trigger" reaches the diary.

What the trigger literature actually found

Chocolate is the cleanest case in the literature. Marcus and colleagues ran a double-blind provocation study in 1997 and found chocolate no more likely to produce headache than carob placebo. The association in patients' diaries was real. The causation wasn't there to find.

Lipton and colleagues published the let-down analysis in Neurology in 2014: attack risk rose after a decline in perceived stress, not only during the stressful stretch itself. Log "stress" on the day it peaks and you've recorded the wrong day.

Paul Martin's group tested avoidance head-on in a randomized trial, and teaching patients to cope with exposure to triggers performed at least as well as teaching them to avoid, with the mechanistic argument that avoidance can raise sensitivity over time. Avoidance isn't free.

And Turner, Houle and colleagues made the statistical point plainly in Headache in 2013: establishing that a candidate trigger causes attacks in one specific person takes far more observations than any normal diary period supplies. A few weeks of tracking simply isn't enough data to pin the blame on a single suspect with any confidence.

Headache-free days left in a 30-day month4 headache days268 headache days2215 headache days1520 headache days1026 headache days4
Simple arithmetic on a 30-day month. The 15-day bar is the ICHD-3 chronic migraine threshold; every day to the right of it is a control day the diary no longer has.

Running the numbers on a month shaped like yours

Take an illustrative month, built to be favorable to the diary. Nineteen headache days out of thirty. Red wine on six nights. An attack followed on five of those six.

Eighty-three percent. That looks damning enough to give up wine for good.

Now finish the calculation. On the twenty-four nights without wine, attacks came on fourteen of them, which is fifty-eight percent. The base rate for an attack on any given day that month was sixty-three percent. So the apparent effect rests on six observations, and the comparison group was already having attacks most days anyway.

Then reclassify one day. A night you forgot to log. An attack that had actually started before dinner and you called it the wine. Five of six becomes four of six, and the pattern evaporates. That's the whole problem in one line: at this frequency, a single mislogged day doesn't shift the estimate, it flips it.

Episodic (under 15 headache days/mo)Chronic (15+ headache days/mo)
Headache-free days in a 30-day month16 to 260 to 15
What a control day usually isA mostly clean baseline dayProdrome, or postdrome, or both
Effect of one mislogged dayShifts the estimateFlips the estimate
What the diary can establishCandidate associations worth testingLittle beyond what the patient already suspected
Dominant failure modeMissing a real triggerBlaming an unavoidable attack on an avoidable act
Day counts follow the ICHD-3 chronic migraine threshold (headache on 15 or more days per month for more than three months). The rest is the structural consequence of that arithmetic.

Change the question from cause to cost

If attribution is unrecoverable at this frequency, the diary has to earn its keep somewhere else. Something does hold up when the attacks are near-continuous, and it's the part most tracking treats as an afterthought: what the attack cost.

Hours from pain resolving to functional baseline. How many days of the month were spent in the after-phase rather than the headache itself. Whether the fog cleared before or after the photophobia. How many days were lost outright, how many were half-lost, what the fourth week looked like against the first. None of that needs a control day, because it's measurement rather than inference. You're counting what happened, not arguing about why.

It also happens to be the data other people act on. Headache days per month and functional disability are what a preventive response gets judged on at the three-month mark, what a step-therapy appeal turns on, and what a neurologist can do something with in a twelve-minute follow-up. A ranked list of suspected triggers is not.

This is not "triggers aren't real"

Known provocations exist, and some of them are well documented. If you already know that a specific exposure reliably lands you in a dark room, keep avoiding it. The argument here is methodological, not dismissive: a diary kept at 20 headache days a month can't adjudicate causal questions, and reading a missed avoidance as the *explanation* for an attack turns a data problem into self-blame.

What a tracker built for this frequency records

We built Postdrome around burden instead of attribution, which is why the timeline runs continuously rather than as a list of discrete attack events. An attack that stops hurting at 4pm and leaves you unable to read until Thursday isn't a checkbox that closed. It's one entry with a shape, and the shape is the useful part.

So the after-phase gets its own fields: fatigue, residual photophobia, cognitive slowness, mood, neck stiffness, and the hours it actually took to reach your own functional baseline. Over a quarter that produces something a diary rarely gives a chronic patient, which is a recovery curve you can watch bend when a CGRP preventive starts working, or fail to bend when it doesn't.

There is still a trigger field. It doesn't get promoted into a headline correlation score, because we're not willing to render a causal-looking number off eleven control days.

Logging happens when logging is hardest, so Aura Mode strips the interface to what someone with an active visual disturbance can hit. Data stays on the device. The price is a one-time purchase, stated up front, and the export is yours in a format your neurologist can read.

If your month has more headache days than clean ones, a trigger score isn't the number that will help you. Postdrome records the after-phase, the hours back to your functional baseline, and the burden across the month, on your device, for one price, with an export your neurologist can actually use.

We built Postdrome because of migraines in our lives, and because every app we tried failed the people we love in the same place: the tracking stopped when the pain did. That gap is where most of a chronic month actually lives. The design follows from the arithmetic in this piece. When a person has fewer headache-free days than headache days, a correlation engine has nothing honest to compute, and a recovery timeline has everything.