Grading Your Data: A Practical Data-Quality Scorecard
A data-quality grade turns vague unease about your spreadsheet into a number you can act on. Here is the measurement framework: completeness, uniqueness and validity, scored per column.
"The data looks fine" is a feeling, not a measurement. A data-quality scorecard turns that feeling into three numbers you can defend: completeness, uniqueness and validity. Compute them per column, roll them into a grade, and you can finally say — with evidence — where the dataset is trustworthy and where it is not.
The Three Dimensions
Completeness is the share of rows where a column actually has a value:
completeness = non_empty / total_rows
An empty cell is not automatically a problem — but a column at 60% completeness means a third of your analysis of that field is running on guesswork or implicit imputation.
Uniqueness measures how many distinct values exist relative to the row count. A perfect identifier (order ID, customer ID) should approach 100%. A column that is 95% unique when you expected an identifier is a red flag for duplicate or mis-entered records. The same metric also catches the opposite problem: an "identifier" that is only 40% unique is not an identifier at all.
Validity is the share of values that parse as the type the column claims to be — a date column where 12% of values do not parse as dates, a numeric column where 5% of values contain stray text. Validity is where messy exports surface first: mixed formats, locale differences (1,000.50 vs 1.000,50), and embedded units.
Scoring and Grading
For each column, score each dimension 0–100. A workable grading scheme, the kind behind the AA/BB/CC grades shown in KPI Master, looks like this:
- A (90–100): trustworthy as-is; use directly.
- B (75–89): usable, but flag the specific columns below the threshold in the report.
- C (60–74): use with explicit caveats; investigate before decisions rest on it.
- D (<60): do not build conclusions on this data until it is cleaned or re-exported.
Blend per-column scores into a dataset grade with a simple weighted average — or, more conservatively, let the worst important column cap the dataset grade. A dataset where one critical column is 50% complete should not earn an overall A just because nine other columns are pristine.
What to Do With the Grade
A grade is only useful if it changes behaviour:
- Fix the exporter, not the file. A recurring validity failure (dates in three formats) is almost always a source-system issue. File a bug against the export, and document the workaround meanwhile.
- Document thresholds. Write down, next to the metric, what a healthy value looks like for that column — 100% uniqueness for IDs, >95% completeness for money fields. Then a regression is visible the moment it appears.
- Escalate by exception. Stop reviewing every dataset in full. Review the ones whose grade dropped, or whose critical columns fell below threshold. Your attention goes where the risk is.
The point of the scorecard is not to shame the data. It is to make the decision "this dataset is good enough to decide on" explicit, repeatable, and — most importantly — checkable before the next export quietly changes the rules.