Checkout & Funnel Audit • 21 Apr–20 May 2026
Infrastructure & UX Audit

The traffic is high-intent.
But checkout is leaking it.

Insights gained from 175 PostHog checkout replays, plus full telemetry audits across 3 active product workspaces representing 1,025+ monthly users.

Executive Dashboard

Strong organic acquisition, but a systemic funnel drop-off.

175
Total Sessions

Baseline active user records compiled over 30 days

80.9%
MED-Step Drop-off

Leakage point from Med Selection to Delivery Details

1.9%
Self-Serve CR

3 completed orders captured directly on site

43
ChatGPT DAUs

Our 2nd largest UTM referral source

Funnel Leakage

An 80.9% drop-off at Medication Selection (MED).

Funnel Step
Sessions
Conversion
Drop-off
1. Homepage / Landing
159
100.0%
2. Step MED (Meds Selection)
136
85.5%
14.5%
3. Step DELIVERY (Details)
26
16.4%
80.9%
4. Step OFFERS (Summary)
16
10.1%
38.5%
5. Completed Order
3
1.9%
81.2%

MED Step Fatigue

Users spend an average of 340.9 seconds (5.7 mins) in the Med Selection step before abandoning. They are trying to configure their lists, but get stuck selecting their medication, or wondering if a medication is in stock.

User Journey & Pathway Analysis

Women's health drives self-serve, while care specialists capture the rest.

Pathway A: PCOS Self-Serve

Session 019e3cd2 (22.4 mins) • 14,600 NGN

F. M. (f.m***@gmail.com) landed on PCOS Curated Plan → completed order with Himalaya Ashwagandha, Metformin, and Magnesium Glycinate via Paystack. Women's wellness represents our most active and reliable organic self-serve funnel.

Pathway B & C: Menstrual Care

Session 019dffd1 (12.1 mins) • 43,800 NGN

Landed organically on Menstrual Plan → "Customise plan" → completed checkout to Ibukun Oluwa Street, Lagos (43,800 NGN). Session 019e1f3b (33.5 mins) verified parallel staging checkout success for menstrual care (56,800 NGN).

Assisted Sales Handoff

Sessions 019e416a, 019e22df • WhatsApp

Users clicked "Speak with a Care Specialist" on dashboard / heart-care plans and moved directly to WhatsApp. Many apparent checkout "drop-offs" are actually high-quality live-chat leads transfers. We must track these as conversions.

Behavioral UX & Checkout Leakage

The pre-payment SMS acts as an unintended "exit trigger."

The Invisible Checkout Leak

Trigger: Once a user enters their medication and delivery details, our backend triggers an automated SMS: "Your Famasi order has been created."

Behavioral Impact: This is an authoritative completion signal. Psychologically, the user registers the transaction as finished. Their motivation to complete the remaining checkout steps (Step 4: OFFERS and payment) drops to zero, leading to the massive drop-offs observed at the final step.

Actionable UX Fixes

  • Defer SMS to Post-Payment: Silence the pre-payment checkout creation trigger entirely. Only send the SMS once a successful payment confirmation is received from Paystack.
  • Pivot Copy to Retargeting: Avoid the completion-focused word "created" if we must keep a pre-payment SMS active. Pivot to a retrieval/recovery link:
    "We've saved your medication list! Complete your payment here to lock in your delivery: [Link]"
UX Friction

Interactive confusion leads to rage clicking.

23
Dead Click Sessions

Static elements clicked in expectation of action

Peak locations:
• Homepage: 44 dead clicks
• Dashboard: 25 dead clicks
7 clicks
Rage Click Spike

Session 019e4286: clicked decorative dashboard icons with text 'None' 7 times in 6 seconds before finding primary "Create an order" button.

18
NPS Survey Triggers

Dismissed 6 times, only 1 completion. Showing popups during MED and DELIVERY configuration steps creates cognitive overload during high-value conversion.

Technical & Infrastructure Audits

Protecting the checkout runtime, data privacy, and funnel telemetry.

1. DOM Translation Crash

Trigger: Chrome iOS Arabic auto-translations threw "NotFoundError" 6 times sequentially at Step MED for a Riyadh user, crashing checkout.

The Fix: Inject translate="no" on critical form components, prices, and labels, and wrap key steps in custom React Error Boundaries.

2. PII Sanitization

The Leak: PostHog was automatically collecting sensitive query tokens, order IDs, and email strings directly from URLs.

The Fix: Configured global PostHog filters and client-side sanitize_properties in the React initializer to swap sensitive tokens with [REDACTED].

3. Staging Isolation

The Issue: Staging traffic (staging.famasi.africa) was polluting production dashboards, corrupting checkout funnel analysis.

The Fix: Configured 4 separate dashboards on PostHog using global $host rules to permanently isolate production metrics from staging noise.

Prod WebProd App
Staging WebStaging App

Acquisition & Attribution

Our organic engine is powered by Twitter, LinkedIn, and conversational AI.

UTM Campaigns & Referrers

High-intent organic traffic sources compiled over 30 days:

Twitter/X: 46 DAUs
LinkedIn (B2B/Care): 38 DAUs
Instagram: 12 DAUs
TikTok: 6 DAUs

LinkedIn traffic directly correlates with caregiver and B2B interest on our Dispensary page (127 total sessions).

ChatGPT & Conversational Search

43 DAUs • 2nd Largest UTM Source

LLMs are actively recommending Famasi to users seeking localized healthcare, prescription delivery, or curated reproductive health plans in Nigeria. We must optimize our brand footprint across OpenAI, Perplexity, and Kimi to protect this high-conversion channel.

