By MCP Analytics Team | Published , updated
Compare two groups? Find what drives an outcome? Spot a trend? The question decides which statistics fit, so it is the first thing to get right.
The analyses filed under this question. Each card opens the analysis page, where you can run it on a file. Cards marked Coming soon are still being built.
Natural groups in your data: how many there are, what sets each apart, how clearly they separate.
How do two categorical variables map together? Biplot of category associations, brands vs attributes, segments vs behaviors.
The shared factors behind several measures: how many the data accepts, what loads on each factor, and how much of every measure they explain.
Where does my data's family tree naturally split?
What will my customers be worth?
Which items sell together: every pairing with its support, confidence and lift, tested and adjusted for testing many pairs, then ranked.
Which few causes drive most of the problem?
Reduces many measures to a few dimensions, tested against random data, and names what drives each.
Which customers are most valuable and which are slipping away?
What hidden segments exist in categorical responses? Model-based clustering for survey and choice data.
The data. standard_rfm_v2.csv, the published sample file for RFM segmentation: 2,139 rows; columns Order ID, Customer ID, Order Date, Order Amount, Channel. Sample data, not a customer's.
The calculation. Python, standard library only. This exact code ran against the file when this page was built, and printed the output below it.
import csv
rows = list(csv.DictReader(open("standard_rfm_v2.csv")))
spend = {}
for r in rows:
a = r["Order Amount"]
if not a or float(a) <= 0:
continue # blank or refund rows are not purchases
c = r["Customer ID"]
spend[c] = spend.get(c, 0) + float(a)
top = sorted(spend.values(), reverse=True)
k = round(len(top) * 0.2)
print(len(rows), "rows,", len(spend), "customers with a purchase")
print(f"top 20% ({k} customers) bring",
f"{sum(top[:k]) / sum(top):.1%} of revenue")
2139 rows, 599 customers with a purchase
top 20% (120 customers) bring 74.8% of revenue
What it says. The fifth of customers who spent most bring 74.8% of revenue in this order file. That concentration is why segmenting customers by recency, frequency and spend usually beats treating them as one average customer.
What it does not say. Spend to date is backward-looking: a big spender who has stopped buying counts fully here. Refund rows were left out rather than netted against purchases. The library analysis scores recency and frequency as well and names the segments.
Run RFM segmentation on this file or your own, or open its stored sample report.
Further reading on the method in the worked example. Each reference was looked up and its authors, title, year and venue confirmed on 27 October 2026.
The stored sample report for Cluster analysis. Each analysis has its own report layout; open its page to see what it returns.
Tell us what went wrong, in your own words. We capture the page you're on automatically, so no need to describe where you are.