Investment app and laptop with four-color portfolio allocations, financial documents, coins and a security shield

User segmentation
& churn prediction.

Four investor groups.
One budget. A costly assumption.

8,277users in the analysis
4investor segments
30%campaign reach per segment
0 of 4profitable baseline scenarios
01 / The people

A young audience.
Different starting points.

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.

Audience profile

Who is behind the account?

One count per user. Income is the recorded income bracket; its reporting period is not specified.
Buying and selling over time

Buying generally exceeds selling

Daily transaction totals, 4 August-30 September 2021. Sell amounts are shown as positive magnitudes; this is transaction flow, not profit.
02 / Finding the groups

Similar behavior.
Shared centers.

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.

K-means, one step at a time

Start with four centers

The cross marks are initial centers. Their starting positions influence where the groups settle.

Initial centers

Illustrative points, not investor records. The frames are computed with scikit-learn. The real segmentation uses four scaled inputs, not this two-dimensional example.

Normalized illustrative feature A × feature B. Crosses = group centers.
Why four groups, and which users are included?

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.

03 / The investor spectrum

Four groups.
Four different needs.

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.

How they compare

The distinction

Frequency and value are different signals. The most active group is not the group with the most money invested.

04 / The retention problem

Risk is everywhere.
Even at the top.

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.

Historical campaign groups

Who is most exposed?

Targeted-group percentages are campaign-analysis results, not average predicted probabilities or held-out model accuracy.
Behavior and churn

What changes with activity?

Observed associations help frame a retention hypothesis. They cannot tell us what caused a user to leave.

Reconstructed original cohort, n = 7,667. Group rates are descriptive, not model feature importance.
05 / From signals to a score

A probability.
Not a certainty.

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.

The score-to-probability curve

Mathematical illustration
The sigmoid function: p = 1 / (1 + exp(-score)). This score is illustrative, not a prediction for a particular investor.
Churn probability50.0%

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.

Fresh holdout revalidation

What does the threshold trade off?

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.

Which numeric signals influence the revalidated model?

Direction, with other inputs held fixed

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.

06 / The economic reality

High risk does not mean
high return.

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.

Modeled net return

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.

07 / From insight to action

Target the need.
Test the economics.

Do not launch four blanket campaigns. Start with a segment-specific hypothesis and a small, controlled test.

01

Newcomers

Reduce the friction of a first investment with simple onboarding and limited fee benefits.

Measure
First-to-second investment
02

Beginners

Support the next investment with relevant education and preference-based recommendations.

Measure
Repeat investment
03

Frequent users

Test membership benefits that reward sustained activity without over-subsidizing existing behavior.

Measure
Incremental fee revenue
04

High-value users

Test premium support and services that make managing larger balances easier.

Measure
Retained balances
The takeaway

Segmentation makes a campaign relevant.
Churn prediction makes it focused.
Experimentation tells us whether it works.

Analysis notes

Data, definitions, and reconstruction

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.

Revalidation and limitations

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.