← Back to all products

Customer Segmentation Toolkit

$39

RFM analysis, customer lifetime value calculation, churn prediction models, and personalized campaign targeting scripts.

📁 19 files
MarkdownYAMLPython

📄 Product Preview

Try the interactive reader and demo tools below, or get the full product with all content unlocked.

📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample

📁 File Structure 19 files

customer-segmentation-toolkit/ ├── LICENSE ├── README.md ├── configs/ │ └── segmentation_config.yaml ├── data/ │ ├── sample_customers.csv │ └── sample_transactions.csv ├── free-sample.zip ├── guide/ │ ├── 01-overview.md │ ├── 02-rfm-analysis-for-customer-segmentation.md │ └── 03-customer-lifetime-value-and-churn-predic.md ├── guides/ │ └── segmentation_guide.md ├── index.html ├── src/ │ ├── __init__.py │ ├── campaign_targeting.py │ ├── churn_predictor.py │ ├── clv_calculator.py │ ├── rfm_engine.py │ └── segment_definitions.py └── tests/ └── test_segmentation.py

📖 Documentation Preview README excerpt

Customer Segmentation Toolkit

A complete Python pipeline for customer segmentation: RFM scoring, lifetime value estimation, churn prediction, segment classification, and campaign targeting — all from raw transaction data.

What You Get

  • RFM Scoring Engine — Recency-Frequency-Monetary analysis with quintile scoring and named segment mapping (Champions, At Risk, Dormant, etc.)
  • CLV Calculator — Historical and predictive customer lifetime value with NPV discounting and tier assignment
  • Churn Prediction Model — Feature engineering pipeline + logistic regression / random forest classifier (scikit-learn, guarded). Falls back to an effective rule-based scorer when sklearn is not available
  • Segment Definitions — 8 unified segments combining RFM, CLV, and churn data with recommended marketing actions for each
  • Campaign Targeting — Export audience lists for email platforms (Mailchimp/Klaviyo-ready CSV) and ad platforms (hashed emails for lookalike audiences), plus auto-generated campaign briefs
  • Sample Data — Customer and transaction CSVs ready to test the full pipeline

Project Structure


customer-segmentation-toolkit/
├── README.md
├── LICENSE
├── .gitignore
├── src/
│   ├── __init__.py
│   ├── rfm_engine.py              # RFM scoring & segmentation
│   ├── clv_calculator.py          # Customer lifetime value
│   ├── churn_predictor.py         # Churn prediction (ML + rules)
│   ├── segment_definitions.py     # Unified segment classification
│   └── campaign_targeting.py      # Audience export & campaign briefs
├── data/
│   ├── sample_customers.csv       # 30 customer profiles
│   └── sample_transactions.csv    # 50 transaction records
├── tests/
│   └── test_segmentation.py       # Comprehensive test suite
├── configs/
│   └── segmentation_config.yaml   # Configuration reference
└── guides/
    └── segmentation_guide.md      # Detailed usage guide

Quick Start


# Run RFM analysis on sample data
python -m src.rfm_engine data/sample_transactions.csv

# Compute customer lifetime value
python -m src.clv_calculator data/sample_transactions.csv

# Run churn prediction
python -m src.churn_predictor data/sample_transactions.csv

# See segment definitions
python -m src.segment_definitions

# Run all tests
python -m pytest tests/ -v

Usage Example



*... continues with setup instructions, usage examples, and more.*

📄 Code Sample .py preview

src/campaign_targeting.py """ Campaign Targeting & Export ============================ Takes segment assignments and produces audience lists ready for email platforms (Mailchimp, Klaviyo, etc.) and ad platforms (Meta, Google Ads). Generates: - CSV audience exports with customer attributes and segment tags - Platform-specific formatted files - Campaign brief templates with recommended messaging per segment - Suppression lists (e.g. exclude churned customers from acquisition ads) Usage:: targeter = CampaignTargeter(customer_segments) targeter.export_email_list("output/email_audience.csv", segment="At Risk") targeter.export_ad_audience("output/meta_lookalike.csv", segment="VIP") brief = targeter.campaign_brief("At Risk") """ from __future__ import annotations import csv import json import logging from dataclasses import dataclass, field from pathlib import Path from typing import Any, Dict, List, Optional, Sequence logger = logging.getLogger(__name__) # --------------------------------------------------------------------------- # Data structures # --------------------------------------------------------------------------- @dataclass class CustomerProfile: """Customer record enriched with segmentation data.""" customer_id: str email: str segment: str clv_tier: str churn_risk: str rfm_segment: str total_spend: float = 0.0 total_orders: int = 0 last_purchase_date: str = "" # ... 272 more lines ...
Buy Now — $39 Back to Products