12 feature flows mapped from the comprehensive product research. Each diagram shows the complete end-to-end user journey with branching logic and decision points.
The ~70-screen onboarding arc following a deliberate psychological sequence: trust → goal → data → signup → paywall. Signup is deferred until after the user invests in 70 screens of personalisation.
flowchart TD
A([App Launch]) --> B[Trust Screens\n'Your data is protected'\n'100+ medical experts']
B --> C[Goal Selection]
C --> D[Track my Period]
C --> E[Try to Conceive]
C --> F[Track Pregnancy]
C --> G[Perimenopause]
D & E & F & G --> H[Personal Data Collection\nDate of birth · Last period date\nCycle length · Period length\nHeight & weight]
H --> I[Lifestyle & Health Questions\nDiet · Exercise · Sleep\nPrior pregnancies · Contraception]
I --> J[Social Proof Interspersed\n'90% say Flo predicts accurately'\n'3.5M+ 5-star ratings']
J --> K[Account Sign-up\nEmail · Apple · Google\nPositioned after value shown]
K --> L{Premium Paywall\n14-day free trial}
L -->|Accept trial| M([Dashboard — Premium User])
L -->|Decline| N[Gift Box Offer\n77% off Annual Plan]
N -->|Accept| O([Dashboard — Premium via Discount])
N -->|Decline| P[Second Offer\n7-day Trial · Reduced Price]
P -->|Accept| Q([Dashboard — Premium via Trial])
P -->|Decline| R([Dashboard — Free Tier User])
The core daily habit loop — logging periods and viewing cycle status. Predictions recalculate dynamically with every data point logged.
flowchart TD
A([Open App]) --> B[Home Dashboard]
B --> C[Circular Hero\nCycle Day Counter\nCurrent Phase Label]
B --> D[7-Day Calendar Strip\nColor-coded markers]
D --> D1[Red/Pink — Period days]
D --> D2[Teal fill — Fertile window]
D --> D3[Teal dot — Ovulation day]
D --> D4[Dark — Low fertility]
C --> E{Today's status}
E -->|Period expected| F[Tap 'Log Period']
F --> G[Select: Start Period]
G --> H[Choose Flow Intensity\nLight · Medium · Heavy]
H --> I[Confirm & Save]
I --> J[Prediction Engine Recalculates]
E -->|Period ended| K[Tap 'Log Period End']
K --> L[Mark End Date\nEditable retroactively]
L --> J
J --> M[Updated Predictions Shown\nNext period · Fertile window · Ovulation]
M --> N{Need to correct past data?}
N -->|Yes| O[Open Full Calendar View\nTap any past day to edit]
O --> J
N -->|No| P([Done — feeds ML model])
80+ symptoms across 16 categories, logged via floating "+" button in ≤3 taps. Icon-based selection — no text entry required.
flowchart TD
A([Any Screen]) --> B[Tap Floating '+' Button]
B --> C[Symptom Logging Sheet Opens]
C --> D[Select Category Tab]
D --> E[Physical\nCramps · Headache · Bloating\nFatigue · Nausea · Acne]
D --> F[Mood & Emotional\nCalm · Sad · Anxious\nIrritable · Depressed]
D --> G[Vaginal Discharge\nSticky · Creamy · Watery\nEgg white · Spotting]
D --> H[Lifestyle\nSleep · Water · Exercise\nWeight · Stress]
D --> I[Medical\nContraception · BBT · OPK\nPregnancy test results]
D --> J[Sex & Libido\nSex drive · Protected/unprotected]
E & F & G & H & I & J --> K[Tap Icon to Select\nIcon-based — not text-heavy]
K --> L{Select multiple?}
L -->|Yes| D
L -->|No| M[Save Day's Log]
M --> N[Data Stored\nFeeds prediction engine\nFeeds content personalisation]
N --> O{Already logged today?}
O -->|Yes| P[Edit option available]
O -->|No| Q([Log Complete])
P --> Q
Journey for users trying to conceive — BBT logging, OPK results, and fertile window tools. A positive OPK shifts the predicted ovulation date +1 day.
flowchart TD
A([Goal: Try to Conceive]) --> B[TTC Dashboard\nFertile window highlighted\nOvulation day marked]
B --> C[Fertile Window View\nTeal calendar strip\nConception tips from experts]
B --> D[Log BBT Reading]
D --> E[Manual Entry — Temperature]
E --> F[BBT feeds Prediction Algorithm\nShifts ovulation estimate]
B --> G[Log OPK Result]
G --> H{Result?}
H -->|Positive| I[Ovulation Predicted for Next Day\nAlgorithm shifts forward 1 day]
H -->|Negative| J[No Change — Continue Testing]
I & J --> K[Updated Fertile Window on Calendar]
K --> L[Daily Conception Tips\nBy cycle phase]
B --> M[Log Unprotected Sex]
M --> N[Conception Timing Tracked]
N --> O{Period late?}
O -->|Yes| P[Log Pregnancy Test Result]
P --> Q{Result?}
Q -->|Positive| R([Switch to Pregnancy Mode])
Q -->|Negative| S([Cycle Continues])
O -->|No| T([Continue TTC Cycle])
Full lifecycle from mode switch through postpartum. The entire UI shifts to yellow/warm tones when Pregnancy Mode activates.
flowchart TD
A([Positive Test or Manual Switch]) --> B[Enter Due Date or Last Period Date]
B --> C[Pregnancy Mode Activated\nUI shifts to yellow/warm palette\nHero: Gestational Week Counter]
C --> D[Week-by-Week Dashboard]
D --> E[3D Fetus Visualisation\nSize comparison · Milestones]
D --> F[Body Change Tracker\nNausea · Pregnancy symptoms]
D --> G[Weekly Checklist\nPrenatal appointments\nChildbirth classes · Tasks]
D --> H[Educational Content\nSafe foods · Exercise\nSleep positions · Birth prep]
D --> I[Calculators]
I --> I1[Due Date Calculator]
I --> I2[hCG Calculator]
I --> I3[IVF/FET Due Date]
I --> I4[Ultrasound Dating]
D --> J{Week milestone reached?}
J -->|Yes| K[Milestone Notification\nBaby development update]
D --> P[Partner receives weekly updates\nvia Partner Mode]
D --> Q([Postpartum — Return to Cycle Tracking])
Conversational health queries triggered by cycle events or user-initiated. Pre-2025 = rule-based trees; 2025+ = fine-tuned LLM via Databricks Mosaic AI.
flowchart TD
A([Trigger]) --> B{How was it triggered?}
B -->|Cycle phase change| C[Auto-push notification]
B -->|Symptom logged| D[Contextual prompt\n'Want to know more?']
B -->|User taps Ask Flo| E[User-initiated chat]
B -->|Cycle start event| F[New cycle insight card]
C & D & E & F --> G[Chat Interface Opens]
G --> H{User tier?}
H -->|Free| I[Limited interactions\nHit limit → Paywall]
H -->|Premium| J[Unlimited interactions]
I & J --> K[User sends message]
K --> L{AI Engine}
L -->|Pre-2025| M[Scripted conversation trees\nMedical/legal reviewed]
L -->|2025+| N[Fine-tuned LLM\nDatabricks Mosaic AI]
M & N --> O[Response with citations\nto Flo articles or experts]
O --> R{Continue?}
R -->|Follow-up| K
R -->|Done| S([Exit — History saved])
Anonymous forum with 7M monthly users and full human pre-moderation. Under-18 and 18+ feeds are completely separated with no cross-interaction.
flowchart TD
A([Tap Secret Chats]) --> B{First time?}
B -->|Yes| C[Random Avatar Assigned\nFull anonymity]
B -->|No| D[Feed Opens]
C --> D
D --> E[Personalised Feed]
E --> F{User age}
F -->|Under 18| G[Under-18 Content Only\nNo cross-interaction with adults]
F -->|18+| H[Adult Content Feed\nNo cross-interaction with minors]
G & H --> I[Browse Categories\nPCOS · Pregnancy · Sex\nPerimenopause · Parenting]
I --> J[Open Thread]
J --> K{Action?}
K -->|Read replies| L[View thread]
K -->|Write post| M[Draft Post]
K -->|Ask Expert| N[Expert Archive\nDoctor-verified Q&A]
M --> O[Submit for Moderation\nHuman review team]
O --> P{Approved?}
P -->|Yes| Q[Post appears in feed]
P -->|No| R[Post removed · User notified]
Q --> S([Reply notifications sent])
Read-only sharing between primary user and partner. Partners cannot see raw symptoms, historical data, personal notes, or edit anything. Access revocable instantly.
flowchart TD
A([Primary User — Settings]) --> B[Navigate to Partner Sharing]
B --> C[Generate Sharing Code]
C --> D[Share Code with Partner]
D --> E([Partner — Downloads Flo App])
E --> F[Enter Sharing Code]
F --> G[Partner Account — Read Only]
G --> H[Partner Dashboard]
H --> I[Cycle Calendar — Current data only]
H --> J[Daily Insights by cycle phase]
H --> K[Symptom Explanations\nAccessible language]
H --> S[What Partner CANNOT See]
S --> S1[Raw logged symptoms]
S --> S2[Historical cycle data]
S --> S3[Edit any data]
S --> S4[Personal notes]
G --> M{Mode of primary user?}
M -->|Period tracking| N[Cycle phase + fertility insights]
M -->|Pregnancy| O[Weekly baby development updates]
G --> P{Primary user revokes access?}
P -->|Yes| Q([Partner access removed instantly])
P -->|No| R([Ongoing partner access])
Privacy-first flow using Cloudflare OHTTP to decouple health data from all personal identifiers. Post-quantum cryptography added in 2023. TIME Best Inventions 2023 winner.
flowchart TD
A([User — Privacy Settings]) --> B[Discover Anonymous Mode]
B --> C[Explanation Screen\nOHTTP · Post-quantum crypto\nISO 27001 + ISO 27701]
C --> D{Currently signed in?}
D -->|Yes| E[Warning: Will disconnect\nName · Email · Apple/Google ID\nPayment info · IP · Device Ad ID]
E --> F{User confirms?}
F -->|No| G([Stay on Personal Account])
F -->|Yes| H[Anonymous Account Created]
D -->|New user| H
H --> I[Cloudflare OHTTP Relay\nNo single party has both\nidentity AND health data]
I --> J[Anonymous Tracking Begins\nAll features available]
J --> K{Payment for Premium?}
K -->|Yes| L[Payment decoupled\nfrom health activity]
K -->|No| M[Free tier with full anonymity]
L & M --> N([Anonymous Mode Active])
Premium-only features. Symptom Checker not available in UK/EU. Built on clinical guidelines from Monash, ESHRE, and AAFP.
flowchart TD
A([User — Insights]) --> B[Navigate to Health Reports]
B --> C{Premium subscriber?}
C -->|No| D[Paywall Prompt]
D --> E([Upgrade Flow])
C -->|Yes| F[Report Options]
F --> G[Doctor's Report]
G --> H[6-Month Data Summary\nCycle lengths · Symptom frequency\nPattern charts]
H --> I[Preview Report]
I --> J[Export as PDF]
J --> K([Share with physician])
F --> L[Symptom Checker\nNot available in UK/EU]
L --> M[Select Condition]
M --> M1[PCOS Checker]
M --> M2[Endometriosis Checker]
M --> M3[Uterine Fibroids]
M --> M4[Perimenopause Checker]
M1 & M2 & M3 & M4 --> N[Chatbot-style Self-Assessment\nMonash · ESHRE · AAFP guidelines]
N --> O[Answer symptom questions]
O --> P{More questions?}
P -->|Yes| O
P -->|No| Q[Results — Match percentage]
Q --> R([Disclaimer + share with provider])
Multiple in-app touchpoints funnel free users to Premium. Three-stage trial cascade before accepting free tier. FSA/HSA eligible in US.
flowchart TD
A([Free Tier User]) --> B{Touchpoint encountered}
B -->|Taps locked insight| C[Soft Paywall]
B -->|Ask Flo at limit| D[Usage Limit Paywall]
B -->|Tries health report| E[Feature Paywall]
B -->|Symptom Checker| F[Feature Paywall\nWith condition pitch]
C & D & E & F --> H[Premium Offer Screen\nAnnual $4.17/mo · 3-Month · Monthly\nHigh monthly anchors annual value]
H --> I[Social Proof\n'6.6M members already Premium']
I --> K{14-day Free Trial}
K -->|Start Trial| L([Premium Activated])
K -->|Decline| M[Gift Box Offer\n77% off Annual Plan]
M -->|Accept| N([Premium — Discounted])
M -->|Decline| O[7-day Trial · Reduced Price]
O -->|Accept| P([Premium — Trial])
O -->|Decline| Q([Return to Free Tier])
L & N & P --> R[Confirmation\nFSA/HSA accepted in US]
How users transition between the app's four lifecycle modes. Partner is auto-notified of mode switches. Each mode triggers a distinct UI palette and feature set.
flowchart TD
A([User Profile / Settings]) --> B[Goal / Mode Settings]
B --> C{Current Mode}
C -->|Period Tracking| D[Switch to TTC Mode]
C -->|TTC Mode| E{Pregnancy test positive?}
E -->|Yes| F[Auto-prompt: Switch to Pregnancy]
E -->|No| G[Continue TTC Tracking]
C -->|Pregnancy| H[Postpartum — Mode ends\naround 40-week mark]
C -->|Any| I[Switch to Perimenopause]
D --> J[TTC Dashboard\nBBT · OPK · Fertile window]
F --> K[Pregnancy Mode\nYellow UI · Fetal development]
H --> L{Post-birth goal?}
L -->|Resume cycle tracking| M[Period Tracking Mode]
L -->|Another pregnancy| J
L -->|No more tracking| N([Reduced engagement mode])
I --> O[Perimenopause Mode\nIrregular cycle tools\nPerimenopause Score]
K --> Q[Partner auto-notified\nof mode switch]
J --> Q
M & O --> R([Ongoing Lifecycle Tracking])