Fullscript Labs
Lab results lived outside Fullscript. I designed the patient experience that brought them in, from discovery through GA.
- Role
- Senior Product Designer — Patient Experience
- Timeline
- [Month] 2023 – [Month] 2025
- Team
- 1 Design lead · 1 Designer (me) · 2 PMs · 1 Content designer · 1 Data scientist · 2 Clinical advisors
- Scope
- Patient experience · Result delivery · Biomarker visualization · Status communication · Discovery / waitlist funnel · Web + mobile
My role
- Designed the patient lab details page — the primary surface where patients receive, read, and act on their results.
- Built and maintained the status map: 9 order states across multiple phlebotomy types (mobile phlebotomy, lab visit, in-office draw), covering every edge case a patient could encounter.
- Created the biomarker color system — a tiered visual language for communicating normal, borderline, and flagged values without alarming patients unnecessarily.
- Designed the interpretations timeline and trend graph, giving patients longitudinal context for their results over time.
- Designed biomarker empty states for the in-between period when results are ordered but not yet returned.
- Designed the Labs waitlist experience and practitioner browsing UX — the funnel that drove early supply and demand.
- Consulted directly with Dr. Jeff Gladd and dietitian Lara Zakaria on how biomarker ranges should be communicated to non-clinical patients.
- Ran design crits and contributed to cross-functional planning throughout pilot and GA.
TL;DR
In short
Problem
Practitioners treating the whole patient were sending patients to external portals for lab results — fracturing trust and handing off the most clinically significant moment to a system Fullscript didn't control.
Approach
Mapped every patient state before designing any screen, grounded every clinical decision with advisors, and shipped iteratively from pilot to GA.
Outcome
$10.1M in Labs revenue by early 2026 — up 299% year over year — on a product that launched with 50 practitioners eighteen months earlier.
Context and problem
The situation we walked into
Business context
Fullscript's core business is supplement prescribing — practitioners recommend supplements, patients buy through the platform. But integrative medicine practitioners treat the whole patient: supplements and diagnostics go hand in hand, and without lab ordering Fullscript was useful but incomplete for this segment. Labs was a bet on expanding the platform's clinical surface area and deepening practitioner lock-in. There was no existing playbook, no integrations to build on, and no design system for biomarker data — we were starting from zero.
User context
Patients receiving lab results face a specific communication problem: numbers without context are either meaningless or anxiety-inducing. A TSH of 2.4 mIU/L means nothing to most people — but pair it with a range, a trend, and a plain-language interpretation and it becomes actionable. These tests are ordered by integrative medicine specialists who treat the whole patient, and patients trust them implicitly; our job was to reflect that trust in the result experience. We also had to account for the full arc — discovering Labs existed, getting ordered, waiting for a draw, going to the lab, waiting for results, and finally reading them — each state demanding a distinct design response.
Constraints and complexity
Nine order states across multiple phlebotomy modalities made for a combinatorially complex status map that had to be exact. Biomarker reference ranges aren't standardized — they vary by lab, age, sex, and clinical context — so the design had to accommodate that ambiguity without introducing false confidence. We had no dedicated patient-side analytics at first, relying on qualitative signals and Slack-based Flurry queries to validate assumptions. And the patient app was relatively new, so Labs meant extending the design system into an entirely new clinical domain.
Goals and success metrics
What success looked like
A patient who receives their lab results through Fullscript understands what they mean, trusts the platform, and returns when their next test is ordered — while practitioners adopt Labs, patients complete the flow, and the product scales beyond the pilot cohort.
Success criteria
- Pilot launch to ~50 practitioners by April 30, 2024.
- Expand to general availability by mid-2024.
- Reach meaningful signup volume (target: 3,000+).
- Patient result-completion rate (results viewed within 48 hours of delivery) at or above [X]%.
- ≥[X]% of pilot practitioners place at least one order after the pilot expands to GA.
Approach
How we got there
- 01
Mapped the patient journey end-to-end
Started with low-fidelity flows rather than screens, mapping the patient journey from order placement through result delivery. The exercise surfaced 9 distinct in-between states before a patient ever sees a result — draw scheduled, processing, results pending — states we had no shared terminology for yet. That map became the contract between design, product, and engineering for the rest of the project.
- 02
Built the status map before any UI
Built all 9 states — covering mobile phlebotomy, lab visits, and in-office draws — before designing any result screens. Engineering needed the state transitions wired before UI could follow, so the map had to be exhaustive, not illustrative. Getting it wrong would cascade into every downstream surface; we caught two phlebotomy edge cases in this phase that would otherwise have shipped as patient-facing bugs.
- 03
Grounded every decision with clinical advisors
Brought Dr. Jeff Gladd and dietitian Lara Zakaria into design reviews throughout — not only at discovery. Their input forced the key design pivot: we had been exploring a continuous gradient for biomarker results, but they warned that visual ambiguity would increase patient anxiety without adding clinical value. We landed on a 3-tier system (normal / borderline / flagged) and built the plain-language interpretation template directly from their communication patterns.
- 04
Built the trend graph and empty state together
Designed the trend graph and interpretations timeline to move patients from a single number to a story over time — the differentiator from a raw PDF. The constraint: show a trend only when ≥2 data points exist; a single value can't trend, and implying it does misleads patients. That boundary forced the empty-state design, which became one of the more carefully written surfaces in the product.
- 05
Seeded demand with waitlist, iterated to GA
Ran waitlist and practitioner-browsing design in parallel with the result experience — supply and demand had to be seeded before Labs could open. The waitlist surfaced a key constraint: many interested patients had practitioners who weren't yet enrolled, so we redesigned it to capture interest rather than block access. That framing produced a clean demand signal that informed which markets to open first in the GA expansion.
Key decisions
Forks in the road
3-tier color vs. gradient for biomarker results
Two approaches were viable: a continuous gradient (more precise, reflects clinical reality where values blend across ranges) or a tiered system — normal / borderline / flagged — with lower cognitive load and less visual alarm. Clinical advisors initially supported the gradient on accuracy grounds; patient-facing testing supported the tiers because a blended yellow-to-orange gradient caused more anxiety than a clearly named borderline state.
- Decision
- Chose a tiered system — normal / borderline / flagged — over a continuous gradient, and validated the framing with our clinical advisors.
- Tradeoff
- A gradient would be more precise but more anxiety-inducing; we accepted some lost nuance in exchange for legibility.
9 distinct states vs. a simplified 3-state model
Two models were viable: a simplified 3-state model (ordered / in-progress / complete) that ships faster and costs less to maintain, or a complete 9-state map with specific copy and visual treatment for each state across mobile phlebotomy, lab visits, and in-office draws. The 3-state model risked patient calls and support escalations every time an order sat in an ambiguous mid-state with no explanation.
- Decision
- Built all 9 states with specific copy and visual treatment for each, rather than a simplified ordered / in-progress / complete model.
- Tradeoff
- More design and engineering complexity upfront, in exchange for far better patient communication and fewer support escalations downstream.
Single-point display vs. gating the trend graph
Two options: show the graph from the first result (implying a trend where none exists yet) or gate it until a second result arrives. A single-point trend is technically misleading — you can't draw a trend from one number. But hiding the graph entirely risked patients assuming something was broken. The empty state had to fill that gap honestly without alarming them.
- Decision
- Designed the trend graph to appear only once a patient has at least two data points; a single result shows a carefully written empty state instead.
- Tradeoff
- Patients with one test see no graph, which required careful copy — but showing a single-point 'trend' would be misleading, a line we held firm on.
Waitlist as demand signal, not a gate
Two approaches: a hard gate (waitlist blocks access until a patient's practitioner is enrolled) or a soft demand signal (collect interest without blocking anyone). The gate was cleaner from a product logic standpoint — you can't order a lab without an enrolled practitioner — but it would have siloed demand data by practitioner and made it harder to know which markets to open next.
- Decision
- Designed the waitlist to collect interest rather than block access.
- Tradeoff
- Created some expectation-setting complexity, but produced a clean demand signal that informed the pilot expansion strategy.
Plain language over clinical precision
Clinical terminology had a real case: it matches what practitioners use, reflects source data accurately, and some patients prefer precision. Plain language had the stronger case for our audience — integrative medicine patients are motivated but not trained, and misread clinical terms cause anxiety. The tension surfaced most sharply in borderline-result copy, where 'slightly elevated' and 'sub-optimal' landed very differently with patients.
- Decision
- Working with content designer Rebecca, consistently chose plain language over clinical terminology on patient-facing surfaces.
- Tradeoff
- Some practitioners wanted more specificity; we held the line because clarity trumps precision on a patient surface.
Solution
What we shipped
Outcomes and impact
What it moved
Signups at GA
3,319
Total signups by general availability, mid-2024 (671 new at launch).
Q2 2025 vs. target
+54%
Revenue and ordering-patient counts both exceeded target in Q2 2025.
Labs revenue
$10.1M
+299% YoY
YTD in early 2026 vs. $2.5M the prior year.
ARPU, activated lab plan
2.6×
Practitioners with a lab treatment plan vs. those without ($69,245 vs. $26,395).
Supplement order value
2×
Patients in lab-ordering accounts vs. average ($178 vs. $90).
Ordering patients
35,027
Across 6,012 accounts and 45,064 orders, as of Dec 2025.
Business impact
$10.1M in Labs revenue by early 2026 — up 299% YoY — on a product that started as a 50-practitioner pilot eighteen months earlier. Ordering patients and accounts were up 170–280% year over year; account ARPU up 29–47%. Practitioners who activated a lab treatment plan spent materially more across the platform, and so did the patients in their accounts.
User impact
Patients could finally receive, read, and contextualize lab results inside a platform they already trusted — no separate portal, no raw PDF. The status map removed a major source of anxiety by showing exactly where an order stood, while plain-language interpretations and the trend graph gave patients better questions to bring to their practitioners. The biomarker color system became the standard visual language across subsequent Labs features.
In their words
What people said
“You bring strong product design intuition, you move quickly from ambiguity to direction, and you consistently raise the quality bar through thoughtful craft and decision-making.”
Ben Walters — VP & GM of Labs, Fullscript “Fullscript's labs offering has been a game-changer for my business as I can order nearly any lab that my clients need. I am now able to practice at a level that I am so proud to offer my clients, as they don't have to go anywhere else for their biomarker measurements.”
Jenna Braddock — RD “Before Labs, I had to send patients to a separate portal, then explain their results over email from a PDF I'd downloaded. Now they're already looking at what I'm looking at — with context. My follow-up appointments actually start from a shared understanding instead of me spending the first ten minutes catching people up.”
Dr. Karen Stenseth — ND “It's worth waiting for this. You all create such good experiences. I knew as soon as I saw the waitlist I had to get on it.”
Practitioner — evaluating Rupa vs. Fullscript “The status map was the most thorough piece of systems thinking I've seen from a designer on this team. Nine states, three phlebotomy types, every edge case documented before engineering wrote a line of code. The reason Labs has basically zero 'where's my order?' support tickets is that work.”
Luiz Lizardo — Staff Product Designer, Fullscript “I pushed back on the 3-tier model early — I was worried we were oversimplifying clinical nuance. What Emile showed me was that a more precise gradient actually increases patient anxiety without adding actionable information. Patients who come in after reading their results through Fullscript ask better questions than patients who come in after reading a PDF.”
Dr. Jeff Gladd — Clinical Advisor, Fullscript Labs “Lab results without context teach patients to fear their numbers. The interpretation format we worked through together — pairing a value with 'what this means for you' in plain language, not a medical definition — is what I've wanted in my practice for years and didn't have a way to build.”
Lara Zakaria — Dietitian, Clinical Advisor, Fullscript Labs
Learnings and reflections
What I’d take with me
Clinical grounding is a design input, not a phase
Looping in Dr. Jeff Gladd and Lara Zakaria wasn't a one-time research step — it was an ongoing design constraint. The best decisions we made (biomarker tiers, the trend-graph threshold, plain-language interpretations) came from keeping clinical advisors in the room through execution, not just discovery.
Breadth was the job — until it suddenly wasn't
Early on I was designing everything from waitlists to status maps to biomarker visualizations at once. That breadth was the job — getting signal from every corner of the product fast. Later the work shifted to depth: making each surface excellent, not just functional.
Status and empty states are the product
In a product with a multi-week lifecycle (order → draw → result), the in-between states are where patients spend most of their time. Getting the status map right — specific copy for each state, not a catch-all 'in progress' — was one of the highest-leverage decisions we made. Patient anxiety lives in uncertainty; we designed against that directly.
The result screen was the wrong thing to optimize first
The temptation was to optimize the exciting part — the result experience — and treat onboarding and status as secondary. We resisted. Every touchpoint a patient has with Labs shapes whether they trust the result when it arrives.