If your migraines don't end, the tracker can't represent you.
If your migraines don't end, your tracker doesn't know what to do with you. The data model in every major incumbent assumes a discrete attack with a start time and an end time. The chronic and vestibular cohort, roughly 5.5 million Americans, has been excluded from category tooling for fifteen years by a schema choice nobody calls a schema choice.
There's no end-of-attack to log
Your migraines don't have an end. They have a Tuesday morning where the worst of it has passed, an afternoon where the head pressure ebbs and the dizziness comes forward, an evening where you're functional enough to drive but not enough to work, and a Wednesday that feels like a recovery day except by Wednesday afternoon you're back inside the next attack.
You open your tracker. The first field asks when the attack started. You guess Tuesday morning, since that was when the headache part was worst. The second field asks when the attack ended. The cursor sits there. Your migraine didn't end. It has been a different shape for sixteen hours, then a different shape after that. You enter Tuesday afternoon as the end time because the field requires a value, then the entry tells you it was an eight-hour migraine, which is wrong by a factor of four.
This is the experience of opening a migraine tracker as a chronic or vestibular migraineur. The form doesn't fit the disease. You either lie to the tool to make it accept the data, or you give up and stop logging, and either way the tracker has stopped being a record of what happened to you.
The schema problem, named
Every major migraine tracker on the App Store, without exception, models a migraine as a row with start_timestamp and end_timestamp. The headache phenotype that fits this schema is episodic migraine: a discrete attack with a beginning, an end, and a clear gap between attacks. Episodic migraine is real, common, and the dominant phenotype in the patient population.
It is not the only phenotype.
Chronic migraine, as defined by the International Classification of Headache Disorders, is fifteen or more headache days per month for three months or more, with at least eight of those days having migraine features. The CM phenotype includes patients for whom the headache rarely fully clears between attacks, and patients for whom three different attack types, vestibular, ictal, postdrome-bleeding-into-prodrome, overlap in irregular cascades. There is no clean start and end timestamp on most of these patients' worst weeks.
Vestibular migraine, recognized by the Bárány Society and the International Headache Society as a distinct entity since 2012, presents with vestibular symptoms (dizziness, vertigo, motion sensitivity, visual instability) that frequently aren't temporally aligned with headache pain. Many vestibular migraineurs experience continuous low-grade symptoms with episodic acute exacerbations, a continuous-symptom phenotype that the discrete-attack schema literally cannot represent.
Continuous-symptom migraine isn't an edge case. The chronic migraine population alone is roughly 1% of US adults, around 2.5 million people. The vestibular migraine population overlaps but extends further, especially in women aged 35-55 where vestibular phenotype prevalence is highest. Combined with the postdrome-dominant and CGRP-on-but-not-cured cohorts, you have a population in the 5-million range whose disease can't be entered into the form the App Store category provides.
The schema problem is the load-bearing architectural decision the category has shared for fifteen years. It is the reason 1★ reviews from chronic and vestibular sufferers describe the same complaint with the same words across every major incumbent: "I can't enter what I have."
What the audience actually says
The schema problem is audible in the App Store reviews and in the relevant subreddits, often phrased the same way across very different products.
*"I suffer from newly diagnosed vestibular migraines. I don't have 'attacks.' My symptoms are constant and ebb and flow throughout the day."*, 1★ review of one of the largest migraine trackers, US App Store.
*"My headaches are three days long. I can't seem to select this. Also I would like to track the kind of headaches I'm getting. Some are classical migraines, some start in the middle of the night, some are neck related."*, 2★ review of a different incumbent.
*"The app only allows you to track 1 migraine per day! This is pointless! Many who suffer, suffer with more than one a day!"*, 1★ review.
*"Anyone else use [tracker] but found it unhelpful? My migraines are chronic so it's difficult to tell when one ends and another begins."*, r/migraine, recent thread.
*"I have CONSTANT dizziness, severe head pressure & pain, ringing tinnitus, pulsatile tinnitus in one ear, weird visual symptoms."*, r/VestibularMigraines, "Can it be constant?"
These aren't niche complaints. The pattern is consistent enough across review corpora and subreddit threads that you could write a single line as the canonical user voice: *the form doesn't fit my disease.* That line surfaces in different words across thousands of reviews. The category has heard it for over a decade. The schema hasn't moved.
Why the schema persists
The discrete-attack schema persists for two honest reasons, neither of which is malice or laziness.
The first is data-model gravity. The schema was set in the original Migraine Buddy launch in 2014 and hardened through a decade of migrations, integrations, and user-data lock-in. Retrofitting a continuous-symptom timeline into a database designed around discrete-attack rows means re-architecting the storage layer, breaking the existing user base's import paths, and reopening every downstream feature (analytics, exports, clinician views) for revalidation. For a vendor at scale, that's not a feature; that's a rewrite. The economic incentive is to keep the schema and tell the chronic and vestibular cohort to use a workaround.
The second is buyer-segment economics. Episodic migraine is the dominant phenotype, and the buyer at scale optimizes for the dominant cohort. The chronic + vestibular segment is roughly 20-30% of the total migraineur population but produces a disproportionate share of negative reviews when the schema doesn't fit them. The math, from a vendor optimizing for App Store rating average, is to ignore the negative reviews from the segment that's structurally hardest to serve. They'll churn anyway. The dominant cohort stays, the rating stays in the 4.5+ range, and the schema doesn't move.
This is the structural reason a tracker built specifically around the continuous-symptom timeline can exist as a competitive position. Not because the incumbents are blind to the gap. Because the gap is the cost of the choice they made fifteen years ago, and that cost is a population the App Store category has trained itself not to look at.
What a tracker built for the continuous-symptom timeline actually looks like
Naming the schema problem implies a specification. Three structural needs flow from the diagnosis.
First, the data model has to be a continuous timeline, with discrete attacks as a special case rather than the foundational unit. Symptoms log as intensity dimensions across rolling time, not as rows with start and end timestamps. The chronic patient who's at low-grade dizziness for fourteen days and ictal headache pain for six of those days has a real, representable experience in this model. The episodic patient still has a clean attack-shaped record, because a discrete attack is just a continuous timeline with sharp edges. The schema generalizes; the discrete-attack schema doesn't.
Second, the symptom dimensions have to be independent. Headache pain, vestibular symptoms, photophobia, brain fog, mood disruption, and neck stiffness are six different phenomena that overlap in irregular patterns. A schema that treats them as a single severity slider compresses out the information that makes the disease readable. A schema that treats them as independent intensity timelines makes the cascade visible, and the cascade is what the chronic and vestibular cohort live in.
Third, the trigger correlation has to model multi-day windows. A vestibular flare on Tuesday that disrupts sleep on Wednesday and triggers an ictal attack on Thursday is a known cascade pattern in the literature. Same-day correlation can't see it. Multi-day cascading correlation can. The trackers that only correlate today's triggers to today's attack are missing the most clinically interesting pattern in the chronic phenotype, which is that yesterday's incomplete recovery is today's trigger.
Three structural needs. None of them are postdrome-specific or vestibular-specific in their architecture; they're properties of a tracker built around the disease as it actually presents in the patient population it currently excludes.
What we built, and the cohort the schema was designed for
Postdrome is the tracker we built around the continuous-symptom timeline. The data model is a rolling timeline of independent intensity dimensions: headache pain, vestibular symptoms, residual photophobia, brain fog, neck stiffness, mood disruption. Discrete attacks are a special case the schema handles natively. Continuous symptoms are first-class.
The cohort the schema was designed for: the chronic migraineur whose Tuesday afternoon doesn't have an end-of-attack timestamp; the vestibular migraineur with months of low-grade dizziness; the postdrome-dominant patient whose work weeks are decided by the after-phase; the CGRP-on-but-not-cured patient whose attack frequency dropped and whose between-attack symptom load didn't.
The cohort the schema also serves: the episodic migraineur with clean discrete attacks. A continuous-symptom timeline with sharp edges represents a discrete attack natively. The episodic patient gets the same UX they're used to; nothing in the chronic-and-vestibular accommodation costs them anything.
The pricing posture matches the schema posture. Postdrome is free for the core experience: timeline, attack logging, symptom dimensions, neurology-ready PDF export. The Pro tier (a one-time $14.99, no subscription, ever) unlocks Watch sync, cross-device sync, and the formal templates for insurance prior-auth and disability claim documentation. Subscription was never on the table because the architecture doesn't justify it: your data lives in your iCloud, not on our servers, and our marginal cost per user is near zero.
None of that fixes the underlying disease. What it fixes is the alignment between what migraine actually is for the chronic and vestibular cohort and what your tracker is willing to admit about it.
Three questions to ask your current tracker today
If this analysis lands and you want to test it against the tracker on your phone right now, three concrete tests.
Try to log a migraine that hasn't ended. Open your tracker, start a new entry, and try to save it without an end timestamp. If the form requires a value or auto-populates one, the schema doesn't fit your disease.
Try to log low-grade vestibular symptoms across fourteen days that include three discrete ictal flares. If the tracker can't represent the continuous low-grade baseline as a separate dimension from the flares, it's compressing your disease into the model it was designed for.
Try to surface a multi-day cascade pattern. Ask whether your tracker correlates yesterday's incomplete recovery to today's attack frequency. If the only correlation it offers is same-day trigger to same-day attack, it can't see the pattern that defines the chronic phenotype.
Three tests. If any of them fails, the tracker is fitting the form to one phenotype and asking the rest of us to translate. The disease is what it is. The schema is what we choose to admit about it.
Postdrome is on the App Store
Free to download. $14.99 one-time for Pro (Watch app, cross-device sync, insurance and disability templates). No subscription, ever.