dfmchn_

stress test · supplements · subscriptions

Where supplement-subscription churn actually goes: the defection map

We read 9.1 million public posts and comments from online communities about fitness, nutrition, and supplements, kept the 79,718 that talk about buying and subscribing, and extracted every sentence where someone quits, switches, or threatens to. This is where supplement-subscription customers actually go, and which exits a retention budget can still reach.

jan 2022 to jul 2026 · 9.1M public posts · 9,030 typed exits · no internal data

read this first

  • Public data only. Built from public posts and comments in twelve fitness, nutrition, and subscription communities. No brand internal data was used or available.
  • Observed language, not a survey. Every number counts real exit sentences, typed into source → destination → trigger edges.
  • Density, not presence. Brand shares are frequencies within each brand's own corpus, so bigger brands don't look worse by volume.
  • Decay-weighted. Complaints age by trigger type. Price and habit-fatigue friction fades; mechanics, trust, efficacy, and tolerability friction doesn't age out.
  • Huel-heavy corpus. Huel accounts for 57% of documents and defection edges, so category aggregates lean on its mass. An ex-Huel robustness figure is reported below for that reason.

The headline: 9,030 exits, typed and mapped

dfmchn's defection map, built from 9,030 typed defection edges across 9.1 million public posts, finds 63% of supplement-subscription exits landing where no retention spend can follow. When dfmchn ran the same map on coffee subscriptions, only 13% of exits were unrecoverable. Supplements lose their churners at nearly five times that rate, because the destinations are different in kind: bulk raw ingredients, whole food, or out of the category entirely.

defection edges · typed

9,030

Who left, why, and where they went.

already gone

75%

Of defection posts describe an exit that has already happened.

recoverable cohort

18%

Leave the door open (“might come back if…”).

gone for good

63%

Of exits land somewhere no win-back campaign can follow.

The seasonal story that is not there, and the price regime that is

Supplement subscriptions are assumed to be a resolution business: sign-ups cluster in January, so the leaving should cluster in the months right after. The chart below stacks each year's defection density on the same calendar so that claim can be tested directly. dfmchn found no January-resolution churn wave in supplement subscriptions: across 2022 to 2026, February to April defection density averages 1.1 times the rest of the year, and a step fit improves on a flat line by only 18%.

There is one price-driven regime in the data, and it is not seasonal: dfmchn measured a step-up of about 45% in supplement price-complaint density at May 2025 that stays elevated through the end of the corpus, moving independently of the calendar. The sharpest single months (December 2024, October 2025, March 2026) do not recur across years the way a seasonal wave would. They are events, and the March 2026 spike, at three times baseline, is the largest in the series. A metric that looks calendar-flat while events of that size land inside it is the signature our field note why your dashboard turns red too late is about.

Defection density by calendar month, each year 2022 to 2026 overlaid. The expected February to April resolution-churn window shows no wave; the sharpest months, December 2024, October 2025, and March 2026, are events, with March 2026 at three times baseline. 0.91.82.73.6 Feb to Apr: expected window (not supported) JanFebMarAprMayJunJulAugSepOctNovDec20222023202420252026 Defection edges per 1,000 posts in the corpus, by calendar month
defection edges per 1,000 posts in the corpus, by calendar month, each year overlaid. the expected feb to apr resolution window is marked, and not supported.
data table · defection density by calendar month
defection edges per 1,000 posts, by calendar month and year
month20222023202420252026
Jan0.850.720.761.211.20
Feb0.740.710.741.151.90
Mar0.860.880.761.273.16
Apr0.870.940.830.961.06
May0.930.550.831.171.11
Jun0.850.620.740.891.26
Jul0.720.700.691.031.50
Aug0.800.920.920.99
Sep0.940.631.461.03
Oct0.950.691.042.33
Nov1.000.891.051.15
Dec0.800.752.181.87

“At this point, Huel is not a viable solution to that anymore for me. I used to order every couple of months because I knew what was available and what I needed. Now, it’s maybe once a year.”

a habit-fatigue exit · destination: quit the category

The friction map

