Newcomers
Reduce the friction of a first investment with simple onboarding and limited fee benefits.
First-to-second investment
Four investor groups.
One budget. A costly assumption.
An Indonesian mutual-fund app wants to make its campaigns more relevant. The starting point is 8,277 users with recorded activity from August to September 2021.
4,462 are aged 15-25. Many are students, but age alone cannot tell us how much they invest, how often they transact, or what support they need.
K-means groups users around a set of centers. It assigns each user to the nearest center, moves the centers to the average of their groups, then repeats.
The analysis combines age, invested balance, transaction frequency, and income bracket. Values are scaled before clustering. Four groups make the resulting campaign strategies distinct and interpretable.
The cross marks are initial centers. Their starting positions influence where the groups settle.
Illustrative points, not investor records. The frames are computed with scikit-learn. The real segmentation uses four scaled inputs, not this two-dimensional example.
Elbow and silhouette analysis informed the four-group choice; four is a business-useful solution, not proof of a uniquely optimal number. The original campaign groups contain 7,667 users. A squared Mahalanobis-distance filter excludes 610 of the 8,277 users before clustering. Income is ordinal-encoded, MinMax-scaled, and weighted by 1.75. K-means uses random state 10 and 10 initializations.
Newcomers and beginners make up 67.1% of the segmented population. Frequent users transact most often. High-value users hold the largest average balances.
These names describe patterns, not proven investing expertise. A larger balance does not automatically mean a more loyal user.
Percentages show each segment's share of 7,667 users.
Frequency and value are different signals. The most active group is not the group with the most money invested.
Across the 7,667 campaign-analysis users, 3,091 churned: 40.32%. The proposed strategy ranks users by logistic-regression risk and targets the highest-risk 30% within each segment.
In those selected groups, observed churn ranges from 58.88% to 67.35%. High-value users have the highest targeted-group rate. These are historical outcomes, not a promised campaign response.
Observed associations help frame a retention hypothesis. They cannot tell us what caused a user to leave.
Logistic regression adds up weighted signals, then maps that score onto a probability between 0% and 100%. It learns from users with known churn outcomes.
A lower decision threshold flags more users, catching more churn but also contacting more people who would have stayed. A fixed campaign budget instead selects a ranked share of users.
At a score of zero, the model gives both outcomes equal probability.
Positive weights push the score up; negative weights pull it down. Association is not causation, and probabilities need calibration before operational use.
The original notebook does not retain completed churn-evaluation outputs. This separate revalidation fits a balanced logistic regression to the reconstructed cohort, with training-only preprocessing and a stratified 80/20 split. It does not replace the historical campaign results.
Five numeric inputs only; categorical controls are also included in the model. Weights are log-odds changes per standard deviation, not percentage-point changes. This is the revalidated model, not recovered historical coefficients. The date-based input is time since registration, not time since the last transaction.
The budget reaches 30% of each group at Rp1,000 per user. The fee is just 0.15% of transaction value. Under the baseline assumptions, every campaign has a negative modeled net return.
The problem is not only who might leave. It is whether a campaign changes enough behavior to cover its cost. Risk ranking alone does not answer that question.
Sensitivity analysis, not measured campaign lift. The model assumes retained users generate 1.5 × the fee on the assumed transaction value, subtracts one fee-equivalent for churned users, and deducts campaign costs. It retains the workbook's fractional planning volumes and rounded churn counts. A randomized control group is still needed to measure incremental profit.
Do not launch four blanket campaigns. Start with a segment-specific hypothesis and a small, controlled test.
Reduce the friction of a first investment with simple onboarding and limited fee benefits.
Support the next investment with relevant education and preference-based recommendations.
Test membership benefits that reward sustained activity without over-subsidizing existing behavior.
Test premium support and services that make managing larger balances easier.
Segmentation makes a campaign relevant.
Churn prediction makes it focused.
Experimentation tells us whether it works.
Users, daily transactions, and churn labels form the source data. The EDA covers 8,277 distinct users; the original campaign cohort contains 7,667 after outlier filtering. The reconstruction exactly matches the four original segment counts and investment averages to their reported precision. “High-value users” is a clearer label for the original “Rich User” segment. Segment names do not establish investing experience.
Audience charts count unique users. Some earlier descriptive percentages weighted users by their number of recorded days; these are not interchangeable. Invested balance is the last recorded balance, not an average transaction size. Transaction frequency counts days with a buy plus days with a sell; one day may count twice. Churn uses the supplied binary label; a precise inactivity window is not documented.
Historical targeted-group churn rates and campaign assumptions are preserved. They are not held-out precision or a causal estimate. The latest notebook changed the cohort and lost the completed regression outputs, so those later cluster counts are not mixed into this story.
The supplementary model uses scikit-learn logistic regression with balanced class weights, L2 regularization, an 80/20 stratified split (random state 42), and training-only standardization and one-hot encoding. Numeric inputs are age, final invested balance, total buy amount, signed total sell amount, and time since registration. Categorical inputs are gender, referral use, occupation, income bracket, income source, and reconstructed segment. The entire cohort was used to define the historical clusters; this is a retrospective check, not a clean end-to-end prospective validation.
No historical model metrics are invented. The revalidation's preprocessing differs from the earlier notebook and its outputs are labeled separately. A random split cannot establish future performance; feature timing, churn-label definition, calibration, fairness, and a time-based holdout need review before deployment. Coefficients describe conditional model associations, not causal churn drivers. Campaign estimates are assumption-based scenarios, not incremental return on investment.