CSV Data Quality Checker
Open a CSV or TSV file to see potential data-quality issues: missing values, duplicate rows, unusual numeric values, and format or consistency problems. Every finding shows its evidence, and nothing is uploaded.
What this tool answers
The CSV Profiler answers “what is in my data?”. This tool answers a different question: “what potential problems does my data have?”. It runs a fixed set of checks and reports what it actually finds, with the exact count and percentage behind every finding. It does not compute a quality score, and it does not fix anything — it detects and explains, so you can decide what matters for your dataset.
What is checked
- Missing (NULL) and whitespace-only values, per column
- Exact duplicate rows (every column matches)
- Constant and low-cardinality columns
- Potential numeric outliers, using a standard IQR (interquartile range) rule
- Columns that look like they hold email addresses or URLs, and values that do not match
- Columns that look like YYYY-MM-DD dates, and values that do not match
- Values that repeat with inconsistent capitalization (for example “Spain” and “SPAIN”)
Each finding is labelled issue (a defined format was violated), warning (a pattern worth attention, such as a high missing-value percentage or a duplicate count above zero), or observation (a factual pattern, such as low cardinality, that is not necessarily a problem). “Show all checks performed” lists every check that ran, including the ones that found nothing and the ones that did not apply to a particular column.
These are heuristics, not verifications
The email and URL checks are conservative syntax patterns, not real verification: this tool never sends a network request, never checks whether an email address or website actually exists, and never fetches a URL found in your data. A column is only treated as “email-like” or “URL-like” once most of its non-null values already match the pattern; the remaining values are then reported. Outliers are “potential outliers” computed by a documented rule, not confirmed errors. Casing and low-cardinality findings are observations, not verdicts.
Same definitions as the Profiler
Null, empty and whitespace-only values are defined exactly as in the CSV Profiler, and duplicate rows use the same definition too: rows that would be removed by keeping only one copy of each distinct row. One detail carried over from there: DuckDB's CSV reader turns every blank field into a missing (NULL) value, so this tool's missing-value check is what actually catches blank CSV fields.
Browser-local processing
Every check runs as a SQL query against your file inside DuckDB, running as WebAssembly in your browser. Your file is not uploaded. See the privacy page for what is and is not verified about that.
Large files
This tool warns you above roughly 100 MB, warns more strongly above roughly 500 MB, and declines to open a file above roughly 2 GB. Duplicate-row detection compares every column of every row and is skipped above roughly 500 MB; when that happens, it is shown as “Skipped (large file)”, never as zero duplicates.
Related tools
Related reading
- What Is Data Quality?A concrete definition: the specific, checkable problems it covers and why language matters.
- How to Find Duplicate Rows in a CSV FileWhy sorting doesn't find duplicates, and where duplicate detection stops working at scale.
- How to Find Missing Values in a CSV FileNULL, an empty string and a whitespace-only value are three different things. Here's why it matters.