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.
Groups inside groups: which analyses fit this data | MCP Analytics
Data shape

Groups inside groups

By MCP Analytics Team | Published , updated

One row per customer is a different problem from one row per customer per month. The shape of the file narrows which methods can apply to it.

See a worked example

How the analyses here work

Groups inside groups: prebuilt analyses

The analyses filed under this data shape. Each card opens the analysis page, where you can run it on a file. Cards marked Coming soon are still being built.

Worked example

Do the four raters agree on quality scores, or does it depend on who scored the sample?

The data. standard_icc_v2.csv, the published sample file for Intraclass correlation: 120 rows; columns Sample ID, Rater Name, Quality Score, Session. 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_icc_v2.csv")))
raters = sorted({r["Rater Name"] for r in rows})
by = {}
for r in rows:
    if r["Quality Score"]:  # first score per rater and sample
        by.setdefault(r["Sample ID"], {}).setdefault(
            r["Rater Name"], float(r["Quality Score"]))
full = [list(v.values()) for v in by.values() if len(v) == len(raters)]
n, k = len(full), len(raters)
grand = sum(map(sum, full)) / (n * k)
msb = k * sum((sum(s) / k - grand) ** 2 for s in full) / (n - 1)
msw = sum((x - sum(s) / k) ** 2
          for s in full for x in s) / (n * (k - 1))
icc = (msb - msw) / (msb + (k - 1) * msw)
print(n, "of", len(by), "samples scored by all", k, "raters")
print("one-way ICC(1):", round(icc, 3))
28 of 30 samples scored by all 4 raters
one-way ICC(1): 0.878

What it says. An intraclass correlation of 0.88 means about 88% of the spread in scores comes from real differences between samples, and the rest from raters disagreeing on the same sample. Samples sit in groups of ratings here, which is why the variance is split by level rather than treating every score as independent.

What it does not say. Only the 28 samples that all 4 raters scored are used; 2 were incomplete. A one-way ICC does not separate a rater who is consistently harsh from random disagreement; the library analysis reports the two-way forms as well.

Run Intraclass correlation 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 on 30 October 2026.

  1. Bland JM, Altman DG (1986). Statistical methods for assessing agreement between two methods of clinical measurement. The Lancet. https://doi.org/10.1016/S0140-6736(86)90837-8
  2. Bland JM, Altman DG (1999). Measuring agreement in method comparison studies. Statistical Methods in Medical Research. https://doi.org/10.1177/096228029900800204

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

A delivered report from this list

Multi-Rater Agreement (Fleiss Kappa): sample report Open full report →

The stored sample report for Multi-Rater Agreement (Fleiss Kappa). Each analysis has its own report layout; open its page to see what it returns.