Before asking who leaves, we let the corpus say what people complain about at all. Clustering the whole category's conversation, never a single brand's (the reasoning is our field note you cannot cluster a brand, only a category), produced 103 clusters, of which 75 survived relevance review. The schema below is what the category itself considers worth arguing about; every brand is scored against this one map.

The category friction schema: nine tiers ranked by document count. Taste and tolerability leads with 12,279 documents in 22 clusters, followed by subscription mechanics, efficacy skepticism, positive advocacy, price and value, trust and marketing fatigue, displacement, and habit fatigue.Taste / tolerability12,279 docs in 22 clustersSubscription mechanics4,752 docs in 11 clustersEfficacy skepticism4,718 docs in 13 clustersAdvocacy (positive)3,621 docs in 7 clustersPrice / value3,200 docs in 9 clustersTrust / marketing fatigue1,353 docs in 5 clustersDisplacement677 docs in 2 clustersHabit fatigue556 docs in 3 clustersOther424 docs in 3 clusters
the category friction schema, induced from the whole corpus at once, never per brand. cream = positive advocacy, green = friction.
data table · friction schema by tier
category friction schema by tier
tierclustersdocs
Taste / tolerability2212,279
Subscription mechanics114,752
Efficacy skepticism134,718
Advocacy (positive)73,621
Price / value93,200
Trust / marketing fatigue51,353
Displacement2677
Habit fatigue3556
Other3424

“as soon as I stopped Huel and switched to 4-5 eggs in the AM, my body fat and total weight both went down. Sorry to say, I’m done for good. With this post about a shady owner, really glad I’m done.”

an efficacy exit · destination: whole food instead

Where defectors go

Every exit sentence names or implies a destination, and each defection is parsed as a full sentence: source, destination, trigger (the structure of our field note churn has a grammar). In this category the exits skew away from rotation: people who leave a supplement subscription mostly do not shop for another one. They buy the raw ingredients in bulk, replace the product with actual food, pick up a cheaper one-off at a store, or stop entirely.

Defection destinations by brand scope. Huel and unbranded category-level exits concentrate on quitting the category. AG1, Ka'Chava, Transparent Labs, and Legion rotate to another subscription more often.Another subscriptionBulk raw ingredientsWhole food insteadGrocery or retailQuit the categoryOtherHuel41264433Unbranded / category level16598593Other named subscriptions414213373AG1487114282Ka'Chava46266373Seed33103503Transparent Labs58155175Legion492181715
cell = percent of that scope's decay-weighted defection edges landing on each destination. rows are category scopes and the brands above the mention floor.
data table · defection destinations by scope
defection destinations by scope
Another subscriptionBulk raw ingredientsWhole food insteadGrocery or retailQuit the categoryOther
Huel41%2%6%4%43%3%
Unbranded / category level16%5%9%8%59%3%
Other named subscriptions41%4%2%13%37%3%
AG148%7%11%4%28%2%
Ka'Chava46%2%6%6%37%3%
Seed33%0%10%3%50%3%
Transparent Labs58%15%5%0%17%5%
Legion49%2%18%17%15%0%

“I stopped my subscription. The bars are trash and the new sizing / cost per calorie changes just sealed the deal. I initially looked at this as a meal replacement to simplify my life but I don't need shrinkflation and lead in the mix too.”

a price / value exit · destination: quit the category

Brand fingerprints

Each brand's mentions are scored against the category schema as a share of that brand's own conversation, so bigger brands do not look worse by volume (the unit-of-measure argument is our field note density, not presence). Mentions that fit no category cluster are kept aside as residuals and read by hand; they are usually the most brand-specific signal. Cluster names are induced from the category conversation, so one brand's fingerprint can include a cluster named for a competitor: comparison discourse crosses brand lines.

