One Row Is a Modelling Decision: Customer or State?

The hardest segmentation decision was not the clustering method. It was deciding what one observation means.

Observation Unit Customer Profile Behavioural State Segment Design

TL;DR: Customer segmentation starts with the observation unit: choose between one stable profile per customer or one behavioural snapshot per subscriber-month, and let the business decision drive the representation. One row is a modelling decision about what the segment represents — it defines what the clustering can learn, before any distance metric, normalisation, or method is chosen.

Visual Summary

The Problem

In a telecom customer-segmentation project, we had several months of behavioural history for each subscriber. Before selecting variables, normalising features, or choosing a clustering approach, we had to answer a more fundamental question: what does one observation mean?

There were two valid options — and they lead to different business uses.

The Approach

Two representation choices were on the table. Neither is universally better; the choice depends on the decision the segmentation is meant to support.

One subscriber = one row

Aggregate several months into one behavioural profile: average recharge, ARPU, voice usage, data usage, opportunity activity level. This segments relatively stable customer profiles and answers "What type of customer is this, on average?"

One subscriber-month = one row

Keep each monthly behavioural snapshot as a separate observation, so the same subscriber can appear in several rows — June behaviour may not look like August behaviour. This segments behavioural states over time and answers "What state was this customer in during this period?"

Customer-level profiles support more stable, structural targeting. Monthly behavioural states support transition-sensitive actions: activation, declining engagement, service migration, or retention review.

Outcome

Before asking which clustering method, how many segments, which distance metric, and which normalisation, ask the first question: do we need stable customer types — or changing customer states?

In unsupervised learning, one row is not a formatting detail. It is a modelling decision about what the segment represents.

Key Takeaway

Design insight: Customer segmentation starts with the observation unit: choose between one stable profile per customer or one behavioural snapshot per subscriber-month, and let the business decision drive the representation. One row is a modelling decision about what the segment represents — it defines what the clustering can learn, before any distance metric, normalisation, or method is chosen.

FAQ

What is the key takeaway from "One Row Is a Modelling Decision: Customer or State?"?

Customer segmentation starts with the observation unit: choose between one stable profile per customer or one behavioural snapshot per subscriber-month, and let the business decision drive the representation. One row is a modelling decision about what the segment represents — it defines what the clustering can learn, before any distance metric, normalisation, or method is chosen.

Who wrote this and what is it about?

This was written by Mahmoud Trigui, Senior Data Scientist. Customer segmentation starts with the observation unit: one profile per customer, or one behavioural snapshot per customer-month.

Comments

Machine Learning Feature Engineering MLForecast Time Series Decomposition Forecasting LightGBM XGBoost Catboost Clustering Segmentation NLP LLMs Web App R Markdown SQL Oracle DB SAS-Guide SAS E-Miner Dataiku BigQuery GCP Python R CRISP-DM Hypothesis Testing ANOVA Data Analytics Dimensionality Reduction Recommendation System Network Analysis Geospace Analysis Spatial Data Embedding Sampling Techniques Decision Rules Data Storytelling CVM Churn Fraud Detection Sentiment Analysis Topic Modeling IBM Watson PowerBI Looker Studio VBA Statistical Learning Ensemble Modeling Stacking Cross-Validation Profiling ABT Construction Plumber Tidyverse Shiny Prophet Deep Learning Scikit-Learn JSON SAS Programming Git VS Code CSS Styling Automated Reporting Outlier Detection Temporal Clustering Startup Survival Pre-Valuation Modeling K-Means Decision Trees Data Science Predictive Modeling SVM LDA Text Classification Weight Prediction Pattern Recognition Real-Time Detection Community Detection Pipeline Automation Data Quality Checks Data Reliability Specification Mapping Business Strategy Marketing Campaigns Try & Buy Frameworks KPI Dashboards Network Quality Sales Analytics Mentoring Statistics Lecturer Remote Work Hybrid Work Consulting Contract Full-Time Freelance Sofrecom Orange Group Tunisia Telecom Kiota Intelligence VC Analytics Series A Prediction Pre-Valuation Modeling Production ML Applied AI Prompt Engineering Business Forecasting Decision Systems Graph Analytics Household Detection Multi-SIM Detection FTTH Forecasting Audit Extraction Infrastructure Classification Pydantic GPT-4 OpenAI API Base64 Classification Zindi Codementor LAAS-CNRS ESSAI MIT xPRO Tunisia ML Competition Cell Tower Analysis Uber Logistics Uber Cape Town Necessary Condition Analysis Behavioral Signals Spike Smoothing Observation Unit Design Dendrogram Ward Clustering VIF Target Encoding Machine Learning Feature Engineering MLForecast Time Series Decomposition Forecasting LightGBM XGBoost Catboost Clustering Segmentation NLP LLMs Web App R Markdown SQL Oracle DB SAS-Guide SAS E-Miner Dataiku BigQuery GCP Python R CRISP-DM Hypothesis Testing ANOVA Data Analytics Dimensionality Reduction Recommendation System Network Analysis Geospace Analysis Spatial Data Embedding Sampling Techniques Decision Rules Data Storytelling CVM Churn Fraud Detection Sentiment Analysis Topic Modeling IBM Watson PowerBI Looker Studio VBA Statistical Learning Ensemble Modeling Stacking Cross-Validation Profiling ABT Construction Plumber Tidyverse Shiny Prophet Deep Learning Scikit-Learn JSON SAS Programming Git VS Code CSS Styling Automated Reporting Outlier Detection Temporal Clustering Startup Survival Pre-Valuation Modeling K-Means Decision Trees Data Science Predictive Modeling SVM LDA Text Classification Weight Prediction Pattern Recognition Real-Time Detection Community Detection Pipeline Automation Data Quality Checks Data Reliability Specification Mapping Business Strategy Marketing Campaigns Try & Buy Frameworks KPI Dashboards Network Quality Sales Analytics Mentoring Statistics Lecturer Remote Work Hybrid Work Consulting Contract Full-Time Freelance Sofrecom Orange Group Tunisia Telecom Kiota Intelligence VC Analytics Series A Prediction Pre-Valuation Modeling Production ML Applied AI Prompt Engineering Business Forecasting Decision Systems Graph Analytics Household Detection Multi-SIM Detection FTTH Forecasting Audit Extraction Infrastructure Classification Pydantic GPT-4 OpenAI API Base64 Classification Zindi Codementor LAAS-CNRS ESSAI MIT xPRO Tunisia ML Competition Cell Tower Analysis Uber Logistics Uber Cape Town Necessary Condition Analysis Behavioral Signals Spike Smoothing Observation Unit Design Dendrogram Ward Clustering VIF Target Encoding