ADHD Advisor · mLTV methodology

How mLTV is calculated.

What the dataset is, how we value a single customer, and the number that matters most at the point of sale: when someone signs up, how much are they worth to us on average? Then we set that result next to the planning model month by month.

What changed in this version

An earlier version of this doc reported the per-type Dx+MM values too high. The fix and the corrected numbers are here; the rest of the method is unchanged.

What was wrong. We tagged a customer as Dx+MM only once they attended the combined appointment. Anyone who signed up for Dx+MM and then no-showed never got the tag, so they were filed as a diagnosis no-show instead. That left the Dx+MM group missing its no-shows, with a 98% show-up rate, when the real first-appointment rate is about 75%. With the low-value no-shows left out, the Dx+MM values read about a third too high. The fix adds those no-shows back at the 75% rate, which both our quiz data and the planning model agree on.

Three numbers to keep straight, used the same way throughout this doc:

  • Firing now. The value the architecture passes back to the ad platforms today. The live number.
  • Our earlier figure. What our recompute produced before we caught the no-show gap. The firing values were built on this kind of calculation, so they carry the same blind spot.
  • Corrected. Our recompute with the no-shows added back. What the firing values should move to.

Two values were already right and don't move: the blended $236 (any new customer) and the diagnosis-only $195, both of which already counted their no-shows. Everything that changed is on the Dx+MM side:

Dx+MM valueFiring nowOur earlier figureCorrected
Checkout, all statesper state ↓$662$480
T1 states$609$691$503
T2 states$565$626$454
T3 states$457$548$395
T4 / T5 states$350 / $350$420 / $498$300 / $358

The firing values for T1 to T3 sit above the corrected figures, so what we pass back today is still too high and should come down toward the corrected column. T4 and T5 rest on 7 and 10 customers, too few to trust, so the architecture already floors them to $350. The full per-cell version of this table is in section 5.

The definition

mLTV is revenue minus the cost of serving the customer.

It is margin-adjusted, so it sits below topline revenue and reads differently from a standard LTV figure. It takes what a customer pays us and subtracts what we pay clinicians to see them.

total paid clinical cost = mLTV

Revenue comes straight from payments, with no modelling. The only constructed piece is the clinical cost, which we apply with a short set of rules.

The dataset

Every ADHD Advisor customer from launch through the snapshot.

One export, one row per customer, covering sign-ups from January 2025 to April 2026, current as of the 17 April 2026 snapshot. It carries each customer's payments, appointments attended, sign-up date, state, and quiz answers.

What's in the data, and what we analyse
Total customers in the export
All sign-ups, Jan 2025 to Apr 2026
18,945
Excluded: paid $0 in total
700 who never paid and never showed, plus 134 who had an appointment but show no payment (refunds and chargebacks)
− 834
Analysed: paid 1+ payment
The set behind everything below
18,111

A note on no-shows, since it's easy to mix up

There are two groups that both involve not showing up, and only one is excluded.

The second group is not free to us. If someone cancels inside 24 hours or no-shows, we keep the deposit but still pay the provider for the slot: the 45-minute doctor rate for a Dx+MM booking, the 15-minute clinician rate for a diagnosis-only booking. About 1,100 of the 3,602 carry one of those fees, so after they're counted the group averages roughly $28 each, not the deposit on its own. The rule for inclusion is still simple: paid something, in; paid nothing, out.

1 · The cost model

A clinical cost is the sum of provider fees for that customer.

Two appointment lengths, two rates. A 45-minute Dx+MM appointment with a doctor costs $112. Every 15-minute appointment with a clinician costs $38, whether it's a diagnosis-only first visit or an ongoing med-management check-in.

Clinical cost per customer
Deposit only, no appointment booked or attended
$0
First attended appointment
45-min Dx+MM with a doctor, or 15-min diagnosis-only with a clinician
$112 / $38Dx+MM / diagnosis only
Each further attended appointment (15-min check-in)
$38
No-show or late cancellation, deposit kept
The provider is still paid for the booked slot
$112 / $38Dx+MM / diagnosis only

A Dx+MM customer who attends costs $112 + $38 × (n − 1) across n appointments. A diagnosis-only customer costs $38 × n, since all of their visits are 15-minute. Someone who books and then no-shows or cancels late costs the single provider fee for the slot they booked, even though we keep the deposit. The two rates ($112 and $38) are the judgement calls in the method. Everything else is money that came in or went out.

What the cost model leaves out

The cost side covers provider fees only. It does not include:

