Plenty · Feature concepts

Each concept: the job, the flow, a mockup, and the open questions. Companion to the Level explorations page.

Meds tracking

Inventory only works if keeping it accurate is nearly effortless. These five ideas cut that effort down.

Packing list as input

The job: a box just arrived with eight things in it. Get them into inventory without typing.

Delivery arrivesPhotograph the packing listConfirm parsed countsInventory updated
Found on the packing list
Menopur 75 IU
6 vials
+6
Q·Cap mixing devices
6 count
+6
Alcohol wipes
Not tracked
skip
Thinking. Barcode scanning was considered and dropped: specialty-pharmacy boxes rarely carry per-item consumer barcodes, and half the shipment is supplies like needles, wipes, and mixing caps. The packing list is the one artifact every shipment reliably includes, and it already states quantities. The same flow accepts a photo of the order confirmation email, which covers the partner note about order sheets as input. The skip row matters: parsing everything and tracking only what the schedule uses keeps inventory meaningful.
Open questions
  • Packing lists vary wildly by pharmacy. Start with CVS Specialty's format only?
  • Same human-confirm rule as protocol scanning: nothing enters inventory unreviewed.

Partial vials and pens

The job: my dose is 225 IU but the pen holds 900. Vial counting lies; track the units instead.

Dose loggedIU deducted from the open penDays-left uses IU, not containers
Gonal-F · open pen
450 of 900 IU left
2 doses left in this pen · marks every 225 IU
On hand: open pen (450) + 1 full pen (900) = 1,350 IU = 6 doses = 6 days
Tonight · Gonal-F 225 IU
2 injections
Finish the open pen first: about 150 IU left
Then 75 IU from the new pen
You'll need two injections tonight: one to finish the open pen, and one for the rest. Tomorrow you'll just draw from the new pen.
Thinking. The unit mismatch is the root cause of bad inventory: people count containers, the schedule consumes units, and the two drift apart mid-pen. A “fraction of vial left” slider was rejected because nobody thinks in fractions at 8:30 PM. Instead, the dose log the user already keeps does the work: each logged dose subtracts its IU automatically, so the counts stay right on their own, just from logging doses like always. The pen graphic exists to make the math checkable at a glance, not to be another input. It earns a second job when a dose is due: if the open pen can't cover tonight, we show the split ahead of time (finish the open pen, then the rest from a new one), so two injections is never a surprise at 8:30 PM.
Open questions
  • Menopur mixes 2 × 75 IU vials per dose: units and containers both matter. Model both, show whichever the med uses.
  • Waste happens (a dropped vial, a mis-primed pen). One tap to say “lost some” and correct the count. This is the same correction path as the inventory audit below: waste taps, recounts, and periodic checks are one system, not three.

Next refill availability

The job: insurance controls when I may refill. Put that date next to the run-out date; the gap between them is what I actually need to know.

Fill loggedPlan rule applied“Refill allowed from” date shownReorder prompt timed to it
Menopur
Out Fri Jul 10
Refill allowed from
Aetna quantity limit · last fill Jul 5
Thu Jul 9
The refill opens Thu and you run out Fri. We'll remind you Thursday morning.
Thinking. The run-out date alone is half the picture: what actually determines your options is the gap between “allowed to refill” and “out.” When that window is one day wide, as in the mock, everything hangs on a single Thursday, and the app's job is to show that days early, not let it be discovered at the pharmacy counter. Showing the date instead of the rule was deliberate: users should never have to compute “last fill plus N days” themselves. The rule stays visible one tap down for verification.
Open questions
  • Plan rules come from the user at first (“my plan allows a fill every N days”). Verified rules per insurer come later.

Storage and what each med does

The job: a box of drugs arrives. Which go in the fridge, and what is each one for?