brand fingerprints: top friction clusters as a share of each brand's own conversation
branddocstop friction clusters (share of brand conversation)residual docs
Huel45,256Huel flavor and taste feedback (7%); Huel flavor preference and taste (7%); Huel digestive issues and fiber adjustment (6%)766
AG11,335AG1 price and value skepticism (26%); Multivitamin Efficacy Skepticism (12%); Huel Daily Greens nutritional redundancy (11%)90
Ka'Chava430Ka'Chava price and value comparison (28%); Comparing and switching meal replacements (10%); Subscription Fulfillment and Stock Issues (7%)16
Transparent Labs225Protein powder brand and type switching (44%); Supplement Industry Trust and Regulation (17%); switching from pre-workout to caffeine alternatives (8%)12
Seed160Probiotic efficacy and food displacement (61%); L-Theanine efficacy and side effects (11%); B-vitamin adverse reactions and toxicity (7%)4
Legion152Protein powder brand and type switching (43%); switching from pre-workout to caffeine alternatives (33%); Supplement Industry Trust and Regulation (6%)13

“I took AG on for three months and went to the doctor for my general physical and blood work and my liver enzymes are through the roof. My doctor told me to stop drinking this shit immediately!”

a taste / tolerability exit · destination: quit the category

One brand that died, and one too quiet to read

Care/of shut down inside this corpus's window, and the corpus saw it happen: its closure lands cleanly at June 2024, where its users describe the shutdown email in real time. Persona Nutrition is a different lesson. It is still operating (it returned to its founders in 2024 and now sells mostly business to business), but you could not learn that from this corpus: it has only 4 mentions in four and a half years, they thin out during 2023, and the last one asks whether the service is worth trying. A brand can be too small on public forums for its state to register either way; that silence is a resolution limit of the instrument, and it is reported here as one.

Because the timeline is preserved, Care/of's defection profile can be read in the period before shutdown and compared with the surviving brands on the same map. The highlighted row is the pre-shutdown window of a dead brand, and an honest caveat comes with it: three edges from 21 documents is an anecdote, not a fingerprint. The row is shown for the timeline, not as a measurement.

dead and quiet brands vs survivors, on the same map
scopedocsedgesedges / 100 docsthreat sharestructural shareunrecoverable sharetop trigger
Care/of (before shutdown)21314.367%33%100%Other
AG11,33531723.826%51%45%Price / value
Huel45,2565,10311.331%72%56%Taste / tolerability
Ka'Chava4307116.523%61%46%Taste / tolerability
Legion1522415.846%50%54%Other
Seed1603421.329%79%65%Efficacy
Transparent Labs2252812.443%50%36%Price / value

“I disputed the charges and got a new credit card. There are several posts on here from people who were still charged even though the card they have now is not the same as the one they used for their subscription.”

a trust / marketing exit · destination: quit the category

Fragility summary: what triggers the exit, and what stays winnable

The ratio that matters for retention teams is threatening vs already gone: a still-threatening post is a customer who can still be saved.

Exit triggers ranked by volume: taste and tolerability, trust and marketing, price and value, efficacy, other, mechanics, habit fatigue. Each bar splits into completed exits and still-threatening posts.Taste / tolerability3736 (710 open)Trust / marketing1142 (366 open)Price / value1123 (341 open)Efficacy1032 (191 open)Other987 (323 open)Mechanics807 (265 open)Habit fatigue203 (60 open)already gonestill threatening (winnable)
each trigger's defection posts, split into exits already completed and posts still in the threatening stage.
data table · exit triggers
exit triggers: completed vs still threatening
triggercompletedthreatening
Taste / tolerability3,026710
Trust / marketing776366
Price / value782341
Efficacy841191
Other664323
Mechanics542265
Habit fatigue14360

Not all churn is equal. An exit to another subscription is a rotation, recoverable with a better offer. An exit to bulk ingredients, whole food, a grocery shelf, or out of the category entirely is structural: the budget line is gone and no retention spend follows it there. Across the category, 63% of defection edges are the second kind. Huel alone contributes more than half of all edges; excluding it, the pooled unrecoverable share of the remaining scopes is roughly 73%, so the pattern is not an artifact of the corpus's largest brand.