So mLTV is margin over clinical cost, not profit per customer. It tells us how customer types stack up against each other and sets a ceiling on what we can spend to acquire them.

Show-up rates are already in the numbers

One thing the collected view captures without being asked: whether people show up. It counts only appointments that happened and money that was paid, plus the provider fee on a no-show or late cancellation. So a customer who booked and didn't attend lands in the data at their real value, low or slightly negative, already inside the average. We never assume a show-up rate, because the real one is baked in. The planning model is the reverse, since it has to assume a show-up rate as an input (around 75% for first appointments) because it forecasts before anything has happened.

2 · Worked examples

The same sum, two single customers.

To see the calculation end to end, take one customer who books a Dx+MM appointment, shows up, opts into ongoing care, and stays six months. This is a best case, not a typical one:

Example A. Shows up, opts in, stays 6 months - best case
Deposit
+ $49
First appointment (45-min Dx + MM)
+ $150
Ongoing med management$130 / mo × 6
+ $780
Revenue
$979
First appointment, 45-min
− $112
6 check-ins, 15-min$38 × 6
− $228
Clinical cost
$340
mLTV
$639

Someone who books a diagnosis-only appointment and doesn't continue:

Example B. Books diagnosis only, one and done
Deposit
+ $49
First appointment (15-min diagnosis)
+ $100
Revenue
$149
First appointment, 15-min
− $38
Clinical cost
$38
mLTV
$111
These are two single customers, the best case and the smallest case, shown to check the math both ways. Neither is what an average new customer is worth, since most don't show up, opt in, and stay six months. The average is in the next section. What the examples do show: a diagnosis-only customer is profitable on its own, because the 15-minute appointment is cheap enough that $111 of the $149 stays as margin, so it isn't a loss leader.

3 · What a customer is worth at checkout

The honest number is the average across everyone who signs up.

The reason to compute mLTV is to answer one question at the point of sale: someone just signed up and paid a deposit, how much are they worth? The answer has to include everyone who signs up, the no-shows and the one-and-dones along with the people who stay. Across the matured cohort (Jan to Oct 2025 sign-ups, 6 to 15 months to pay), that average is:

Any new customer who pays a deposit
8,240 customers, matured cohort
$236
expected mLTV - the number to plan against

Split by the path they are on, two of the three values stand as measured and one needs the correction from the top of this doc:

Diagnosis only
7,466 customers
$195
expected mLTV, already includes the 27% who no-show
Dx + MM
733 reach treatment
$480
expected mLTV, no-shows added back

The diagnosis-only $195 is a true expected value as it stands, because that bucket already carries its no-shows, so it reads the same before and after the correction. The Dx+MM number is the one that was overstated: our earlier figure was $662, but that counted only the customers who reached the combined appointment. About three in four show up, so the corrected expected value of a Dx+MM sign-up is about $480. The planning model's figure for the dual type is $324, lower than ours because it caps at twelve months and separates the dual and full-service types where we blend them.

These two are aggregates, shown to make the split legible. They are not the values that fire to the ad platforms. What fires is the per-state version of the Dx+MM and diagnosis-only numbers, the ten cells in section 5.

Within the diagnosis-only path, the $195 is itself a blend of two outcomes:

82%Stay diagnosis-only
$116
18%Upgrade to ongoing care later
$550
Blended value of a diagnosis-only sign-up
$195

At checkout you can't tell which of the two a person will become, so $195 is the honest number for that path. For bidding and value pass-back, use these expected values, not the higher conditional ones. The conditional figure ($662 for Dx+MM) is what a customer who reaches treatment is worth, which is a different question from what a sign-up is worth, and using it to set bids would have us paying for customers as if none of them ever no-showed.

4 · Set next to the planning model, month by month

The booking mix feeds the blended, the same way the planning model builds it.

This reads like the planning model's mLTV tab. Each column is a sign-up month. The top rows show the booking mix, and the blended rows below show where collected and projected land. As the share booking the higher-value Dx+MM appointment rises, the blended value rises with it.

Sign-up cohortJan '25Feb '25Mar '25Apr '25May '25Jun '25Jul '25Aug '25Sep '25Oct '25Nov '25Dec '25Jan '26Feb '26Mar '26Apr '26
Months to pay15.514.513.512.511.510.59.58.57.56.55.54.53.52.51.50.5
Booking mix
Booked Dx + MM0%0%0%1%2%5%7%13%19%24%44%54%73%92%93%94%
Booked diagnosis only97%99%100%99%97%95%93%86%80%75%55%45%26%8%7%6%
Blended mLTV
Collected to date$112$155$123$161$195$236$269$314$334$339$406$358$278$140$95$49
Planning projectionn/an/an/a$95$126$168$204$230$253$266$314$327$330$329$313$310
Collected to date
Planning model projection
Faded columns are recent cohorts (under 6 months), still accruing

