Проект python (data/synthetic.csv): 1000 синтетических клиентов и три признака. Временного разреза нет — данные cross-sectional, поэтому вместо «периода» в профиле стоят дубликаты и пропуски. Переключатель меняет колонку под гистограммой.
7 значений вне диапазона 6 строк с spend < 0 (минимум −4 510,24) и 1 строка с income < 0 (минимум −4 726,19) — денежные признаки не обрезаны при генерации: отдельная проблема качества, а не пропуск.
Топ-20 % клиентов дают 31,5 % трат, Gini 0,23 — концентрация есть, но правило 80/20 не выполняется, поэтому ярлык «Pareto» в отчёте проекта сильнее данных. Квартили на сырых 1 005 строках дают 251–252 клиента на сегмент; на дедуплицированных 1 000 (reports/segmentation_report.md) — ровно по 250.