Delivery logged“Put these away” cardMed detail explains role in the cycle
Put these away
Menopur, Ovidrel
Refrigerate. Do not freeze.
❄ Fridge
Gonal-F pen, in use
Fridge or room temp up to 28 days
Either
Cetrotide
Antagonist · Days 5 to trigger
Stops your body from ovulating early, so the eggs stay put until retrieval. Time-sensitive: take it at the same time each day.
Reviewed by a fertility nurse. If your clinic told you something different, go with what they said.
Thinking. Storage advice is most useful exactly once: the minute a cold-packed box lands on the doorstep. So it arrives as a “put these away” card attached to the delivery event, instead of pages someone must know to look for. The what-it-does text rides on the med card because the question “why am I injecting this?” occurs while holding the vial. Both stick to the same rule: describe, never advise, and the clinic's instructions come first.
Open questions
  • Storage rules vary by brand and country. Source from the package insert, reviewed by a pharmacist.

Supplement tracking that doesn't nag

The job: I also take a prenatal and CoQ10. Track them without treating a skipped gummy like a missed injection.

Added onceRides along on the morning listSkips are fine, no red, no nagging
Morning · 7:15 AM
Gonal-F 300 IU
Injection
Taken
Prenatal
Supplement · optional reminder
optional
CoQ10 200 mg
Supplement
optional
Thinking. The danger is alarm fatigue: if a skipped gummy looks like a skipped injection, both alarms stop meaning anything, and the strict layer is the one that kills cycles. So supplements are visually second-class on purpose: dimmed, no status color, no repeat reminders, no streaks. They ride the existing morning list because a second list would not get opened. Streaks and adherence scores were rejected outright; this audience does not need another thing to feel behind on.
Open questions
  • Two visual tiers (meds vs. supplements) must be instantly readable. Is opacity + no status color enough?

Trust & reliability

The app asks people to trust one computed deadline. These ideas protect that trust when counts go stale or a storm gets in the way.

Connection-break alerts

The job: the clinic or pharmacy connection broke. Tell me loudly, everywhere, until it is fixed, because a stale schedule is worse than no schedule.

Sync failsPush immediatelyRed bar on every screenReconnect or switch to manual
Plentynow
Lost the connection to eIVF. Your schedule is frozen as of Sat Jul 4, 9:12 AM. Dose changes since then will not appear. Tap to reconnect.
Clinic sync down since Sat 9:12 AM. Schedule may be out of date. Fix ›
Clinic sync down since Sat 9:12 AMFix ›
Tonight · 8:30 PM
from Sat 9:12 AM
Menopur 150 IU + Gonal-F 225 IU
Order deadline: Thu Jul 9, 2 PM
Could be out of date
This comes from the last synced schedule. If your clinic changed a dose since Saturday, it would move.
Thinking. The worst failure mode this product has is silent staleness: a schedule that looks authoritative but stopped updating on Saturday. Compared to that, a loud false alarm is cheap. The “frozen as of Sat Jul 4, 9:12 AM” timestamp is the core of the design because it turns “can I trust any of this?” into “everything through Saturday morning is good, check anything after”. The bar stays until reconnection or an explicit switch to manual entry, and it never blocks the app: a stale schedule you can see beats a modal you must dismiss. The main screen keeps working from the last synced copy, and anything we computed from it, like deadlines and run-out dates, is marked “could be out of date” until the connection is back.
Open questions
  • The bar must be unmissable but not panic-inducing. “Frozen as of” + timestamp states exactly what is and is not trustworthy.
  • Degrade gracefully: offer manual entry the moment sync breaks, not after.

Schedule and inventory audits

The job: my counts drift from reality (a dropped vial, an unlogged dose). Catch the drift before the deadline math lies to me.

Staleness detected30-second recountDeadlines recomputed“Verified” stamp shown
Quick check
Counts 4 days old
Your Menopur deadline rests on these numbers. Open the fridge and confirm:
Menopur 75 IU vials
3
Every screen that shows a deadline also shows when its inputs were last verified.
Thinking. Nagging is how tracking apps die, so the audit is risk-based, not scheduled: it only appears when a deadline depends on numbers that have not been touched in days. The framing does the persuading: “your Menopur deadline rests on these numbers” gives a reason, not a chore. Waste reports from the meds list (“lost a vial”) land in this same flow, so counts get corrected one way, everywhere. And the verification stamp closes the loop: every deadline in the app can show when its inputs were last confirmed, which is the same show-your-work idea that protects the reorder math everywhere else.
Open questions
  • Audit cadence: risk-based (only when a deadline is near and counts are old), never a daily chore.
  • The stepper only covers “same meds, different number.” Pharmacy substitutions happen too: a different vial size, a new brand. “My meds look different” opens the full inventory editor for those.

