2,000 customers, each with a churn score from a model. Churners (coral) tend to score high, loyal customers (teal) low — but the two overlap. Drag the threshold and watch the confusion matrix, precision, recall, and profit move. Then change what a mistake costs, and watch the best threshold walk away from 0.5.
The arithmetic: profit = value × (churners caught) − cost × (everyone contacted). Contacting a customer with churn probability p pays when
p × value > cost, i.e. p > cost ÷ (cost + value). With a $50 offer and a $450 save that is p > 0.10 — nowhere near the 0.5 that predict() silently assumes.
AUC tells you how well the model ranks; it never tells you where to cut.