Reading the matrix

The share booking Dx+MM climbs from near zero in early 2025 to over 90% by early 2026. As that mix moved, the blended value rose in both rows, because more people were buying the higher-value appointment. The per-customer values didn't change; the blend of who signed up did. That is the same shift the planning model shows in its own mix figures, and it holds whichever way the booking types are split, because the blended row averages everyone.

On levels, the two rows do not sit on top of each other. Collected runs above the projection across the matured columns. Two things push it up: those customers have now paid past the 12-month point the projection stops at, and the diagnosis-only appointment is costed here at the 15-minute rate, which looks lower than the figure behind the projection. On a matched cost basis the gap would narrow, so the size of it shouldn't be read as a clean result yet. Collected then falls below the projection in the faded columns on the right, because those customers haven't paid yet while the projection already counts their full year.

The two move in the same shape, set by the booking mix. On levels, collected sits above the projection once a cohort matures and below it while a cohort is young. The young-cohort gap is pure timing. The matured-cohort gap is partly timing and partly a difference in how the diagnosis appointment is costed, so it's a flag to chase down, not a finished number.

5 · How the ten state-tier values were derived

Each value is the average mLTV of one cell: a booking type inside a state tier.

The checkout prediction above gives two values, one per booking type. The state-tier architecture splits each into five, because retention varies sharply by state, which makes a Dx+MM booking in Florida worth far more than the same booking in North Carolina. That gives ten values, fired automatically at booking from two inputs that are both known at that moment: the appointment type and the customer's state.

The math behind each value is the same sum as before, run on a smaller group. Take everyone in the calibration cohort who booked that appointment type in a state of that tier, and average their mLTV. For the headline value:

Worked cell · T1 premium states × Dx+MM
Dx+MM customers who reached treatment in FL, NJ, NY, TX, WA
532 customers
Firing to the ad platforms now
$609
Our earlier figure, attendees only
$691
Corrected, no-shows added back
$503

All ten cells across the three numbers. For the Dx+MM cells the earlier figure and the corrected figure differ, because the correction added the no-shows back. For the diagnosis-only cells the two are identical, because that path already counted its no-shows and didn't change:

TierBookingCustomersFiring nowOur earlier figureCorrected
T1Dx+MM532$609$691$503
T1Dx only1,654$325$284$284
T2Dx+MM121$565$626$454
T2Dx only1,651$255$235$235
T3Dx+MM60$457$548$395
T3Dx only1,298$185$185$185
T4Dx+MM7$350$420$300
T4Dx only1,270$105$137$137
T5Dx+MM10$350$498$358
T5Dx only1,520$60$111$111
Firing now (live pass-back)
Our earlier figure (before fix)
Corrected (no-shows added)

Reading the three columns

The corrected column is our recompute on the current export, with the no-show fix applied to the Dx+MM cells. The earlier column is what that recompute gave before the fix, kept here so the size of the correction is visible. The firing column is what the architecture passes to the ad platforms today, which was built on the earlier, attendee-only approach and on a slightly different data snapshot, so it doesn't equal our earlier figure exactly but shares the same blind spot.

The thing to act on: across T1 to T3, the firing values sit above the corrected ones, so the Dx+MM values we pass back today are too high and should be revised down toward the corrected column. T4 and T5 rest on 7 and 10 customers, too few to trust, so the architecture already floors both to $350. On the diagnosis-only side the firing values carry a documented adjustment, a 40% blend of the stronger Oct to Dec conversion, which is why they sit above our figure in the top tiers and below it in the bottom tiers; those cells are unaffected by the no-show fix, so their earlier and corrected figures are the same.

How a state lands in a tier: its blended mean mLTV, averaged across all its paid customers and both booking types, set against thresholds that step down from roughly $400 and above for T1 to under $75 for T5. Because that tiering input is the blended figure, it already includes no-shows and isn't affected by the correction above. Florida at $454 sits in T1; North Carolina at $36 sits in T5. Retention past the third payment confirms a state isn't promoted on a few outliers, and a separate CAC gate can route a correctly-tiered state to a tighter-budget campaign without changing its value.