Weather watch

The job: a storm is about to sit on my delivery route. Warn me while ordering early is still possible.

Advisory on route or destinationWould it delay you past your days left?Push: order earlyDeadline moves up
Plenty7:02 AM
Winter storm watch for Thu and Fri on your delivery route. You have 2 days of Menopur. Ordering today instead of Thursday keeps a full day of slack. Tap to start.
How it decides
NWS advisories for your area and the pharmacy's ship-from region, checked against your days-left. We prompt you only when the overlap threatens your deadline. No storm chatter otherwise.
Thinking. This is really a delivery-risk alert, and weather is just its most dramatic trigger; carrier outages and holidays set it off more often. Two designs were rejected: silently moving the deadline up (the user must see why a date changed, or trust dies) and a weather feed in the app (ambient anxiety with no action attached). The rule we kept: only speak up when the delay threatens your supply, say it once, and put the fix in the same message. The push in the mock names the storm, the med, the slack gained, and the action, in two sentences.
Open questions
  • False alarms burn trust fast. When unsure, stay quiet: only speak up if the delay would actually make someone run out.
  • Same mechanism covers carrier outages and holidays, which are more common than storms.

Privacy

The lock screen is where the app helps most and leaks most. Coworkers, family, and strangers on the train can all see it. And the calendar leaks further: to work laptops, shared family calendars, assistants.

Four privacy levels

The job: let me read my lock screen at a glance without announcing my fertility treatment to whoever sees my phone.

Choose a level per surfaceWidgets and notifications respect itFull detail stays one Face ID away
Full
Menopur + Gonal-F
8:30 PM · in 21m
● Menopur low · order by Thu
Shows everything. For a phone only you see. Names, doses, and supply status at a glance. But it announces your treatment to anyone close enough to read it.
Abbreviated
M + G
8:30 PM · in 21m
● supplies: order by Thu
You can read it, a passerby can't. Initials and general words: “supplies,” “procedure,” “appointment.” You have the context, so you parse it instantly. A glance from a coworker yields nothing. Probably the right default for most people.
Discreet
2 tasks tonight
8:30 PM · in 21m
● 1 thing needs attention
Shows that something is due, never what it is. Something is due at 8:30 and one thing needs attention. The category of your life it belongs to stays hidden. Keeps the countdown and the red dot, gives up all content.
Coded
Reminder
8:30 PM
Could be any app. No name, no initials: it reads as a generic reminder. For shared or often-borrowed phones. Nearly all meaning moves behind Face ID, so this is the floor for high-risk situations, not a default.
Thinking. Each level gives up a little detail for a little more privacy, and each has a person it is for. Full is the solo household. Abbreviated is most people: the insight is that the reader supplies the context, so lossy text costs them almost nothing while costing an onlooker everything. Discreet is the open-plan office. Coded is the phone a kid or in-law picks up. One binary toggle (names on, names off) was rejected because it forces the office case and the borrowed-phone case into the same setting.
Open questions
  • Does the red supply dot itself leak? At Coded, maybe even the dot becomes neutral gray.
  • Abbreviations may need to be user-editable. “M + G” is legible to anyone in an IVF forum.
  • Android always shows the app's real name on notifications, so hiding the name is iOS-only. On Android these levels change the content, and the name stays Plenty.

A privacy level for each surface

The job: my lock screen, my notifications, and my work calendar leak to different audiences. Let me set each one separately, in one place.

