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.
Create an analysis: how it works | MCP Analytics
Create

Commission an analysis for a question nobody has asked yet.

You describe what you want to know in plain English. We work out which method answers it, write the code, check the result, and hand back a report, plus the analysis itself, which is yours to keep and re-run.

Start a build Not sure yet? Start from something prebuilt →

Opens your account. You see the plan before anything is built.

  1. You state the questionIn your own words, on your own data. No method name required: working out which test applies is our job, not something you need to know first.
  2. We draft the approachThe question is classified, the data profiled, and a specification written: what will be computed, on which columns, and why that method and not another.
  3. It gets built and checkedCode is written and run on your data, and the output is checked before it reaches you.
  4. You get a module, not just a fileThe report is the visible part. Underneath it is a re-runnable analysis you own: point it at next quarter's data and get the same method applied again.

How deep it goes

The same question can be answered at different depths, from a quick read to a full study with models and diagnostics. The depth is worked out from the question and the data, and the plan shows it before anything is built.

Worked example

Which employee attributes actually predict attrition? (asked in plain English of the public IBM HR attrition dataset)

The data. card_data.json, the numbers file published with the delivered report IBM HR Employee Attrition Drivers. The underlying data is the public IBM HR attrition dataset.

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 json
from math import exp, sqrt
card = json.load(open("card_data.json"))
table = card["rf_data"]["summary_table"]["tables"]["attrition_by_segment"]
ot = {r["segment_value"]: r for r in table if r["segment"] == "Overtime"}
yes, no = ot["Yes"], ot["No"]
p1 = yes["attrited"] / yes["headcount"]
p0 = no["attrited"] / no["headcount"]
rr = p1 / p0
se = sqrt(1 / yes["attrited"] - 1 / yes["headcount"]
          + 1 / no["attrited"] - 1 / no["headcount"])  # log risk ratio
print("overtime:", yes["attrited"], "of", yes["headcount"], f"left ({p1:.1%})")
print("no overtime:", no["attrited"], "of", no["headcount"], f"left ({p0:.1%})")
print("risk ratio", round(rr, 2), "95% interval",
      round(rr * exp(-1.96 * se), 2), "to", round(rr * exp(1.96 * se), 2))
overtime: 127 of 416 left (30.5%)
no overtime: 110 of 1054 left (10.4%)
risk ratio 2.93 95% interval 2.33 to 3.68

What it says. The delivered report's own table shows 30.5% of employees who worked overtime left, against 10.4% who did not: overtime workers left about 2.9 times as often, with a 95% interval of 2.33 to 3.68. Recomputing a headline figure from the published table is a check anyone can repeat on this report.

What it does not say. This is a raw comparison of two groups. Overtime goes with job role and level, which the report's logistic regression adjusts for; there the odds ratio for overtime is 5.97 (95% interval 4.20 to 8.55). An odds ratio is not a risk ratio and runs larger when the outcome is common, so the two figures are not meant to match. Neither is proof that overtime causes attrition.

Open the full report to see the methods the build chose and the diagnostics behind them.

Sources

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.

  1. Cox D (1958). The Regression Analysis of Binary Sequences. Journal of the Royal Statistical Society Series B: Statistical Methodology. https://doi.org/10.1111/j.2517-6161.1958.tb00292.x
  2. Chen T, Guestrin C (2016). XGBoost. Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. https://doi.org/10.1145/2939672.2939785

By MCP Analytics Team. Updated November 2026.