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
Save and share
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
- The report finds structural problems, not wrong values. A price recorded as 120 instead of 1200 is present, numeric and unique — it passes every check here. Outlier detection is the tool for that half of the problem.
- Duplicate detection compares whole rows exactly as written. Two records for the same order with a different timestamp are not duplicates by this definition, even though they may be duplicates in every sense that matters to you.
- The 70% threshold for calling a column numeric is a heuristic. A column of numbers with a handful of "n/a" entries is correctly detected; a column of postal codes will also be called numeric, which is technically right and analytically wrong.
- Missing values are only detected as empty cells. A column where absence is encoded as 0, −1 or "unknown" looks complete here, and that encoding is one of the most common ways missing data hides.
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.