Insurance and Self-Pay produce whale customers that look almost nothing alike. The Insurance whale is a 35–54 woman on Aetna; the Self-Pay whale is a 65+ man on weekly subscription. Every pattern below is tagged with how confident we are that it's real vs just a coincidence in the data.
mLTV = "marginal LTV" = revenue collected − clinical cost (dietitian pay) per client. It's the contribution margin per customer in dollars. A customer at $200 mLTV has generated $200 of profit after paying the RD. Higher mLTV = more valuable customer. This is what paid media should optimize against — not revenue, not bookings.
Whale = top 10% of clients by mLTV. They drive most of the margin. Minnow = clients with negative mLTV — we lose money serving them. The middle 70-80% sit between. Targeting strategy is to find more whales and avoid minnows.
Two sources: quiz answers (what the customer told us before they paid — sleep, stress, energy, anxiety, goal, insurer, age, state, gender) and operational data (sessions attended, no-shows, billing cadence, claim reimbursement %). Quiz answers are the only signals we can use for paid-media targeting at acquisition. Quiz-sourced signals are tagged below with QUIZ.
Each signal in the tables below points one direction or the other:
1,869 clients who signed up between Sep 1, 2025 and Jan 20, 2026. Everyone has had at least 3 months of tenure by the reference date (Apr 22, 2026). Average tenure in the cohort: 4.8 months. Anyone newer is excluded — insurance claims take 30–90 days to process and margin mostly settles by month 5–6, so newer clients haven't had time to show their real behavior.
For each client: net revenue − clinical cost, where clinical cost is $60/hour of dietitian labor on every occurred session, no-show, and late-cancel — dietitians are paid for all three. Standard cancels, reschedules, and pending appointments cost us nothing.
mLTV is the observed margin per client over their full tenure — we don't divide by months. A client with 6 months of tenure who produced $300 of margin has an mLTV of $300. These are not annualized or projected figures.
We ran a Fisher's exact test on every whale/minnow pattern to check whether the pattern is real or just coincidence in the data. Each row in the signal tables shows a confidence %. 95%+ clears the standard bar for statistical significance.
Customer-stated insurance provider performance breakdown for the Insurance cohort (1,659 clients):
| Insurance Provider | Sample Size | mLTV | vs Avg ($112) |
|---|---|---|---|
| Anthem | 78 | $165 | +$53 |
| Aetna | 142 | $158 | +$46 |
| Blue Cross Blue Shield | 356 | $125 | +$13 |
| United Healthcare | 164 | $98 | −$14 |
| Cigna | 106 | $94 | −$18 |
Most clients produce very little. A small group at the top produces most of the margin. Here's how the margin spreads across clients, split by billing type (clients sorted by mLTV, then grouped into deciles of equal size):
The Self-Pay whale is bigger: $884 vs Insurance's $584 (51% more margin per client). Self-Pay has fewer ghosts (27% vs 41%) because asking for a credit card upfront filters out people who wouldn't engage anyway. Self-Pay minnows cost less to lose money on ($46 vs $67) because they churn out of subscription before accumulating many no-show fees.
The next two sections have signal tables — things that are more common among whales or minnows than among everyone else. Each row has a dot showing how confident we can be that it's a real signal, not just a coincidence in the data. The % shown is the chance the pattern is real.
"Lift" is how much more (or less) common something is among the target group. 1.43× lift means whales are 43% more likely to have that trait than other clients. 0.60× lift means whales are 40% less likely to have it. Both directions are informative.
A 35–54 woman on Aetna or BCBS. Says she's "feeling hopeful" at signup, reports moderate stress, doesn't flag anxiety, sleeps 5–6 hours. Wants to build muscle and lose fat. Books fast, shows up, does 5 sessions over her first 5 months.
Looks similar demographically to the whale, but 20% male. Books one appointment, pays one copay, then no-shows or late-cancels roughly once. Their insurance ends up reimbursing only 37% of billed claims. Slightly over-represented on Anthem plans.
The strongest patterns we can confirm are: sleep 5–6 hours, moderate fluctuating energy, acquired via Google CPC, body-recomposition goal, "feeling hopeful" motivation, no anxiety/depression, moderate stress, and Aetna coverage. A client hitting 4+ of these at quiz time is meaningfully more likely to become a whale. Stack these as a scoring signal in Meta/Google audience modeling.
On the minnow side, the evidence is weaker. The best-confirmed pattern is a protective one: age 55-64 clients rarely become minnows. For red flags, male gender (94% confident) and Anthem coverage (92%) are suggestive but not confirmed. The Facebook paid ads signal is intuitive but we don't have enough Facebook-acquired clients in the data to prove it yet.
65+, disproportionately male (38% — unusual for us), on weekly billing, lives in NY, TX or IL. Pays 16 times over ~5.5 months and actually shows up to 5–6 sessions. Says "I'm ready" at signup. Low-to-moderate stress.
45–54 year old, more likely male. Starts a subscription, does 0–1 sessions, cancels within a month or two. Mean revenue $18, mean cost $45. Smaller sample size means most patterns aren't statistically confirmed — but the 45–54 age pattern is strong.
The confirmed Self-Pay whale pattern is a tight cluster: age 65+, weekly billing, male, living in NY, saying "I'm ready". These aren't independent signals — they describe one concentrated profile. 48% of Self-Pay whales are 65+ and 86% are on weekly billing; those two overlap significantly.
The monthly-billing result is striking: zero whales in our data are on monthly billing. That's consistent with the theory that weekly debits create stronger commitment than monthly ones. We're 91% confident this is real — it's worth testing by making weekly the default tier.
Almost everything else on the Self-Pay side doesn't reach statistical significance because we only have 21 whales and 38 minnows in the data. As more Self-Pay clients age past the 3-month mark over the next quarter, more patterns will emerge.
Score each lead by how many of these they show: sleep 5-6 hours, moderate fluctuating energy, Google paid search channel, body-recomposition goal, "feeling hopeful" motivation, no anxiety/depression flag, moderate stress, Aetna coverage. Clients hitting 4+ signals should be bid up in Meta/Google audience modeling. Don't over-extend on the directional-only patterns (Illinois, Texas, Cigna avoidance) — worth testing but not ready to commit big budget.
The 5 confirmed signals stack tightly on one profile: retired audience, NY metro, weekly-subscription landing page, "I'm ready" framing. Run separate creative for this audience — completely different from the midlife Insurance whale. Kill monthly billing as a default tier (zero whales, and we're 91% confident that's not a coincidence).
Insurance minnows no-show or late-cancel roughly once each. Insurance whales do it 0.16 times. A small deposit, mandatory SMS confirmation 24 hours before, or a paid cancellation policy would filter most of the minnow volume without affecting whale behavior. Applies to both Insurance and Self-Pay — targeting 45-54 year olds in Self-Pay specifically for the extra friction is worth testing.
Worth testing for 4-6 weeks and revalidating: Facebook paid as a minnow predictor (75% today), Anthem coverage as a minnow predictor (92%), Illinois as an Insurance whale signal (94%), Cigna avoidance (90%), and "feeling hopeful" as a protection from becoming a minnow (92%). Segment your campaigns by these and measure mLTV on the resulting cohorts.
For value-based bidding to work, every conversion event needs to fire with a dollar value attached. Higher values tell Meta and Google to bid harder for similar users. The trick is figuring out what value to send. Below: a scoring recipe using only the signals we trust on two grounds — Fisher's exact confidence at 95%+, and at least 30 supporting whale observations behind the signal. Statistical significance alone isn't enough. A signal with 4 supporting whales can be 98% significant and still have a $271 estimate that's actually anywhere from $50 to $500. Anything that fails either filter goes to a watch list — track but don't bid on.
Every conversion fires with a baseline mLTV (the cohort average). Each confirmed positive signal observed at quiz time adds an uplift. Confirmed negative signals subtract. The total is capped at the top-decile (whale) value so a stack of correlated signals can't blow out to an unrealistic number.
Two filters apply before a signal earns a passback uplift. The first is statistical significance — a Fisher's exact test must clear 95% confidence that the difference isn't zero. The second, equally important, is sample size: at least 30 supporting whale observations behind the signal. Significance tells us the direction is real; sample size tells us the magnitude is stable. A signal with 4 whales behind it can be 98% statistically significant and still have a $271 uplift estimate that's actually anywhere from $50 to $500. Passing imprecise estimates to ad platforms wastes budget chasing phantom audiences.
Signals that clear significance but fail the n≥30 sample bar go to the watch list. Track them, monitor as the cohort grows, but don't pass them back yet.
Fire these as the default value for any conversion of each type, then layer uplifts on top.
All quiz-captured. All clear both filters: 95%+ confidence on Fisher's exact test, and 30+ supporting whale observations.
If a customer fires every Insurance pass-back signal at once, the raw stack adds to $134 of uplift on top of the $112 baseline = $246 total. That's well below the $584 ceiling, so the cap rarely binds for Insurance conversions.
The Self-Pay cohort has 21 whales total. Even the strongest signal — Age 65+ — is supported by only ~10 whale observations. The lift estimates are statistically significant (Fisher's exact clears 95-100%) but the magnitude estimates have very wide confidence intervals. Passing back +$256 for "Age 65+" when our actual estimate could plausibly be anywhere from +$80 to +$400 would tell Meta to overpay for senior audiences without confidence in the value. Until the cohort grows past ~30 whales per signal, fire the $187 Self-Pay baseline for every Self-Pay conversion. Track the watch list signals and re-evaluate at the next quarterly refresh.
For now, every Self-Pay conversion fires at the $187 baseline. Re-run this analysis at 90 days; the Self-Pay cohort doubles roughly every 4-5 months at current run-rate, so "I'm ready" and Age 65+ should clear n≥30 by the next refresh after that.
Three customer profiles, three different passback values. This is what each conversion event would fire with under the current sample-size constraints.
These look meaningful in the data, but they don't belong in the passback value. Each one either confuses the platform or isn't observable when conversion fires.
billing_type first, then apply the matching set.Insurance is ready. Seven signals clear both filters (95%+ confidence, n≥30 supporting whales). Wire these into the Meta and Google purchase events for Insurance conversions. Expected per-customer passback values will range from $112 (no signals captured) to ~$246 (full stack). The whale ceiling cap of $584 rarely binds because no realistic signal stack gets there.
Self-Pay isn't ready yet. All five Self-Pay signals are statistically real but supported by only 4-12 whales each. Fire the $187 baseline for every Self-Pay conversion until at least Age 65+ and "I'm ready" clear n≥30 (next refresh after 90 days, possibly the one after). Don't try to compensate by lowering the threshold to n=10 — that's how you end up over-paying for senior NY men based on a 4-whale estimate.
Validate within 6 weeks of going live. Check whether CAC for high-passback Insurance conversions ($200+) decreased relative to baseline conversions ($112). If yes, the platform is finding more whales. If no, the signal stack isn't moving bidding behavior — usually because high-value conversion volume is too low for the platform's ML to learn from. Broaden inclusion or feed the platform more conversions before expecting the optimization to kick in.
Top Nutrition Coaching · Whales & Minnows v5 · Safe cohort: tenure ≥ 3 months, n=1,869 · Signups Sep 1 2025 – Jan 20 2026 · Reference date Apr 22 2026 · mLTV = net revenue − ($60/hour dietitian labor on occurred + no-show + late-cancel appointments) · Confidence via Fisher's exact test