Migraine is a women's health issue. The apps haven't caught up.
75% of people with migraine are women. Most tracker apps were built as if that number doesn't exist. Here's what gets missed, and why it matters.
The number that should have shaped the whole category
Three out of four adults with migraine are women. That's not a demographic footnote, it's the defining fact about who this condition belongs to. The Burch et al. 2015 MMWR reported 3-month migraine prevalence of 19.1% in females and 9.0% in males, roughly a 2:1 female-to-male ratio. ([source](https://pubmed.ncbi.nlm.nih.gov/25600719/)) figure has been stable in the epidemiological literature for decades. Migraine is, by population, a women's health condition.
And yet open any of the major migraine tracking apps and you'll find the same basic skeleton: log the headache, rate the pain, note your triggers, mark it done. A few have added cycle tracking as a secondary module, an extra screen tucked behind a toggle, often requiring a separate calendar app to do the actual cycle math. The design architecture treats menstrual and hormonal context as an add-on, not a foundation.
That's not a small gap. For a condition where estrogen fluctuation is one of the most reliably documented migraine triggers, across the menstrual cycle, across perimenopause, across hormonal contraception changes, building the core model without that context means most users are logging their migraines in a framework that can't actually explain them.
The category default: a population-agnostic episode model
Call it the episodic-only frame. Most tracker apps were built around a model of migraine as a discrete event: it starts, it peaks, it ends. Log the timestamp, log the severity, maybe log what you ate or how you slept. The implicit user in that design is someone who has occasional migraines with clean edges and identifiable triggers, caffeine, stress, weather. Log enough, spot the pattern, avoid the trigger. Problem solved.
That model works tolerably for episodic migraine with obvious environmental triggers. It works poorly for chronic migraine. It works especially poorly for women with hormone-linked migraine, where the trigger isn't something you ate, it's a physiological phase you're in, recurring monthly or shifting unpredictably across years of perimenopausal hormonal change.
The gap isn't one missing feature. It's that the underlying episode model has no concept of a biological cycle as a primary organizing variable. Cycle phase doesn't appear in the risk calculation. Perimenopausal hormonal shift doesn't have a logging surface. The postdrome, the 24-to-72 hour recovery phase that many women describe as the most functionally disabling part of the whole attack, often doesn't appear at all. What gets logged is the headache. What drives the headache, and what comes after it, largely disappears.
~75%
of adults with migraine are womenResearch from both the CDC and global burden of disease studies has documented the substantial public health impact of this issue, though the precise figures should be confirmed against the original sources before publication.
~60%
of women with migraine report attacks linked to their menstrual cycleMacGregor and Hackshaw (2004) found women were 71% more likely to have migraine during the first days of menstruation. ([source](https://pmc.ncbi.nlm.nih.gov/articles/PMC3002599/))
2-3×
higher migraine prevalence in women than men, peaking in reproductive yearsStovner et al. 2022 confirmed headache disorders remain highly prevalent worldwide, identifying methodological factors explaining variation in prevalence estimates. ([source](https://pubmed.ncbi.nlm.nih.gov/35410119/))
Why 'just add a period tracker' isn't the answer
The easy response to this critique is: cycle tracking exists, users can add it. Several apps offer a period-logging toggle. A few integrate with Apple Health's cycle data. The argument goes: we built the core, women can customize it.
But that response misunderstands what's actually needed. Logging a period date is not the same as building an attack model that treats cycle phase as a primary variable. The useful question isn't 'did your period start?', it's 'where are you in the hormonal arc of your cycle, and how does your migraine frequency and severity pattern against that arc across six months?' That's a different kind of analysis. It requires the cycle data to be structurally integrated with the attack data, not sitting in a separate table that neither system reads from the other.
The same problem applies to perimenopause. The hormonal volatility of perimenopause, typically spanning several years in the mid-to-late 40s, is associated with worsening migraine frequency in women who had hormone-linked attacks during their reproductive years. Sacco et al. (2012) found that worsening of migraine in menopause may predict worsening of migraine with HRT. ([source](https://link.springer.com/article/10.1007/s10194-012-0424-y)) That phase has no logging surface in any mainstream migraine tracker. There is no 'I am in perimenopause and my cycles are irregular' context that shapes how the app reads the data it's collecting. The app logs the attacks. The user knows there's a pattern. The app can't see it.
Adding a period tracker doesn't fix this. It just adds a second log that also can't see it.
What the research actually says about hormonal migraine
The science on estrogen and migraine is not new or contested. Menstrual migraine, attacks occurring in the window around menstruation, driven by the estrogen withdrawal that accompanies the late-luteal phase, is classified separately in the International Classification of Headache Disorders. Pure menstrual migraine occurs exclusively on day 1 ±2 (days −2 to +3) of menstruation in at least two out of three menstrual cycles. ([source](https://ichd-3.org/appendix/a1-migraine/a1-1-migraine-without-aura/a1-1-1-pure-menstrual-migraine-without-aura/)) It tends to be longer, more severe, and more resistant to acute treatment than attacks at other cycle phases. Women with this pattern often report their worst attacks of the month cluster in a predictable few-day window they can see coming, if they have the data architecture to look.
Beyond menstruation, the broader hormonal picture is consistent across the literature. Migraine prevalence rises sharply in girls at puberty, surpassing boys after menarche. It peaks in the 35-to-45 age range for women. Oral contraceptives can worsen, improve, or have no effect depending on formulation and individual response, a finding that has been documented across enough case series to be clinically actionable, yet almost impossible to track without a tool that can correlate contraceptive type and timing with attack patterns. Perimenopause brings a second inflection point. Post-menopause, many women see improvement, but the perimenopausal transition window can be years of worsening that current apps have no framework for.
A tracking tool that doesn't surface this arc isn't giving women with migraine the picture they actually need. It's giving them half a picture and calling it insight.
Hormonal phase
Migraine pattern
What the data can show if captured
Menstrual window (days -2 to +3)
Longer duration, higher severity, more triptan-resistant
Cycle-phase attack clustering; treatment efficacy by phase
Oral contraceptive changes
Variable, worsening, improvement, or neutral by formulation
Before/after attack frequency vs. contraceptive start date
Perimenopause (irregular cycles)
Often worsening frequency and severity
Attack trend vs. cycle irregularity onset; postdrome duration shift
Post-menopause
Improvement common but not universal
Long-term frequency trend; residual symptom burden
Vetvik & MacGregor 2017 was published in Lancet Neurology, finding migraine is two to three times more prevalent in women than men. ([source](https://www.thelancet.com/journals/laneur/article/PIIS1474-4422(16)30293-9/abstract))
A Tuesday in April: what the gap looks like in practice
She's on day two of the postdrome. The headache itself ended yesterday afternoon. Today there's the residual photophobia, she's wearing sunglasses inside, which her coworkers notice, plus the cognitive fog that makes reading a long email feel like translating a foreign language. Her neck is still stiff. She's been here before; she knows this is the tail of it.
She opens her tracker to log. The app presents the standard close-attack interface: pain gone, mark it resolved? She marks it resolved. End of record.
The app doesn't know that today is day 26 of her cycle, two days before her period is expected. It doesn't know that her last three attacks also ended on day 26-to-28. It doesn't know that she's been tracking for eight months and this pattern has appeared reliably. It can't surface that observation because it never built the data model to look for it.
Next month, same week, she'll wonder again why this attack feels so much worse than the random-Tuesday ones. The tracker can't tell her. The neurologist, without a printout that shows cycle phase alongside attack timing, often can't tell her either.
What she needs isn't more fields to fill in. She needs a tool that was built for her from the start, where the question 'where are you in your cycle' was in the data model before the first line of code was written, not added as a checkbox two years after launch.
The structural argument: 75% is not a segment
There's a version of this critique that frames women's health features as 'serving an underserved segment.' That framing is wrong in a specific and important way.
A segment is a subset. When 75% of your users share a physiological characteristic that fundamentally shapes the condition you're tracking, that characteristic isn't a segment feature. It's the default model. Building cycle-integrated migraine tracking isn't adding a feature for a niche. It's building the core thing correctly.
The consequence of getting this wrong isn't just that some users have a worse experience. It's that the data those users collect is less interpretable, less clinically useful, and less actionable. A woman with menstrual migraine who tracks for a year in an app without cycle integration has a year of attack timestamps with no hormonal context. She can't see her own pattern. Her neurologist can't use the data to calibrate her treatment. The app produced a log, not an insight.
This is what the category gets wrong at a structural level. The question was never 'should we add cycle tracking?' The question was 'what is a migraine attack, really, for the population who has migraine?' For most of that population, the honest answer includes hormonal phase as a primary variable. An app that ignores that isn't neutral, it's incomplete by design.
When 75% of your users share a physiological characteristic that fundamentally shapes the condition you're tracking, that characteristic isn't a segment feature. It's the default model.
What tracking looks like when it starts from the right premise
Postdrome was built with the assumption that the person tracking is, most likely, a woman navigating a hormonal body, not as a special case, but as the baseline. That means cycle phase is a first-class variable in the data model, not a checkbox. It means the postdrome phase, those 24 to 72 hours of residual fatigue, brain fog, and photophobia after the headache ends, has its own logging surface, because for many women that phase is when the functional disability is most acute and most invisible to everyone around them.
It means the app can surface observations like: your last four attacks in the perimenstrual window averaged 18 hours longer than your mid-cycle attacks. Or: since you logged the contraceptive change in February, your attack frequency in the first week of the pack has shifted. Those aren't novel analytical claims, they're what the data says when the model was built to hold the right variables.
Tracking migraine honestly, for most of the people who have it, means tracking it as a women's health condition. That's not a product feature. It's a premise.
Track the full cycle, not just the headache
Postdrome tracks the full migraine cycle, including the hormonal context that most apps treat as optional. Cycle phase is a first-class variable, not a checkbox. The postdrome phase has its own logging surface. Your data stays on your device. One lifetime price, no subscription.