Share of each scope's defection edges that are gone for good versus rotated to another subscription. Unbranded category-level exits are unrecoverable at 82 percent, Huel at 56 percent, Transparent Labs at 36 percent.Unbranded / category level82%Seed65%Huel56%Other named subscriptions55%Legion54%Ka'Chava46%AG145%Transparent Labs36%gone for goodrotated within categoryother exits
share of each scope's defection edges whose destination is unreachable by retention spend (bulk ingredients, whole food, grocery or retail, quitting the category) vs rotation to another subscription. number at right = unrecoverable share.
data table · recoverable vs gone-for-good by scope
recoverable vs gone-for-good by scope
scopeedgesunrecoverablerotation
Unbranded / category level2,69082%16%
Seed3465%32%
Huel5,10356%41%
Other named subscriptions71955%42%
Legion2454%46%
Ka'Chava7146%51%
AG131745%54%
Transparent Labs2836%61%

Friction also splits by durability. Price and habit-fatigue complaints decay; mechanics, trust, efficacy, and tolerability complaints accumulate. The structural share below is each scope's fraction of defection triggered by the durable kind. Edges whose trigger fell in the Other tier are counted in neither column, so the columns do not sum to the edge totals.

data table · structural vs perishable friction by scope
structural vs perishable friction by scope
scopeedgesstructuralperishablestructural share
Whole category9,0306,7171,32674%
Huel5,1033,67977272%
Unbranded / category level2,6902,21625482%
Other named subscriptions71953711375%
AG131716212651%
Ka'Chava71432461%
Seed3427679%
Transparent Labs28141150%
Legion2412650%

“Finally cancelled today after bombarding them with emails with no reply, after threatening to go through my bank with a charge back they conveniently responded and finally cancelled… awful company, avoid at all costs.”

a mechanics exit · destination: quit the category

Why it matters

A retention budget assumes the churner is still shopping the category. In supplements, 63% of the time they are not: the money went to a bulk supplier, a grocery aisle, or nowhere. Coffee loses 13% of its churners that way; supplements lose nearly five times as many, and the difference is not the customers, it is the destinations the category offers them. The 18% who leave the door open cluster on the triggers a brand can actually fix, which is why the threatening-vs-gone split above is the actionable chart on this page.

The full argument, from why churn models only predict the past to which leading indicators actually lead and where a retention dollar does work, is assembled in one place in our guide to predicting and preventing customer churn.

Method note

The analysis used 9.1 million cleaned public posts and comments (January 2022 through July 2026) and no brand internal data.

  • Corpus: 9.1M cleaned public posts and comments from twelve fitness, nutrition, and subscription communities. 79,718 documents passed the relevance gate.
  • Huel weighting: two of the twelve communities are effectively Huel's home venues, and Huel accounts for 57% of both documents and defection edges, so category-level aggregates lean on Huel's mass. The ex-Huel robustness figure in the fragility section is reported for that reason; brand fingerprints are unaffected because each brand is scored against its own corpus.
  • Exclusions: multi-level-marketing supplement discourse (954 rows) was excluded before analysis. The distributor relationship is a different structure and its frictions would contaminate the category schema.
  • Schema: a 103-cluster category schema was induced on the whole corpus at once, never per brand; 75 clusters survived relevance labeling.
  • Edges: 9,030 defection-bearing documents were parsed into 9,030 typed edges (source → destination → trigger, completed vs threatened, reversible vs final) by a constrained-output LLM pass with a calibration prompt.
  • Density, not presence: brand shares are population frequencies of each brand's own corpus, so bigger brands don't look worse by volume.
  • Decay: complaints decay by trigger type (price: ~10.5-month half-life; habit fatigue: ~15; mechanics, trust, efficacy, and tolerability: none; structural friction doesn't age out).
  • Dead brands: Care/of is scored on its pre-shutdown window, anchored at its shutdown month, so its fingerprint stays comparable to the survivors'.
  • Mention floor: brands above the ~150 usable-mention floor carry brand-level claims: Huel, AG1, Ka'Chava, Transparent Labs, Seed, Legion. Scored against the schema but below the floor, so excluded from brand-level claims: Ritual, Momentous, Bloom, Care/of (before shutdown), Gainful, Persona Nutrition.
  • Quotes: verbatim and unedited; receipts are chosen only from those that do not identify the source platform.

Related dfmchn field notes: the half-life of a complaint · the cheapest customer to save · your churn model predicts the past.

this is one run on one population. the same pipeline reads any corpus of human text. read the other stress tests and field notes.

Bring us a population