One settings screenA level per surfacePreviews show exactly what each audience sees
Privacy
What each surface shows when you are not looking at the app.
Lock screen & widgets
Visible to anyone near your phone
Abbreviated ›
Notifications
Banners appear over other apps, and on mirrored screens
Discreet ›
Calendar events
Sync to work laptops and shared calendars
Coded · “Busy” ›
Partner access
Daniel sees the full schedule
Full ›
Tap a surface to preview what it shows at each level.
Thinking. One global privacy toggle was rejected: it forces the lock screen down to the setting the calendar needs. The surfaces leak to different audiences at different distances: the lock screen to whoever is nearby, notifications to whatever your screen is mirrored on, the calendar to your employer's Exchange server. So each surface carries its own level, and the defaults get quieter the more people can see a surface: Abbreviated on the lock screen, Discreet on notifications, Coded on calendar export. Partner access sits on the same screen but it's a different thing: a person you chose, not an audience you can't control.
Open questions
  • Do previews need real data or sample data? Real is clearer, sample is safer for screenshots.
  • Is there a panic control: one tap that drops every surface to Coded?

Knowledge

Short explanations tied to exactly where you are, not a content library. With hard rules against playing doctor.

Where you are, and lifestyle nudges

The job: tell me what this phase is, what my meds are doing, and what I should or should not do today.

Cycle position knownOne card of context on TodayNudges tied to the phase
Stim · Day 6
Your follicles are in their main growth week. Monitoring now steers your dose day by day, which is why amounts keep changing.
Today: drink plenty of water. Skip high-intensity workouts from here to retrieval.
Reviewed by an REI nurse · sources linked
Thinking. Nobody opens a fertility encyclopedia at 7 AM, but everyone wonders “why did my dose change again?” the moment it happens. So knowledge attaches to events (a phase begins, a med starts, a result lands) instead of living in a Learn tab. The library is deliberately tiny: one card per phase, one per med, a handful of nudges, every one clinically reviewed and sourced. The nudges stay physical and non-moralizing: water and activity, never diet culture or “relax, it helps.”
Open questions
  • Every claim needs clinical review and a source. Small library, done well, beats a content farm.

An AI assistant with clear limits

The job: at 9 PM I have a question that is not worth paging the nurse line. Answer the logistics ones, refuse the medical ones, cite my own plan.

Question askedLogistics? Answer from your dataMedical? Decline and route to clinic
Can I take tonight's Menopur an hour late? We're stuck at dinner.
Your schedule has it at 8:30 PM. I can't tell you if an hour late is OK, that's your clinic's call and a quick nurse-line question. Want me to text your partner the supplies list for when you get home, and note the late dose for Thursday's visit?
Should my dose be higher? My E2 seems low.
I can't help with dosing questions, that one's for your care team. Want the nurse line number, or should I add it to Thursday's visit note?
Thinking. The alternative considered was no AI at all: a canned FAQ. It fails at 9 PM, when the question is specific to your protocol and your day (“can I take it an hour late tonight?”). What makes the assistant safe to ship is its limits, and the mock shows a refusal on purpose, because refusing is the point: dosing questions get routed to the clinic with the fastest path to a human. Answers draw only on the user's own schedule, inventory, and clinic messages, so “right” means “consistent with your plan,” never “medically judged.”
Open questions
  • The limits are the point: answers cite your protocol and your clinic's messages, and never invent clinical guidance.
  • Liability review before this ships anything beyond canned logistics answers.

Calendar & results

Both explored in depth on the Level explorations page, at Levels 4 and 3.

Full calendar view · lives at Level 4

Month grid layering doses, appointments, deliveries, deadlines, and the trigger, with day detail and treatment to-dos. See Level 4 on the Level explorations page.

S
M
T
W
T
F
S
5
6
7
8
9
10
11

Results & cycle tracking · lives at Level 3

E2 trend, follicle counts, the retrieved-to-banked funnel, and cycle-over-cycle comparison. See Level 3 on the Level explorations page.

UX exploration only. Not medical advice, not a real product. Meds, dates, plans, and messages are illustrative. Companion pages: the clickable prototype and the Level explorations.