Reactive Blog SEO

150 Sessions • Postinor-2 side effects

Our top-performing blog page received 150 unique sessions: /blog/the-postinor-2-side-effects-nobody-warns-you-about. This is our largest informational traffic driver, sitting at the top of the funnel. We must place product links and a "Speak with a Care Specialist" widget directly on this page to guide this traffic toward conversion.

Product Audit: Providers Portal

A 56.5% prescribing failure rate blocked by client-side string crashes.

Volume & Visibility

Active practitioners over 30 days (prescribe.famasi.me):

32 Doctors
Session Recording: ❌ DISABLED
Diagnostic Impact: Blind spot. We cannot visually see why doctors fail form submissions before the crash.
Dev Bleed: Localhost tracking on ports 3002/3003 contributes 31% of recent event noise.

Prescribing Crash Event

Telemetry from the last 90 days:

signup_viewed: 17
create_order_attempt: 23
create_order_failure: 13 (56.5% failure)

The Error: 92.3% of prescribing failures (12 of 13) are caused by a single client-side React crash at /new-prescription: "Cannot read properties of undefined (reading 'localeCompare')".

Root Cause & Technical Fix

Why it fails: A JavaScript string sorting function executes .localeCompare() on variables (e.g. doctor labels, meds, or locations) that return null/undefined during initialization.

Actionable Fixes:

  • Inject safety fallbacks: (a || '').localeCompare(b || '')
  • Exclude localhost domains from production PostHog rules.
  • Toggle ON Session Replay in Providers Portal settings.
Product Audit: Dispensary OS

Fulfillment lag and disabled auto-debits leak active chronic revenue.

Fulfillment & Platforms

Active Users (30d): 903 operators

SDKs: React Native & Node.js
Android App: 49,247 events
iOS App: 21,058 events
Backend API: 1,912 events
• Logged In: 1,293 | Signed Up: 228
• Orders Created: 404 | Paid: 185
• Completed Orders: 54 (13.3%)

Post-Payment Pipeline Halt

93.8% of Auto-Debit Failures are B2B Restocks

Our 185 paid vs. 54 completed orders gap is caused by a critical backend bug. Out of 97 auto-debit-blocked events, 91 were routine one-time restocking orders. Because the backend falsely evaluated one-time orders under the subscription auto-debit rule (which is disabled), it halted their transition to completed. **Correlation rate: exactly 0%** of blocked restocks completed.

Backend Codebase Bug & Fix

74 Active Pharmacies Blocked

The backend NodeJS API (at host IP 164.92.196.28) mistakenly runs subscription auto-debit checks against B2B one-time orders. When it checks the disabled PostHog auto-debit flag, it blocks the transaction pipeline.

Codebase Actionable Fix:

Restrict auto-debit checks strictly to subscription orders inside the transaction controller:

if (order.orderType === 'subscription') {
  // evaluate auto-debit feature flag...
}
Product Audit: Fey-Landing

High informational barriers limit download conversion to 2.38%.

Traffic & Scope

Active visitors over 30 days: 90 users

• fey.supply: 142 pageviews
• withfey.com: 110 pageviews
• fey-landing.pages.dev: 26 pageviews
• localhost:5173 (bleed): 17 pageviews

Visibility: Replays are ❌ DISABLED. We cannot see visual engagement, scrolls, or what sections cause them to bounce.

Friction Map & FAQ Clicks

Users are searching for structural and pricing details:

1. "Pricing / regional pricing?": 21 clicks
2. "Fey pharmacy integrations?": 15 clicks
3. "Setup duration?": 12 clicks
4. "System not listed?": 7 clicks

Download Goal Clicks: Only 6 clicks (2.38% conversion). The informational wall blocks action.

Conversion Strategy

Fixes & Upgrades:

  • Bring Integration Above the Fold: Move direct answers to regional pricing and pharmacy connections next to the main download CTA.
  • Filter Localhost Traffic: Exclude development domains in PostHog to clean metrics.
  • Toggle Session Replays: Track visual engagement and scroll depths.
The Growth Playbook

Technical and UX roadmap to recover lost conversions.

Technical & Tracking Fixes

  • Add translate="no": Protect checkout and medication configuration fields from translation DOM exceptions.
  • Track WhatsApp Handoffs: Fire a success conversion event when a user clicks "Speak to a Specialist" to prevent misclassifying live lead transfers as drop-offs.
  • Align Environments & Clean localhost: Exclude local port track logs from production PostHog workspaces.
  • Defer/Retarget Pre-Payment SMS: Silence order-created alerts at delivery step, or pivot them to recovery links to save the 38.5% Step 4 drop-off.

UX & Content Upgrades

  • Reduce MED Step Friction: Trigger floating specialists helper badge if a user is inactive for >3 minutes on the Med selection page.
  • Convert Blog Traffic: Embed direct curated plan ads and a "Speak with a Care Specialist" consultation widget in the Postinor-2 article.
  • Fix Dashboard Click Mapping: Map passive graphics and card elements directly to checkout initiation to eliminate user rage clicks.
Audit Conclusion
Strategic Takeaway

Recapture value by fixing our frontend crashes and telemetry leaks.

We do not have an acquisition problem — we have an execution gap. From the 80.9% checkout MED drop-off to the 56.5% Providers prescribing crash and the 70.8% Dispensary post-payment completion chasm, users show high intent but are blocked by silent technical failures and disabled features. Addressing these core technical and operational blockers directly recovers massive latent revenue.

Report Completed