Blog
Statistics on data

Data quality report online

The report to run before any other. It profiles every column of your table — how much is missing, how many distinct values there are, whether the column is a number or text, whether it is a constant — and counts duplicate rows. Most analytical mistakes are actually data problems that this would have caught.

Your data never leaves this device

Your data

Paste a table straight from Excel or Google Sheets, or drop a CSV file. Nothing is uploaded anywhere — the whole calculation runs inside this browser tab.

CSV, TSV or plain text. Files saved in windows-1251 are detected and re-read automatically, so Cyrillic headers do not turn into garbage.

Parsing options

Result

The drawing library is downloaded only when you press the button, and only on this page.

This page has no server side at all. The table you paste is parsed by JavaScript inside your own browser, the chart is drawn on a canvas element on your machine, and the export file is assembled locally. Nothing is uploaded, stored or written to any log. You can disconnect from the network after the page has loaded and everything will still work — which is the simplest way to verify the claim yourself.

Facts and limits of this method

Per column Detected type, missing count, missing share, distinct value count
Type detection Numeric if at least 70% of non-empty cells parse as numbers
Duplicate rows Exact matches across every column, counted
Constant columns Columns with one distinct value or fewer, flagged separately
Worst column The one with the most missing values, reported at the top
Works on Any table, numeric or not

When it misleads you

How it is calculated

Every column is profiled independently: its non-empty cells are counted, its distinct values are counted, and it is classified as numeric or text according to whether at least 70% of its non-empty cells parse as numbers. That threshold tolerates a few stray labels without misclassifying a genuinely numeric column.

Duplicate rows are found by comparing the full row content. The count is reported prominently because duplicates silently inflate every subsequent total, average and correlation, and they are invisible in a spreadsheet with more than a screenful of rows.

Constant columns — those with one distinct value or none — are flagged separately. They carry no information, they break correlation and regression by having zero variance, and they are usually the residue of a filter applied upstream.

The column with the most missing values is called out at the top with its percentage, because that is the single number that most often determines whether an analysis is worth starting. A column that is 60% empty rarely supports the conclusion someone wants to draw from it.

Questions and answers

What should I do about missing values?

First find out why they are missing. Values absent at random can often be dropped or imputed; values absent for a reason — customers who did not answer, machines that failed to report — carry information, and dropping them biases everything that follows.

My duplicate count is zero but I can see duplicates.

Detection requires every column to match exactly. Rows differing by a timestamp, an id or a trailing space are not exact duplicates. Remove the differing column and re-run to check.

Why is my postal code column called numeric?

Because its values parse as numbers. The detection is syntactic, not semantic. Treat the type as a hint: identifiers, codes and phone numbers are numeric-looking text that should never be averaged.

What is a constant column doing in my data?

Usually it is the residue of a filter — everything was exported for one region, one year or one status. It carries no information and will break correlation and regression, which need variance to work.

Is my data uploaded?

No. The entire profile is computed in your browser, which is what makes it safe to run on data you are not allowed to send anywhere.

Related tools

All tools