The funnel's behavioural design, walked
MEDvidi · A8
A real browser on a real mobile viewport with every write blocked. No price anywhere, seven legal instruments behind one checkbox behind the button, and an ad SDK nobody had found.
Kicker
Seven Scouts described MEDvidi's signup flow by reading its JavaScript bundle. On
2026-08-19 it was walked in a real browser, on a real 390×844 mobile viewport, with every
write request blocked at the network layer so that nothing was created and nothing was
submitted. The flow is shorter and stranger than the bundle suggested: four to six
screens, of which the ADHD path is the only one with any qualification at all — Weight
Loss, ESA, anxiety, insomnia and OCD go from a checkbox straight to the account wall in
one tap. The account wall asks for first name, last name, ZIP, date of birth, mobile
number and email, and gates them behind two consent checkboxes, one of which bundles
seven separate legal instruments including the Refund Policy and the AI Usage Consent;
at the default scroll position on a 390px screen that checkbox sits entirely behind the
sticky gold CTA. No price appears anywhere in the funnel — not on the entry screen, not
on any qualification screen, not at the account wall. The published price lives halfway
down a marketing page and inside a collapsed FAQ accordion, and the two documents the
patient agrees to in one click contradict each other: the Refunds & Fees Policy lists six
full-refund conditions, while the Terms and Conditions say flatly "We do not offer
refunds." The free ADHD self-test is a correctly-weighted 18-item ASRS whose subtype
labels are transposed in the scoring code — a high-inattentive profile is told it is
"predominantly hyperactive" and vice versa — and whose CTA dumps a person who has just
been told "ADHD is likely" onto the same undifferentiated ?-less signup URL as everyone
else. Meanwhile the marketing site loads a consent-management platform on every page and
the funnel loads none, while firing Google enhanced-conversion, Microsoft UET and an
OpenAI advertising SDK on the screen where the patient declares their condition. That
last pair of facts is the one with legal teeth, and it is the one nobody had looked at.
Source legend
| Tag | Source |
|---|---|
| [WALK] | Direct browser walk of https://join.medvidi.com/signup, 2026-08-19, using headless Chrome 151 driven by Puppeteer at a 390×844 iPhone-class viewport (isMobile: true, DPR 2, iOS Safari UA). Every HTTP method other than GET/HEAD/OPTIONS was aborted by a request interceptor, so no account, record, lead or server-side event was created. Screens advanced only by clicking client-side wizard controls; the walk stopped at the first screen requiring typed personal data. Raw transcripts: scratchpad/w_adhd.txt, walk_out.txt, w_wl.txt, w_svc{1,3,5,6}.txt. |
| [WALL] | Geometry and DOM measurement of the account-wall screen at 390×844, 2026-08-19: getBoundingClientRect() of both consent checkboxes and of the sticky footer, plus the href of every link inside the consent copy. Same blocked-write session as [WALK]. |
| [SHOT] | Screenshots taken during the same sessions, saved to assets/shots/ (funnel-s0-service-select-mobile.png, fnl-adhd-assess-s0…s5.png, fnl-wl-s0…s1.png, wall-viewport-390.png, wall-consents-scrolled.png, wall-error-state.png, home-mobile-390.png, svc-adhd-mobile-390.png, svc-wl-mobile-390.png, cmp-circle-adhd.png, cmp-klarity-adhd.png), all 2026-08-19. |
| [WIRE] | The list of network requests the funnel attempted during [WALK], captured at the interceptor — request method, host and path only. Payload bodies were not read; the requests were aborted before they were sent. |
| [ASRS] | https://medvidi.com/tests/adhd/ — rendered DOM plus the page's own inline scoring script, read verbatim 2026-08-19. The quiz is a static WordPress/Elementor form (id="asrs-form", method="get") scored entirely client-side; taking it transmits nothing. Result state reached and screenshotted (test-adhd-result.png). |
| [GAD7] | https://medvidi.com/tests/anxiety/ — same treatment, 2026-08-19. Seven items scored 0–3, banded client-side. |
| [PRICE] | https://medvidi.com/services/adhd-treatment/ and https://medvidi.com/services/weight-loss-treatment/, fetched and rendered 2026-08-19; the on-page pricing blocks read verbatim, with their position in the page measured in text lines. |
| [REFUND] | https://medvidi.com/about-us/refund-policy/ — "Refunds & Fees Policy", stamped "Last updated: 5 May 2025", read in full 2026-08-19. |
| [TC] | https://medvidi.com/terms-and-conditions/ — "MEDvidi Health Terms and Conditions", ~7,300 words, no last-updated stamp, read in full 2026-08-19. Section letters below (e.g. §(f), §(g)) are the document's own. |
| [PAYTERMS] | https://medvidi.com/payment-terms/, read in full 2026-08-19. |
| [PROMO] | https://medvidi.com/promo-codes/ — "MEDvidi Promo Codes and Discounts FAQ", read in full 2026-08-19. |
| [FAQ] | https://medvidi.com/faqs/ and the FAQ accordion on https://medvidi.com/, read 2026-08-19. |
| [LH] | Google Lighthouse 12.x run locally against Chrome 151, 2026-08-19, mobile form factor, 390×844 DPR 3, simulated throttling, categories performance/accessibility/best-practices/SEO. Four URLs: medvidi.com/, /services/adhd-treatment/, /services/weight-loss-treatment/, join.medvidi.com/signup. Raw JSON in scratchpad/lh_*.json. The public PageSpeed Insights API refused the job — anonymous daily quota is now zero (RESOURCE_EXHAUSTED, quota_limit_value 0), so Lighthouse was run directly instead; lab numbers only, no CrUX field data. |
| [CIRCLE] | https://www.circlemedical.com/what-we-treat/adhd/, rendered at 390×844, 2026-08-19. Comparator: an insurance-first US telehealth practice competing for the same ADHD search intent. |
| [KLARITY] | https://www.helloklarity.com/service/adhd-treatment/, rendered at 390×844, 2026-08-19. Comparator: a cash-pay/insurance marketplace competing for the same ADHD search intent. |
| [A1] [A2] [A3] [A4] [A6] | Prior Findings in this Inquiry, cited where this pass confirms, sharpens or corrects them: product-surface-patient-journey.md (A1), demand-engine-seo-funnel.md (A2), business-model-economics.md (A3), regulation-risk-dea.md (A4), competitive-landscape.md (A6). Where A4's own primary tag matters — e.g. [ENF-CEREBRAL], the FTC's April 2024 Cerebral press release — it is named so the chain is traceable. |
| [REASON] | My inference from the above. Always labelled, always shown with its arithmetic or its logic. |
1. What we found
1.1 The funnel is four to six screens, and only ADHD has a funnel at all
Walked 2026-08-19 at 390×844 with writes blocked [WALK]. Both ADHD branches and all five non-ADHD services were traversed.
Screen 0 — service selection. Title: "What do you need help with?" Seven options as
checkboxes, not radios — ADHD / ADD Treatment, Anxiety Treatment, Depression Treatment,
Insomnia Treatment, Weight Loss, Emotional Support Animal Letter, OCD Treatment. Nothing is
pre-checked. Continue renders disabled until something is ticked. A back arrow labelled
"Back to sign in". Footer: "Already have an account? Sign in." [WALK] [SHOT]
The ADHD branch, screen 1. A face and a name: Dr. David Okonkwo, Medical Director — "Hi, I'm David. I oversee treatment of all our patients. Let's find the best medical provider for you." Then a fork with two buttons and no Continue: "Transfer my ongoing ADHD care" or "Start with ADHD assessment" [WALK].
Transfer path (4 screens total). Screen 2 is a second Okonkwo card, "We prioritize continuity & uninterrupted care", with three promises — "Share what treatment works for you", "Meet your provider as soon as today… often the same day or within 48 hours", "Resume treatment the same day — Our providers send e-prescriptions to pharmacies right after the appointment." One button: "Book my appointment". Screen 3 is the account wall [WALK].
Assessment path (6 screens total). Screen 2: "What bothers you the most?" — eight checkboxes, ending "I'm not sure..it all feels overwhelming" (typo in the product). Screen 3: "What's most important to you while seeking care?" — seven radios, one of which is "Getting affordable care". Screen 4: a third Okonkwo card, "The transparent approach to treatment", three promises — "Complete assessment during your first visit", "Get a personalized treatment plan", "It's your choice — If provider suggests starting treatment, you can always say no or think about it." One button: "Book my first call". Screen 5 is the account wall [WALK].
Every other service is two screens. Ticking Anxiety, Depression, Insomnia, Weight Loss, ESA or OCD and pressing Continue lands directly on the account wall — one tap, no questions, no assessment, no eligibility [WALK]. The wall's headline is templated per service ("…specializing in weight loss are ready to help", "…specializing in emotional support animal letter are ready to help"), lowercased mid-sentence, which is the tell that it is one interpolated string [WALK].
That asymmetry is the single most informative thing in the walk. The company has invested qualification screens in exactly one of its seven services, and the two questions the ADHD path asks ("what bothers you the most", "what's most important to you") are preference questions, not clinical or eligibility ones [REASON].
1.2 The price is not in the funnel. It is halfway down a marketing page.
Zero of the four-to-six funnel screens mention a dollar figure, a payment, insurance, or the fact that MEDvidi is cash-pay [WALK]. Neither does the account wall [WALL].
Where the price actually lives, as of 2026-08-19:
- Homepage: only inside the FAQ accordion near the page foot — "The majority of our services cost $195 for an initial appointment and $159 for a follow-up appointment. Please contact our Care Team if you want to know the exact price of your visit in advance." Hedged twice: "majority", and "contact us for the exact price" [FAQ].
- ADHD service page: a proper pricing block — "$195 Initial ADHD Visit" (30 min) and "$159 Follow-up Visits" (15 min), under the line "We currently offer online ADHD treatment on a self-pay basis. You pay per visit — no subscription required." It begins at roughly line 203 of a 423-line text render, i.e. about 48% of the way down the page [PRICE].
- Weight-loss service page: three tiers — "Introductory Consultation $195", "Introductory + Follow-up Consultation Package $249 — Save $105", "Follow-up Consultation $159". Begins around line 255 of 483, about 53% down [PRICE]. The arithmetic is honest: 195 + 159 = 354, 354 − 249 = 105 [REASON].
Above the fold on the ADHD money page, on mobile, a person sees the H1, three benefit lines
("Same-day appointments" / "No insurance is needed. HSA & FSA are accepted" / "Online
prescriptions, if deemed necessary"), a gold Book an appointment button, "30,000
satisfied patients" with four avatars, and a live Trustpilot widget reading "Excellent
4.3 out of 5". No price [SHOT] svc-adhd-mobile-390.png.
"No insurance is needed" is the most efficient sentence on the site. The underlying fact — we do not accept insurance, so you pay the whole $195 yourself — is a cost objection. Rewritten as "no insurance is needed" it becomes a convenience benefit, and it sits in the same visual rhythm as "same-day appointments" [SHOT] [REASON].
1.3 The account wall: six fields, seven documents, one checkbox, behind the button
Measured at 390×844 [WALL], 2026-08-19.
Above the form: an avatar stack of three faces plus a "50+" badge, and the line "Over 50 experienced providers specializing in <service> are ready to help". Then "Set up your patient profile."
Six required fields, each with a red asterisk: First name, Last name, ZIP Code (with an
info affordance), Date of birth, Mobile number (pre-filled +1), Email. Plus one
non-required hidden text input [WALK].
Two consent checkboxes, neither pre-checked [WALL]:
- "I agree to receive marketing messages and follow-up visit reminders via SMS & email. Message frequency varies. Text STOP to opt-out." — one box covering marketing messages and transactional visit reminders.
- "I agree to the MEDvidi Health Terms of Use, Privacy Policy, Terms and Conditions, Telehealth Consent, Artificial Intelligence usage consent, Refund Policy, and to receive login and appointment links via SMS." — six separate linked instruments plus an SMS-delivery agreement, in one tick [WALL].
The six hrefs resolve to /terms-of-use/, /privacy-policy/, /terms-and-conditions/,
/consent-to-telehealth/, /ai-usage-consent/, /about-us/refund-policy/ [WALL].
Where those checkboxes sit. The step container is an inner scroll region with
scrollHeight 782 against clientHeight 610 — 172px of content below the visible area.
Consent box 1 spans y = 647–751. Consent box 2 spans y = 751–877, i.e. its bottom edge
is 33px past the 844px viewport. The sticky footer occupies y = 705–819 and the gold
Create my patient profile button occupies y = 721–769 [WALL].
Read that as a picture: at the default scroll position, roughly the bottom 40% of consent
box 1 is behind the CTA, and consent box 2 — the one carrying the Refund Policy, the
Telehealth Consent and the AI Usage Consent — is entirely behind the CTA and partly off
screen. The screenshot wall-viewport-390.png shows the marketing-consent sentence cut
mid-line by the gold button; wall-consents-scrolled.png shows both boxes once the inner
container is scrolled [SHOT].
The CTA is not disabled. Tapping it with nothing filled produces field-level "Field is required." errors and a "Please agree to continue" message [WALK]. So the discovery mechanism for the most legally significant control on the screen is an error state triggered by pressing the button that covers it [REASON].
To be fair and precise about what is not wrong here: nothing is pre-ticked, the links are real links, the marketing consent is separated from the legal bundle, and there is no confirmshaming copy. The defect is occlusion and bundling, not deception by default [WALL] [REASON].
1.4 The progress bar runs five points ahead of you, and stops at 25%
The header carries a two-track progress bar. Track one, progress-bar__current, is the
real position. Track two, progress-bar__expected, is drawn five percentage points
further along, rendered as a hatched segment ahead of the solid fill [WALK] [SHOT].
Observed transforms, screen by screen (translateX(-100%) = 0% filled):
| Screen | current | expected |
|---|---|---|
| Service selection | 0% | 5% |
| ADHD branch fork | 5% | 10% |
| "What bothers you most" | 10% | 15% |
| "What's most important" | 15% | 20% |
| Okonkwo reassurance | 20% | 25% |
| Account wall | 25% | (absent) |
[WALK]
Two things follow. First, the "expected" track is a goal-gradient device: the user is always shown a little more progress than they have made, and the anticipated increment disappears at the moment the form appears [REASON]. Second, and more useful: the bar tells the truth about length. Handing over name, DOB, phone, email and seven consents puts you at one quarter of the journey. The remaining 75% — phone verification, slot selection, payment, the intake questionnaire, ID upload, the medication and substance form, the PDMP and verification gate — happens after the account exists and, per A1 and A3, after the card has been charged [A1] [A3] [REASON].
1.5 The gate that can decline you sits behind the payment, and the policy does not say what happens then
The published Refunds & Fees Policy, last updated 5 May 2025, enumerates six full-refund conditions: timely cancellation (≥8h), provider cancellation, provider-side technical failure, incorrect provider assignment (out-of-state licensure), provider no-show or 15+ minutes late, and "no suitable appointment times available within a reasonable timeframe" [REFUND].
It enumerates what is not refunded: any appointment that has started; late cancellation (<8h, plus a $50 fee); no-show or failure to log in within 5 minutes (plus a $100 fee); patient-side connectivity; and —
"Pharmacy/Medication Issues: Refunds will not be issued if a pharmacy refuses to fill a prescription due to their policies or stock availability. MEDvidi does not control pharmacy operations but can assist in finding alternatives." [REFUND]
Outstanding no-show and late-cancellation fees "must be paid before a new appointment can be scheduled" [REFUND]. Refund requests must be made within 15 days of payment, go through phone/SMS/email only, get a response in 48–72 hours, are processed in 2–3 business days and may take up to 28 additional business days to land [REFUND].
What the policy does not address anywhere: what happens if MEDvidi itself declines to treat a patient after taking payment — the PDMP-and-intake verification outcome A1 documented in the portal [A1]. Section 1 does not list it; section 2 says once an appointment has begun there is no refund. This is a gap in the published policy, not evidence of a withheld refund, and it is parked as such in §4 [REFUND] [REASON].
Meanwhile the Payment Terms disclose a split charge:
"The payment might be divided into two parts. First part charges at the moment of the appointment booking. The rest charges just before the appointment starts." [PAYTERMS]
So the sunk cost is created at booking and topped up minutes before the visit [PAYTERMS] [REASON].
1.6 The two documents behind the same checkbox contradict each other
Both the Refunds & Fees Policy and the Terms and Conditions are linked from consent box 2 [WALL]. The Terms say, in §(f):
"By providing payment information to us, you grant the Payment Processor and us your consent and authorization for your credit card to be charged for any fee for your continued membership. All overdraft, chargebacks, and bank fees are solely your responsibility. We will notify you in advance of fee increases prior to you being billed. We do not offer refunds." [TC]
And §(g), in the document's own capitals:
"BY REGISTERING AS A MEMBER, YOU AGREE TO PAY ANY FEES ASSOCIATED WITH YOUR MEMBERSHIP. THE FEE WILL AUTOMATICALLY BE CHARGED TO YOUR PREFERRED PAYMENT METHOD. YOU AGREE THAT THE FEES WILL INCLUDE APPLICABLE TAXES UNTIL YOU CANCEL YOUR REGISTRATION. IF YOUR PAYMENT METHOD FAILS AND YOU DO NOT PAY OR DO NOT PAY ON TIME, WE MAY CANCEL OR SUSPEND YOUR ACCOUNT." [TC]
Three further contradictions live in the same document. §(b) says "You may be asked to provide your insurance information… By providing your insurance information, you authorize MEDvidi Health to submit claims and bill Medical Services to your insurer on your behalf", while the site's own FAQ says "Currently, MEDvidi doesn't accept insurance" [TC] [FAQ]. §13(b) governs "referral credits" and a personal "referral link", and forbids promoting it "via search engine marketing, including but not limited to AdWords, Yahoo, or Bing" — a programme that appears nowhere on the public product [TC]. And §13(c) reads: "You may opt out of text ("SMS") messaging at any time… You understand that opting out of receiving SMS messages may impact your access to Sites, Content, and Medical Services" [TC] — which, combined with consent box 2's "…and to receive login and appointment links via SMS", means the login mechanism itself is tied to SMS [WALL] [TC] [REASON].
Nowhere in the Terms is there a described mechanism for cancelling a membership. The document says charges continue "UNTIL YOU CANCEL YOUR REGISTRATION" and never says how, where, with what notice, or by when [TC]. Compare the same company's precision about appointment cancellation: an 8-hour boundary, a $50 fee, a $100 no-show fee, a 5-minute login grace, a 72-hour documentation window [REFUND]. The asymmetry is not subtle: the document is exact about what the patient owes and silent about how the patient stops owing it [REASON].
1.7 The cancellation and save flow — what is publicly establishable, and what is not
The FTC's April 2024 Cerebral order, as documented in A4 from the Commission's own release [ENF-CEREBRAL], turned in part on ROSCA: failure to disclose material cancellation terms while promising "cancel anytime", and — the detail that belongs on a wall — Cerebral "first implemented an easier cancellation button in April 2020, [and] the company removed it after only two weeks at [the CEO's] direction after seeing cancellations rise" [A4].
MEDvidi ships the machinery that story is about. A1 and A3 read 28 PostHog events under
PP — Membership — … in the patient-portal bundle, including Went To Membership
Cancellaton (sic), Membership Cancelled, Stayed With Membership and Moved Next
With Membership Cancellation, plus routes /membership, /membership/manage,
/membership/cards, /membership/history, a $159 recurring Stripe plan, and feature flags
Membership_Launch_Test_1 and Targeted_release_late_reshedule_membership_offer [A1]
[A3].
This pass could not see the save flow. It lives behind authentication and SCOPE forbids creating an account. What this pass can establish from public surfaces, and what nobody had assembled:
- The auto-renew authorisation exists in the binding Terms, in capitals, buried in a ~7,300-word document reached through one of six links inside one checkbox that is behind the CTA at the default mobile scroll position [TC] [WALL].
- There is no public cancellation method — not in the Terms, not in the Refund Policy, not in the FAQ [TC] [REFUND] [FAQ].
- The public FAQ actively denies the product exists: "Many conditions require multiple appointments over an extended period of time. However, we have no subscription model" [FAQ]. The ADHD money page says "You pay per visit — no subscription required" [PRICE]. The weight-loss money page's fourth bullet is "No membership or hidden fees" [PRICE] [SHOT].
- The promo-codes page frames the absence of discounts as fairness — "At this time, MEDvidi does not offer promo codes or discounts to maintain transparent and fair pricing for all patients" — while the weight-loss page sells a bundle marked "Save $105" [PROMO] [PRICE].
So on the day Prime launches, three public pages and one FAQ answer become false simultaneously, and the auto-renew disclosure is already sitting in the wrong place [REASON]. That is the ROSCA-shaped problem, and it is fixable in a week for zero engineering cost — see §6.
1.8 The free tests: exact scoring, exact words, and one transposed label
ADHD. medvidi.com/tests/adhd/ is a full 18-item ASRS v1.1, 90 radios in 18 groups,
method="get", scored by an inline script with no network call [ASRS]. The per-item
weights are correct: items 1–3, 9, 12, 16, 18 score 1 from "Sometimes" upward; items
4–8, 10, 11, 13–15, 17 require "Often" [ASRS]. That is the validated ASRS weighting, and
it deserves saying because it would have been easy to get wrong.
The verdict logic, verbatim from the page script [ASRS]:
groupSum1= items 1–6 (ASRS Part A).<= 3→ "ADHD is unlikely", no description.>= 4→ "ADHD is likely".- Subtype from
groupSum2(items 1–4, 7–11 — the inattentive set, per the script's own comment) andgroupSum3(items 5, 6, 12–18 — the hyperactive/impulsive set), threshold> 4.
And here is the defect. The script says:
groupSum2 <= 4 && groupSum3 > 4→ "…align more with the predominantly inattentive subtype" — butgroupSum3is the hyperactive/impulsive set.groupSum2 > 4 && groupSum3 <= 4→ "…align more with the predominantly hyperactive subtype" — butgroupSum2is the inattentive set.
The two subtype labels are transposed [ASRS]. A person whose symptoms are purely inattentive is told they look hyperactive, and a person who is restless and impulsive is told they look inattentive. The all-"Very often" run I took returned "ADHD is likely… These symptoms seem to align more with the combined subtype", which is the one branch the bug does not touch [ASRS] [SHOT].
The result screen then says, in full: "Your results / ADHD is likely / The result suggests that you exhibit some symptoms associated with ADHD… / Note that the diagnostic process for ADHD is complex, and self-diagnosis is not possible. To go through a detailed assessment and learn whether you have ADHD, consult with a healthcare provider. / Do you want to discuss your results with an expert? → Book an appointment" [ASRS].
Three properties matter. The result is free, instant and ungated — no email wall, no
account, no server round trip [ASRS]. The disclaimer is genuinely present and reasonably
worded. And the CTA href is https://join.medvidi.com/signup — bare, with no
?service=adhd, no score, no subtype [ASRS]. Somebody who has just answered 18 clinical
questions and been told "ADHD is likely" arrives at "What do you need help with?" and starts
again [REASON].
Anxiety. medvidi.com/tests/anxiety/ is a GAD-7: 7 items, 0–3, total 0–21, same
asrs-form id copied over [GAD7]. Bands: 0–4 "Anxiety disorder is unlikely"; 5–9 "Mild
anxiety disorder is likely"; 10–14 "Moderate anxiety disorder is likely"; 15–21
"Severe anxiety disorder is likely" [GAD7]. The cut-points are the standard GAD-7
severity bands. The wording is not: GAD-7 5–9 is conventionally mild anxiety symptoms, and
the instrument's screening cut-point for probable GAD is 10. Labelling the 5–9 band "mild
anxiety disorder is likely" converts a symptom score into a disorder claim [GAD7]
[REASON]. Same bare CTA, same ungated result [GAD7].
And that is the whole lead-magnet estate. The sitemap lists exactly two test pages — ADHD and anxiety [A2], re-checked 2026-08-19. There is no depression test, no insomnia test, no PHQ-9. The two tests that exist map precisely onto the two conditions whose treatment is a controlled substance — stimulants and benzodiazepines [REASON]. (One consolation: no PHQ-9 means no item-9 self-harm question, and therefore no untriggered crisis-routing obligation on the marketing site [REASON].)
1.9 The devices, named, with the on-screen evidence
| Device | On-screen evidence | Reading |
|---|---|---|
| Self-diagnosis → CTA | "ADHD is likely" then "Book an appointment" [ASRS] | Legitimate if the disclaimer holds; here it does |
| Authority (personified) | Dr. David Okonkwo, "Medical Director", on 3 of 6 ADHD screens [WALK] | Legitimate |
| Authority (certification) | LegitScript seal 11465576 on every page [SHOT] | Legitimate, verifiable |
| Social proof (volume) | "30,000 satisfied patients" + 4 avatars, ADHD page hero [SHOT] | Needs substantiation |
| Social proof (rating) | Live Trustpilot "Excellent 4.3 out of 5" widget [SHOT] | Legitimate — it is the real widget |
| Social proof (supply) | "Over 50 experienced providers" + avatar stack + "50+" badge, on the account wall [WALL] | Placed at the highest-friction screen |
| Scarcity / speed | "Same-day appointments", "Appointments within 24 hours", "often the same day or within 48 hours" [SHOT] [WALK] | Speed, not scarcity — no slot-count or countdown device was found anywhere |
| Effort minimisation | "Your mental wellness is one click away", "Start feeling better in just three steps", "No waiting rooms. No paperwork." [SHOT] | Contradicted by the product — see below |
| Goal gradient | Two-track progress bar, expected always +5% [WALK] | Standard, mild |
| Endowed progress | Wall reached at 25% [WALK] | Honest about length; demoralising by design or by accident |
| Default framing | "No insurance is needed" instead of "we don't take insurance" [SHOT] | Aggressive, legitimate |
| Fairness framing | "no promo codes… to maintain transparent and fair pricing for all patients" [PROMO] | Neutralises price objection; undercut by the $105 bundle |
| Anchoring / bundling | "$195 / $249 Save $105 / $159" on the weight-loss page [PRICE] | Textbook, correctly arithmetic |
| Sunk cost | Payment split across booking and just-before-visit [PAYTERMS]; intake, ID, PDMP after payment [A1] | The load-bearing device in the whole business |
| Effort justification | 18-question ASRS, then 2–4 more funnel questions, then 6 fields, all before any price [ASRS] [WALK] | The strongest one on the site |
| Consent bundling | 7 instruments in 1 checkbox, occluded by the CTA [WALL] | This is the one to fix |
| Auto-renew disclosure placement | ROSCA-relevant terms in all-caps, 7,300 words deep, behind that checkbox [TC] | This is the other one |
"No paperwork" deserves its own line. The homepage promises it [SHOT]; the company's own FAQ says a prescription requires that you "provide an approved photo ID, complete an intake and medical history form, complete a medication and substance form, provide insurance ID if applicable, and other necessary mental health screening forms" — all of it after payment [FAQ] [A1]. That is a claim-versus-product gap on the primary landing page, and it is the kind of thing a Section 5 deception theory is built from [REASON].
What is absent and worth saying out loud, because absence is evidence: no countdown timer, no "3 slots left", no fake urgency, no pre-checked upsell, no confirmshaming, no hidden-cost reveal at checkout (there is no checkout before the wall to hide anything in), no forced account creation before content (the tests are ungated), and no negative-option trap on the published per-visit product [WALK] [ASRS] [REASON]. On the standard dark-pattern taxonomy MEDvidi's funnel is cleaner than its reputation-by-category would suggest. Its exposure is concentrated in two places: consent presentation at the wall, and the gap between what the marketing says and what the membership terms authorise.
1.10 Instrumentation, observed at the wire
During [WALK], with every write aborted, the funnel attempted the following. Hosts and paths only; no payload was read [WIRE]:
| Destination | What it is |
|---|---|
api.medvidi.com/dashboard/v1/patient-portal-event (POST, repeatedly) |
First-party server-side event ingestion — the PP — … catalogue A1 read in the bundle, live |
api.medvidi.com/dashboard/v1/available-services?websiteCode=join_medvidi (GET) |
The seven services are server-driven, per white-label tenant |
api.medvidi.com/dashboard/v1/terms?websiteCode=join_medvidi (GET) |
Consent text is server-driven, per tenant |
api.medvidi.com/dashboard/v1/ai-usage-consent-agreement/collection-status (GET) |
AI consent is tracked as its own collectible artefact |
data.medvidi.com/flags/ (POST) + /static/{surveys,web-vitals,exception-autocapture,dead-clicks-autocapture}.js |
Self-hosted / reverse-proxied PostHog with feature flags, surveys, web-vitals, dead-click and exception autocapture |
o1050997.ingest.sentry.io/api/6461278/envelope/ (POST, many) |
Sentry error tracking |
googletagmanager.com GTM-T7TBQ8C, google.com/ccm/collect (POST, ae=g, en=…), ad.doubleclick.net/ccm/s/collect |
Google Ads conversion with enhanced-conversion signalling |
bat.bing.com UET ti=26002229, incl. a custom event with gc=USD&tpp=1&en=Y |
Microsoft Ads conversion with value |
bzrcdn.openai.com/sdk/oaiq.min.js and bzr.openai.com/v1/sdk/events?pid=…&st=oaiq-web&sv=0.1.29 (POST) |
An OpenAI advertising/conversion SDK, firing on the funnel |
Two of those are new to this Inquiry.
First: OpenAI. The oaiq SDK is present on join.medvidi.com/signup and absent from
medvidi.com — grep -ic openai returns 2 on the funnel DOM and 0 on the homepage
[WIRE]. Somebody at MEDvidi has already wired conversion measurement for a
ChatGPT-originated ad or referral channel [REASON]. For a business whose only channel is
organic search, that is the most interesting single tag on the site: it means the demand
team is already treating an assistant surface as an acquisition channel, and it means there
is a measurement question — what share of /signup starts arrive from an LLM surface — that
the company can already answer and the study could not [REASON].
Second, and more serious: the consent-management asymmetry. medvidi.com loads
Cookiebot — 82 matches in the homepage DOM, and its Bing beacon carries consent parameters
(evt=consent&src=update, asc=G). join.medvidi.com/signup loads no consent-management
platform at all — zero matches for cookiebot, OneTrust, Usercentrics, Osano, Termly or Klaro —
and its Bing beacon carries no asc consent parameter [WIRE].
So the brochure site, where a visitor reveals nothing, is consent-gated. The funnel, where the visitor selects "ADHD / ADD Treatment" or "Weight Loss" and then types name, DOB, phone and email, is not [WIRE] [REASON]. A4 scanned the marketing estate for Meta/TikTok/LinkedIn tags and correctly found none, concluding "the advertising exposure is Google and Microsoft" [A4]. That conclusion is right about the marketing site and incomplete about the product: the funnel adds an OpenAI SDK and drops the CMP [WIRE].
I want to be exact about what this does and does not prove. The /signup URL does not
encode the condition — service selection is client-side and the path stays /signup
[WALK]. I did not read any payload. So this is not evidence that a condition is being
transmitted to an ad network. It is evidence that the controls which would prevent that are
present on one surface and absent on the other, while three ad platforms and a session-replay
tool run on the surface that lacks them — and A1 found flags named
patient_anonymous_signup_session_recording and patient_session_recording_split in that
same bundle [A1] [WIRE] [REASON]. The FTC's Cerebral theory did not require HIPAA; it
ran on Section 5, ROSCA and OARFPA [A4]. This is the shape of that theory's first
paragraph.
1.11 Performance, measured — and the surprise is where it is bad
The critique asked for PageSpeed Insights. The public API now refuses anonymous calls
outright (RESOURCE_EXHAUSTED, quota_limit_value: 0, 2026-08-19), so Lighthouse 12 was run
locally against Chrome 151 with mobile emulation and simulated throttling instead. Lab data
only — there is no CrUX field data in these runs [LH].
| URL, mobile | Perf | A11y | Best pract. | SEO | FCP | LCP | TBT | CLS | TTI |
|---|---|---|---|---|---|---|---|---|---|
medvidi.com/ |
97 | 93 | 79 | 100 | 1.6s | 2.1s | 0ms | 0.063 | 2.1s |
/services/adhd-treatment/ |
72 | 89 | 75 | 100 | 4.2s | 4.4s | 20ms | 0.03 | 10.9s |
/services/weight-loss-treatment/ |
62 | 81 | 79 | 92 | 4.2s | 8.6s | 30ms | 0.004 | 10.7s |
join.medvidi.com/signup |
53 | 95 | 79 | — | 5.1s | 15.9s | 190ms | 0.003 | 15.9s |
[LH]
The homepage — the page a VP would instinctively optimise — is genuinely fast and needs nothing. The pages that carry the money are not, and the funnel is the worst thing the company ships [LH] [REASON].
Diagnosis, from the same runs [LH]:
- Weight-loss LCP 8.6s is an un-optimised 2024 PNG (
Group-2772-6.png, 418×494) served as the hero; "modern image formats" alone estimates 258 KiB of savings. LCP above 4s is the "poor" band; 8.6s on the page selling GLP-1s is a conversion tax nobody has priced. - Both money pages are blocked ~1.7s / 0.5s by the same Elementor + Font Awesome + jQuery stack. Render-blocking savings estimated at 1,740ms (ADHD) and 540ms (weight loss).
- The weight-loss page fails the SEO audit
crawlable-anchors— "Links are not crawlable" — on the money page of an SEO-only business. - The funnel is a 2,219 KiB Angular SPA with 504 KiB of unused JavaScript and no
render-blocking CSS; its LCP is simply "the bundle has to arrive". It also fails one
colour-contrast check — consistent with the pale-gold disabled
Continuebutton visible insignup-desktop-1440.png[SHOT]. - Accessibility fails across the estate on
link-name(8 items on the homepage, 12 on the ADHD page, 5 on weight loss — icon links and social icons with no discernible name) andaria-hidden-focus; the weight-loss page adds 22aria-allowed-roleviolations. None of these is catastrophic; all of them are cheap; on a mental-health site they are also an ADA question [LH].
One correction to my own first pass, recorded because it is exactly the failure mode this
Inquiry is meant to avoid: a naive headless screenshot at --window-size=390 (no mobile
emulation) showed the homepage and the funnel clipped at the right edge, and I nearly wrote
that the mobile layouts overflow. Under real mobile emulation
document.documentElement.scrollWidth === window.innerWidth === 390 on the homepage, both
money pages and every funnel screen [WALK] [SHOT]. There is no horizontal overflow.
The misleading screenshot has been deleted.
1.12 Where the competitors put the price, the eligibility and the wall
Circle Medical, /what-we-treat/adhd/, 390px, 2026-08-19 [CIRCLE]. Above the fold:
"ADHD treatment online. Same-day availability. In-network with most insurance." — then
"Care rated 4.9/5 by 300k+ patients", "300+ board certified providers", and, in the
hero, the expectation-setting line "Clinically appropriate treatments & prescriptions
available in 3 appointments". The ASRS Part A — six questions — is embedded directly on
the landing page with a "Submit" button and the honest framing "Click or tap 'Submit' to
see if your symptoms are suggestive of ADHD in adults". And the price is on the same page:
"Quality care shouldn't be expensive. ADHD visits cost on average $35 with insurance. Get
an estimate" [CIRCLE].
Klarity Health, /service/adhd-treatment/, 390px, 2026-08-19 [KLARITY]. Above the
fold: "1,000+ licensed mental health providers in 50 states", "Appointments available within
24 hours", "400+ insurance plans accepted, HSA & FSA eligible, self-pay from $51", an
"Excellent 4.9 based on 1,812 reviews" widget, and the asterisk resolved in plain sight:
"Providers on Klarity Health are independent practitioners with clinical autonomy; a
diagnosis, treatment, or prescription is not guaranteed*." Further down, a head-to-head
comparison table naming ADHD Online and Circle Medical by name, with star ratings and price
rows [KLARITY].
The structural contrast, which is the point:
| MEDvidi | Circle Medical | Klarity Health | |
|---|---|---|---|
| Price on landing page | Mid-page (~48–53% down) [PRICE] | Hero [CIRCLE] | Hero [KLARITY] |
| Price in funnel before account | Never [WALK] | n/a (est. tool in hero) | Per-provider, before booking |
| Eligibility signal in hero | "No insurance is needed" [SHOT] | "In-network with most insurance" [CIRCLE] | "400+ plans… self-pay from $51" [KLARITY] |
| Screening instrument | Separate /tests/adhd/ page [ASRS] |
On the treatment page [CIRCLE] | Not on page [KLARITY] |
| Outcome expectation set up front | No [WALK] | "in 3 appointments" [CIRCLE] | "not guaranteed" [KLARITY] |
| Account wall position | Screen 2–6, before any price [WALK] | After availability check | After provider choice |
Both comparators tell the visitor the price and the odds before asking for anything. MEDvidi asks for everything before telling the visitor either [REASON].
2. Capability / object table
| Object | State, 2026-08-19 | Evidence |
|---|---|---|
| Funnel entry | 7 services, checkboxes, none preselected | [WALK] |
| Funnel depth, ADHD assessment | 6 screens to wall | [WALK] |
| Funnel depth, ADHD transfer | 4 screens to wall | [WALK] |
| Funnel depth, other 5 services | 2 screens to wall | [WALK] |
| Qualification questions, ADHD | 2 (preference, not clinical) | [WALK] |
| Qualification questions, GLP-1 | 0 | [WALK] |
| Eligibility / state check pre-wall | None | [WALK] |
| Price shown pre-wall | None | [WALK] |
| Account-wall fields | 6 required | [WALL] |
| Consent checkboxes | 2, none pre-checked | [WALL] |
| Instruments in consent box 2 | 7 | [WALL] |
| Consent box 2 vs viewport | y 751–877 of 844; behind sticky CTA | [WALL] |
| Progress at account wall | 25% | [WALK] |
| Progress bar tracks | 2 (current + expected, +5%) | [WALK] |
?service= honoured on entry |
No | [WALK] |
CTAs passing ?service= |
0 of 49 audited (11 home, 8 ADHD, 28 WL, 2 tests) | [SHOT] [PRICE] [ASRS] |
| Free tests published | 2 — ADHD, anxiety | [ASRS] [GAD7] |
| ADHD test instrument | ASRS v1.1, 18 items, weights correct | [ASRS] |
| ADHD verdict threshold | Part A ≥ 4 → "ADHD is likely" | [ASRS] |
| ADHD subtype labels | Transposed | [ASRS] |
| Anxiety test instrument | GAD-7, bands 4/9/14/21 | [GAD7] |
| Test result gating | None — free, instant, no email | [ASRS] [GAD7] |
| Test CTA target | bare /signup, no score, no service |
[ASRS] [GAD7] |
| Published price, initial | $195 | [PRICE] [FAQ] |
| Published price, follow-up | $159 | [PRICE] |
| Published bundle | $249, "Save $105" (WL only) | [PRICE] |
| Late cancel fee | $50 (<8h) | [REFUND] |
| No-show fee | $100 (5 min grace) | [REFUND] |
| Refund window | 15 days from payment | [REFUND] |
| Refund settlement | 2–3 business days + up to 28 more | [REFUND] |
| Pharmacy-refusal refund | Explicitly none | [REFUND] |
| Post-payment decline refund | Not addressed in policy | [REFUND] |
| Payment structure | Split: at booking + just before visit | [PAYTERMS] |
| Refund statements in force | 2, contradictory | [REFUND] [TC] |
| Auto-renew authorisation | Present, all-caps, T&C §(g) | [TC] |
| Published cancellation method | None | [TC] [REFUND] [FAQ] |
| Public "no subscription" claims | 3 pages + 1 FAQ answer | [PRICE] [FAQ] |
| CMP on marketing site | Cookiebot | [WIRE] |
| CMP on funnel | None | [WIRE] |
| Ad platforms on funnel | Google (enhanced conv.), Microsoft UET, OpenAI oaiq | [WIRE] |
| Error tracking on funnel | Sentry | [WIRE] |
| Product analytics | Self-hosted PostHog + first-party event API | [WIRE] |
| Lighthouse mobile perf, home | 97 | [LH] |
| Lighthouse mobile perf, ADHD page | 72 (LCP 4.4s) | [LH] |
| Lighthouse mobile perf, WL page | 62 (LCP 8.6s) | [LH] |
| Lighthouse mobile perf, funnel | 53 (LCP 15.9s) | [LH] |
| Mobile horizontal overflow | None | [WALK] |
| Scarcity devices | None found | [WALK] [SHOT] |
| Pre-checked opt-ins | None found | [WALL] |
| Confirmshaming | None found | [WALK] |
3. Reconciliation notes
A1's parked question about ?service= is now answered, in the negative and twice over.
A1 could not tell whether the rendered CTA href differed from the served HTML, and parked
it [A1]. In the rendered DOM on 2026-08-19: 11 CTAs on the homepage, 8 on the ADHD page,
28 on the weight-loss page, and both test-result CTAs — all point at bare
join.medvidi.com/signup or join.medvidi.com/ [SHOT] [PRICE] [ASRS]. And the entry
screen ignores ?service=adhd when it is supplied by hand: nothing is preselected, the DOM
is byte-identical apart from tag ids, and Continue stays disabled [WALK]. So the portal
reads a parameter that no surface writes, and does not act on it when it is written. Both
halves of the loss are confirmed.
A1's and A3's read of the membership machinery holds; this pass adds the legal frame, not new machinery. I could not see the save flow — it is behind a login. What is added is that the auto-renew authorisation exists in a document reachable only through the occluded checkbox, that no cancellation method is published anywhere, and that four public surfaces currently deny that a subscription exists [TC] [FAQ] [PRICE].
A2's characterisation of the free tests as "self-diagnosis then CTA" is right and incomplete. The mechanism is sharper than that: the tests are correctly implemented instruments whose disclaimers are honest, whose results are ungated, and whose only design sin is that the handoff throws away everything the person just told them — plus one transposed subtype label [ASRS] [A2].
A4's tag scan is correct about the marketing site and incomplete about the product. A4
searched medvidi.com for Meta/TikTok/LinkedIn tags, found none, and concluded the
advertising exposure is Google and Microsoft [A4]. On join.medvidi.com/signup there is
additionally an OpenAI advertising SDK, and there is no consent-management platform at all
[WIRE]. The conclusion should be restated as: on the marketing site, Google and
Microsoft, consent-gated; in the funnel, Google, Microsoft and OpenAI, not consent-gated.
The provider-count conflict (9 vs 50 vs 117) gets one more data point, from the product itself. The account wall says "Over 50 experienced providers specializing in <service> are ready to help", with a "50+" badge [WALL]. That is the number MEDvidi tells a patient at the moment of maximum commitment, for every service including ESA and weight loss — which means it is a brand-level claim rendered as a per-service one, and it should not be treated as a per-specialty bench count [REASON].
The gaps.md hypothesis that page performance is a neglected problem is half right. The homepage scores 97. The money pages and the funnel are the problem. If a VP walked in and proposed a Core Web Vitals programme, they would be optimising the one page that does not need it [LH] [REASON].
My own first-pass error, recorded. Non-emulated headless screenshots at a 390px window suggested horizontal overflow on mobile. Under true mobile emulation there is none. The misleading file was deleted rather than kept [WALK].
4. Open Questions / Parked
- What does the patient see between the account wall and the payment screen? Phone verification, slot selection, provider assignment, price presentation and the card form all sit behind account creation, which SCOPE forbids. Everything about price presentation at the point of charge is unobserved. This is the single largest remaining hole in the funnel picture and it is answerable in ten minutes by anyone inside the company — or by asking the CEO to walk you through it in the interview.
- What is in the
patient-portal-eventpayload on the pre-account screens? The POSTs fire from screen 0 onward and were aborted, not read. Whether the selected service is transmitted before an account exists — and to whom besides MEDvidi's own API — is unestablished. - Does the OpenAI
oaiqSDK receive any condition signal? Not established. Only that it loads and posts events on the funnel and not on the marketing site. - What happens to the $195 when the PDMP or intake-verification gate declines a patient? The published Refunds & Fees Policy does not address it [REFUND]. Do not assert that no refund is given; assert only that the policy is silent.
- Is the save/retention flow reachable without a membership, and what does it offer?
28 PostHog events including
Stayed With Membershipsay it exists [A1] [A3]. Its contents are unobserved. - Is the ADHD subtype transposition also present on any partner-brand tenant (EZCare, Mango, MDBerry) that reuses the same WordPress template? Not checked.
- What is the real conversion cost of the 15.9s funnel LCP? Lab number only. No CrUX field data was obtainable (PSI anonymous quota is zero). The company has PostHog web-vitals autocapture running on the funnel [WIRE] — it already has the field answer.
- Does any surface disclose the recurring price and cancellation method at the point of enrolment in Prime? Unobservable from outside; it is the first ROSCA question a regulator would ask.
- Trustpilot's own page (
trustpilot.com/review/medvidi.com) blocked headless access with a "Verifying your connection" interstitial on 2026-08-19; the 4.3/5 figure here comes from MEDvidi's own embedded live widget, not from Trustpilot directly.
5. What this does NOT cover
- Anything behind authentication. No account was created, no form submitted, no login attempted, no payment made. Every non-GET request the funnel attempted was aborted at the interceptor. The observed screens are therefore the complete unauthenticated funnel and nothing more.
- The payment screen, the intake questionnaire, ID upload, the PDMP gate, the video visit, the follow-up flow, and the membership cancellation flow. All post-account.
- Desktop funnel behaviour beyond the entry screen. The walk was run at 390×844 because drug-name search traffic is mobile-first; only the entry screen was also captured at 1440px.
- Any brand other than MEDvidi. The
websiteCode=join_medvidiparameter says the same Angular app serves five other clinic brands [WIRE] [A1]; none was walked. - Field performance data. Lighthouse lab runs only; no CrUX.
- A11y beyond Lighthouse's automated axe subset. No manual screen-reader pass, no keyboard-only pass.
- Ad-library, paid-search creative, or landing-page/ad-copy consistency. Out of this gap's scope.
- Any legal conclusion. Sections 1.3, 1.6, 1.7 and 1.10 describe structures that resemble the ones the FTC charged in Cerebral [A4]. Whether any of it violates ROSCA, Section 5, the TCPA or a state auto-renewal statute is a question for counsel, not for a Scout, and the finding is written so that the facts survive whatever counsel says.
6. What this means for a VP of Product
The posting asks for behavioural design. The honest read of this funnel is that MEDvidi has one behavioural mechanism doing almost all of the work, and it is not on any of the screens.
The mechanism is sequence. Payment lands before intake, before the PDMP check, before ID verification, and before the patient knows whether a prescription is even possible [A1] [PAYTERMS]. Everything the funnel does before that point exists to maximise the amount of disclosed effort a person has already sunk when the card form finally appears — 18 ASRS questions if they came through a test, two to four more funnel questions, six identity fields, seven consents, a phone verification. The classic devices are all present and all secondary: the Medical Director's face, the "50+" badge, "same-day", "one click away", "three steps", the $105 bundle, the two-track progress bar. None of them is doing the heavy lifting. Effort justification is. And the reason the price is invisible until after the account exists is that a price shown at screen 0 would be a decision made on price; a price shown at 25% progress with six fields already filled is a decision made on sunk effort [REASON].
That is legitimate design. Sequencing payment before a clinical gate is not, by itself, deceptive — a clinic that charges for an assessment whose outcome may be "no" is charging for the assessment. What makes it fragile is that the sequence is never disclosed. At no point before the account wall does the funnel say: this costs $195, we do not take insurance, we will run a controlled-substance database check, and a prescription is not guaranteed. Klarity says the last of those in its hero, in an asterisk, and still converts [KLARITY]. Circle Medical says "in 3 appointments" in its hero and still converts [CIRCLE]. MEDvidi says "one click away" and "no paperwork" [SHOT].
So the position I would take into the room is this: the funnel does not need more persuasion, it needs the disclosures moved forward, and it will cost conversion to do it. Say the number out loud rather than pretending otherwise. Then argue that the trade is correct on three grounds — the refund and support load created by patients who bought something they did not understand, the review damage that same cohort produces, and the fact that a 2024 FTC order against a direct peer ran on exactly this shape of claim [A4].
Week one, ranked by (conversion impact × legal exposure). All of these are cheap; none needs the AI Clinic Track; most need a copywriter and one front-end engineer.
- Split the seven-instrument consent, and get it out from behind the CTA. Two boxes: one for treatment-related consents (Telehealth Consent, AI Usage Consent) and one for commercial terms (Terms, Privacy, Refund Policy). Move both above the sticky footer, or make the footer non-sticky on that screen. Currently consent box 2 occupies y 751–877 on an 844px viewport with the CTA at y 721–769 [WALL]. Cost: a small conversion dip at the wall. Why it is still right: this is the single artefact a regulator would print first, and the fix is measured in hours.
- Reconcile the two refund statements. "We do not offer refunds" in the Terms [TC] sits behind the same checkbox as a policy listing six full-refund conditions [REFUND]. Pick one. Cost: none. This is a lawyer and an afternoon.
- Publish the cancellation method. The Terms authorise recurring charges "until you cancel your registration" and never say how [TC]. Write the how, put it in the Terms and in the FAQ, and make sure whatever the portal's save flow does, the stated method is one step and reachable without contacting support. Cost: real, once Prime launches — a frictionless cancel measurably raises churn. Why it is still right: the Cerebral order turned on a company that removed an easier cancel button after cancellations rose [A4]. That is the fact pattern. Do not create it.
- Fix the ASRS subtype transposition. Ten characters of JavaScript [ASRS]. It is a clinical-content defect on the highest-intent page in the estate, and it is the kind of thing that gets screenshotted. Cost: none.
- Disclose price and the no-guarantee before the account wall. One line on screen 0 or on the reassurance screen: "$195 for your first 30-minute visit. We don't take insurance. A prescription isn't guaranteed — your provider decides." The third clause already exists in the FAQ, in the "It's your choice" card, and in Klarity's hero [FAQ] [WALK] [KLARITY]. Cost: this one genuinely costs conversion, probably the most of anything on this list. Why it is still right: the people it loses are the people who were going to demand a refund, leave a one-star review about the PDMP decline, or charge back. Instrument it as an A/B test with refund rate, support contacts per booking and 30-day review volume as co-primary metrics, not booking rate alone.
- Put a consent-management platform on
join.medvidi.com, or take the ad SDKs off it. Cookiebot runs 82 times on the homepage and zero times on the funnel, which carries Google enhanced conversions, Microsoft UET and an OpenAI SDK [WIRE]. Pick one of the two fixes this week. Cost: measurable loss of conversion signal for paid channels. Why it is still right: the FTC's Cerebral theory did not need HIPAA [A4]. - Carry
?service=through every CTA, and carry the test score with it. 49 CTAs audited, zero pass a service; the portal has readservice,promocode,doctor_idandslotfor a year [WALK] [A1]. For the two test pages, pass the instrument, the score and the subtype so the funnel can skip the questions it already knows the answers to and the clinician can see them. Cost: none. Upside: shortens the non-ADHD path from a dead-end checkbox to a warm start, and finally attributes the tests. - Give weight loss a qualification screen. Today: one tap from checkbox to account wall, with no BMI, no comorbidity, no pregnancy question, no contraindication [WALK] — while the same company publishes a BMI calculator on the weight-loss marketing page that feeds nothing [PRICE]. Cost: conversion, and it should. Every declined GLP-1 patient who paid $195 first is a refund request, a chargeback and a review.
- Fix the two money pages' performance. ADHD LCP 4.4s, weight loss LCP 8.6s on an
un-optimised 2024 PNG, both ~1.7s / 0.5s render-blocked, weight loss failing
crawlable-anchors[LH]. Cost: none. And do not start a Core Web Vitals programme on the homepage — it scores 97. - Then, and only then, the funnel bundle. LCP 15.9s and 504 KiB of unused JS on the entry screen of the paid funnel [LH]. This is the biggest number on the page and the slowest fix; it is an Angular route-splitting project, not a week-one item. Size it with the PostHog web-vitals data the company already collects [WIRE].
The two questions I would ask the CEO, which only fall out of having actually walked it: "Why does ADHD have a funnel and weight loss doesn't?" and "What does the Prime cancellation screen look like today, and who decided?" The first tests whether the product organisation is deliberate or accreted. The second is the one that matters.
Fourteen Areas · adversarially verified · nothing summarised away