ds@mcpanalytics.aiEmail your data and your question and get an answer about your own data, with the method shown.Email your data and question. Get an answer.
Can I trust these predictions? Model quality analyses | MCP Analytics
Question

Can I trust these predictions?

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.

See a worked example

How the analyses here work

Worked example

Before building a churn model, what score does it have to beat?

The data. standard_classification_v2.csv, the published sample file for Classification: 600 rows; columns customer_id, region, plan, tenure_months, support_tickets, monthly_charge, churned. 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_classification_v2.csv")))
y = [int(r["churned"]) for r in rows]
p = sum(y) / len(y)
print(len(y), "customers, churn rate", f"{p:.1%}")
print("accuracy of always guessing the larger class:",
      f"{max(p, 1 - p):.1%}")
print("Brier score of always predicting the rate:",
      round(sum((p - v) ** 2 for v in y) / len(y), 3))
plan = {}
for r in rows:
    plan.setdefault(r["plan"], []).append(int(r["churned"]))
for k, v in sorted(plan.items()):
    print(k, len(v), "customers, churn", f"{sum(v) / len(v):.1%}")
600 customers, churn rate 44.8%
accuracy of always guessing the larger class: 55.2%
Brier score of always predicting the rate: 0.247
basic 292 customers, churn 57.2%
enterprise 102 customers, churn 26.5%
pro 206 customers, churn 36.4%

What it says. A model that never looks at the data is right 55.2% of the time by always guessing the larger class, and scores a Brier score of 0.247 by predicting the overall rate for everyone. A churn model is only useful if it beats both on data it was not trained on. Plan alone already separates customers: churn runs from 26.5% to 57.2% across plans.

What it does not say. These are in-sample rates on one file. A fair comparison scores the model on rows it was not trained on; the library analysis holds out part of the data for that, and reports calibration as well as accuracy.

Run Classification on this file or your own, or open its stored sample report.

Sources

Further reading on the method in the worked example. Each reference was looked up and its authors, title, year and venue confirmed between 29 October 2026 and 31 October 2026.

  1. Brier GW (1950). Verification of forecasts expressed in terms of probability. Monthly Weather Review. https://doi.org/10.1175/1520-0493(1950)078<0001:VOFEIT>2.0.CO;2
  2. Stone M (1974). Cross-Validatory Choice and Assessment of Statistical Predictions. J. R. Stat. Soc. B 36(2):111-147 (Crossref page field reads 111-133). https://doi.org/10.1111/j.2517-6161.1974.tb00994.x
  3. He H, Garcia EA (2009). Learning from Imbalanced Data. IEEE Transactions on Knowledge and Data Engineering. https://doi.org/10.1109/tkde.2008.239

By MCP Analytics Team. Updated November 2026. Analysis list from the library catalog.

A delivered report from this list

Feature Importance (What the Model Uses): sample report Open full report →

The stored sample report for Feature Importance (What the Model Uses). Each analysis has its own report layout; open its page to see what it returns.