dfmchn_

field note · concept

churn has a grammar.

the most predictive thing a customer writes is the sentence explaining why they left.

readout · one defection, parsed

I left X for Y because I could not pick the variant source destination trigger · edge label parses to a directed, labeled edge X your brand Y a rival could not pick the variant
A customer who leaves does not emit a mood. They emit a sentence: a source, a destination, and the trigger that fired. Parsed, that is one directed, labeled edge in the friction graph. Aggregate the edges and you get a map of where a base leaks and to whom, which a sentiment score cannot give you.

Most churn analysis treats a departure as a scalar. A satisfaction score, a sentiment value, a probability between zero and one. The customer is reduced to a sign, plus or minus, and the reduction throws away the most useful thing they ever produced. Because a customer who leaves rarely just feels bad in a measurable direction. They say something, and what they say has structure. "I left X for Y because Z" is not a mood. It is a sentence with parts, and the parts are the part worth keeping.

parse the defection

Take the sentence apart. There is a source, the brand being left. There is a destination, the competitor they left for, which is not incidental, because it tells you which alternative reset their sense of what the thing should cost or do. And there is a trigger, the "because," the friction that actually fired. Three components, and together they are not a feeling. They are a directed, labeled edge: a line from X to Y with the reason written on it. That edge forms the irreducible atomic unit of a network graph; it represents the customer performing your root-cause dependency parsing for free.

A churn score is a customer reduced to a sign, plus or minus. The sentence they wrote on the way out is the whole equation.

why the edge outranks the mood

Sentiment aggregates affect and loses the syntax. Two complaints can be equally negative while one is a defection edge and the other is weather. "Shipping was slow this week" and "I moved to Y because I could never get the variant I wanted" both score as unhappy, and only one of them names a source, a destination, and a cause. The grammar is what separates a signal you can act on from a grievance that resolves itself. The trigger is the closest thing to a stated counterfactual you will ever get at scale: the customer telling you, in their own words, what would have kept them. The destination is the other half most tools drop on the floor. "Left because expensive" is half a thought. "Left for Y because expensive" names the substitute that moved their reference price, which is the difference between a complaint and a competitive map.

edges aggregate into a graph, not a meter

Harvest enough of these and you do not get a happier or sadder number. You get a structural network topology: a directed adjacency matrix where out-flux vectors map your operational leakages directly onto the category's competitive set. Each edge is weighted by its transition frequency. That is a structural object. It shows you where the base leaks and to whom, it ranks the triggers by pull rather than by volume of noise, and it tells you which competitor is winning on which friction. A sentiment dashboard cannot produce that picture, because it deleted the grammar on the way in.

where the honesty has to come in

The stated reason is not always the true reason. People rationalize, give the tidy answer, misattribute. So the edge label is a claim, not a verdict, and you treat it that way: you trust the aggregate over any single sentence, because a trigger that fires across hundreds of defections is hard to fake, and you treat each edge as a hypothesis the stress test then confirms or breaks. And not every departure is narrated. Most people leave in silence, so the spoken defections are a sample. But they are the legend for the silent ones: the customer who bothered to write the sentence is naming the friction the quiet majority most likely felt and never typed.


Count moods and you learn that people are unhappy, which you already knew. Parse the grammar and you learn what would have kept them, and who took them. One of those is a number. The other is a map.