Forecast
A cycle tracker for women who still have a hormonal cycle but no monthly bleed: partial hysterectomy with ovaries kept, endometrial ablation, hormonal IUD or continuous pill, perimenopause with unreliable bleeds. Other trackers open with “when was your last period?”, which she can’t answer. She knows something cyclical is happening (energy, mood, sleep, migraines, bloating) and wants to see the pattern and know what’s coming.
Tagline: “You still have a cycle. Now you can see it.”
Not a fertility app. Not a wellness app. No pregnancy mode, affirmations, streaks or badges.
She is mostly 35 to 55, smart, busy, and often logs at night in bed with one thumb.
Voice
A good nurse friend: plain, warm, unhurried, honest about uncertainty.
- Never ask for a period date. Never use “period”, “menstruation” or “flow” as an input, label or default. Ask about signals.
- Use real words: hysterectomy, ovaries, estrogen, ovulation. No euphemisms.
- Forecast, don’t diagnose. Predictions say “looks like” or “based on your last three cycles” and always show confidence. Never “you are ovulating”; instead “signals suggest a peak around Thursday”.
- No exclamation marks, no pep talk, no emoji.
- Headlines six words or fewer. Body copy two sentences or fewer. Buttons one or two words.
- One weather metaphor per screen, in the headline only. Wry is fine; cute is not.
Vocabulary: “signals” not symptoms; “cycle day”; “reset” for the low point where a new cycle starts; “forecast”, “outlook” (next few days), “patterns” (history), “the wheel”. Phases: Rising, Peak, Falling, Low. Medical names appear only in Learn, in parentheses, once. Banned: Aunt Flo, girl, ladies, journey, self-care, empower, wellness.
Sample copy, use verbatim where it fits:
- Onboarding: “You still have a cycle. Let’s find it.” / “No period date needed. We’ll work it out from what you feel.”
- Situation options: Partial hysterectomy (ovaries kept) · Endometrial ablation · Hormonal IUD or continuous pill · Irregular or absent periods · Something else
- Optional anchors: “Any of these help us find your cycle faster. Skip if none apply.” Ovulation twinge · LH strips · Basal temperature · Cyclical migraine
- Today headlines: “Low pressure today.” / “Clearing by tomorrow.” / “Peak weather. Expect energy.” / “Fog likely before noon.”
- Cycle chip: “Day 19 · Falling · fair confidence”
- Not enough data: “We can’t forecast yet. About two more weeks of check-ins should do it.”
- Check-in prompt: “How’s the weather in there?” Done: “Logged. Forecast updated.”
- Insight: “Sleep tends to drop around day 22. That’s four cycles running.”
- Evening reminder: “Thirty seconds. How was today?”
- Error: “Couldn’t save that. Check your connection and try again.”
Visual direction
Two signatures, one object. The sky is a gradient that shifts with the phase. The wheel is her whole cycle drawn as rings, with the sky as its outer band and today’s sky in the hub. Everything else is quiet, dense and legible.
Palette (hex → shadcn token):
Night #1B1D2A text, dark surfaces → foreground
Haze #EFEDF2 app background → background
Cloud #FFFFFF cards, empty wheel rings → card
Dusk #5B5F93 buttons, links, active → primary
Apricot #E39A6B wheel needle and today marker only → accent
Sky #9DB8CC secondary fills → secondary
Fog #C9C6D1 borders, disabled → border
Flare #B9503B pain and migraine only → destructive
Radius 14px. Dark mode is first-class: background Night, cards #262838, text Haze, Dusk lightened to #8A8EC4, empty wheel rings #2E3042.
Sky gradients, all 160deg: Rising #E39A6B→#9DB8CC; Peak #9DB8CC→#EFEDF2 (Night text); Falling #5B5F93→#E39A6B; Low #1B1D2A→#5B5F93; Unknown #C9C6D1→#EFEDF2 (Night text). Crossfade 600ms on phase change.
Type (Google Fonts): Instrument Serif italic 32px for the forecast headline, regular 28px for screen titles, nowhere else. Figtree for everything else, 16px body, 14px secondary, weights 400 and 600, tabular numerals. No Inter, no system stack. No small-caps labels above sections.
Layout: mobile-first, 20px gutters, 480px max width centred on desktop with Haze edge to edge. Bottom tabs: Today, Log, Patterns, Learn. Settings via the avatar top right. Cards are Cloud with a 1px Fog border and no shadow. Spacing scale 4, 8, 12, 16, 24, 32. No screen may be a single card. Lucide icons only, 20px, stroke 1.5. No illustrations, stock photos or emoji. Charts are one line per signal in its hue on a faint Fog grid, Apricot dot on today, no area fills, no pie charts. Motion 300ms ease-out; nothing bounces; respect reduced motion.
The wheel
Keep the existing wheel’s behaviour and restyle it:
- Day 1 at twelve o’clock, days clockwise, a full turn is the estimated cycle length.
- Outer band, 6px: the sky as one continuous gradient around the circle, dawn at day 1 through clear, dusk and night back to dawn, no seams. 1px Fog hairline on both edges. Always present, even before any signals are logged.
- Inside: one ring per signal, equal widths, 1px Fog hairline between rings. A ring appears once a signal has shown up twice. Max 10. Default order from outside in: Sleep, Energy, Mood, Brain fog, Migraine, Bloating, Breast tenderness, Anxiety. Order editable in Settings.
- Ring colour: Cloud where the signal never appeared on that cycle day in past cycles; the signal’s hue where it did; darker for higher severity averaged across past cycles. Shades blend continuously around the ring with no hard edges or gaps.
- Severity 0 to 4 per hue H: empty; H 35% on white; H 65% on white; H; H 30% toward Night. Sleep example: #FFFFFF #CDDCE9 #A6C0D8 #6F9BBF #56718E.
- Hub: circle in today’s sky gradient with the cycle day in Figtree 600 28px tabular and the phase name in 12px beneath.
- Needle: 2px Apricot from hub edge to outer band at today’s angle, 6px dot at the tip.
- Ticks outside the band at days 1, 7, 14, 21 with 11px Fog numbers. No other labels.
- Static. Only the hub crossfades on phase change. Tapping a ring on Patterns highlights it, dims the others to 30% and names its usual days above the wheel.
Signal hues, one per signal for life, used in rings, chips, charts and legend: Sleep #6F9BBF · Energy #C9A24A · Mood #8C7FB5 · Brain fog #8E97A6 · Migraine #B9503B · Bloating #6FA08A · Breast tenderness #B87A93 · Anxiety #D0895A · Hot flush #D9724F · Libido #9C6FAE. New signals take the next unused hue. Adjacent rings must not share a hue family.
Screens
Today, in this order: sky panel with headline, one plain detail line and the cycle chip; “Your cycle” card with the wheel at 140px (no legend or ticks, hub shows the day only) beside three rows for the next three days, each a phase swatch, day name and one word (Steady, Dip, Lift); quick check-in with four 1 to 5 sliders (Energy, Mood, Sleep, Pain) and signal chips, button “Log today”; one insight card; link “How we forecast without a period date”.
Log: sliders plus chips grouped Body (bloating, breast tenderness, headache, migraine, cramps, hot flush, skin), Mind (anxiety, irritability, low mood, brain fog, focus), Sleep (trouble falling asleep, waking early, vivid dreams), Other (libido, appetite, ovulation twinge, LH positive, temperature). Optional note. Selected chips take their signal hue. Seven-day strip at the top to edit past days.
Patterns: the wheel at 320px with a legend of colour dots and names, outside in; per-signal line charts across the last three cycles aligned by cycle day; a “Your usual” list of plain-language patterns.
Cycle: current estimate (length, day, phase, confidence, next reset); a three-paragraph “How we forecast” (we look for recurring signals, align them across cycles, confidence grows with check-ins); “Move day 1” date picker with a note that the forecast and wheel recalculate.
Learn: articles under 300 words with Instrument Serif titles, starting with “Why you still cycle after a partial hysterectomy”, “What an ablation does and doesn’t change”, “Finding your cycle without a period”, “Perimenopause and the disappearing anchor”. Each ends with “Talk to your GP or gynaecologist if…”. No medical advice.
Settings: situation, reminder time, ring order, units, theme, export CSV, delete account (“Delete everything? This removes all your check-ins and forecasts. It can’t be undone.”).
Hard rules
- No period input, bleeding tracker, fertility window or pregnancy mode.
- No pink, pastel gradients, florals or blob illustrations.
- Confidence is always shown beside a forecast.
- No placeholder text. Use the sample copy or match its register.
- Every screen works in dark mode and at 375px.
- Signal hues come only from the list above. Apricot is only the needle and today marker.