CSV Data Profile
Inspect CSV column counts, empties, distinct values and duplicate rows locally; export a JSON profile.
This tool runs entirely in your browser. Your data is never uploaded, never stored, and never leaves your device.
Profile CSV empties, distinct values, repeated rows and numeric-looking fields locally, with actual cell values excluded from reports by default.
How to use it
- 1Load or paste CSV and choose its delimiter.
- 2Decide whether the report may include actual cell values.
- 3Profile the complete supported file and download the JSON report.
Example
- Input
- id 001 001 002
- Output
- 3 data rows · 2 distinct rows · 1 repeated row
What happens to your data
The tool does not upload CSV contents. Default reports still contain column names and aggregate counts; optional value details include actual cells. Neither mode guarantees anonymization.
Last updated October 2026
Inspect the shape and completeness of a CSV before importing, comparing or sharing it. See data-row and column counts, distinct full rows, repeated records, empty cells and distinct values in each column. A downloadable JSON report records the checks without requiring a spreadsheet or command-line setup.
Cell values are excluded from the report by default. Enable value details only when you want the five most frequent values and exact numeric minimum and maximum. Even a values-off report still contains column names and aggregate counts, so it is not certified anonymized data.
How it works
Load or paste CSV and select Profile CSV. All supported records are scanned; this is not a sampled estimate. The header is excluded from row statistics. Unique full rows compare the complete sequence of cell strings, including case and whitespace. Repeated rows counts occurrences after the first, not the number of duplicate groups. With A, A, A and B, there are two distinct rows and two repeated rows.
For each column, empty means exactly zero characters. Whitespace-only counts nonempty strings for which trimming removes every character. Distinct values use exact strings and include an empty string when one occurs. A blank cell, a space, the word NULL and the word null are four distinct values. Nonempty includes whitespace-only cells. Text length is measured in Unicode code points, not UTF-8 bytes, UTF-16 code units or visible grapheme clusters. The minimum and maximum lengths include empty cells; a header-only input has no observed length range.
Decimal-compatible counts fields that match a bounded decimal syntax, including signs, decimal fractions and scientific notation. Leading zeros are accepted for this pattern check, but no type is inferred: an account ID can look numeric and must still remain text. Comparison allows 1,024 digits and exponents from −1,000 to 1,000. Nonempty values outside that grammar or limit appear in other nonempty. Currency, formatted dates, grouped numbers and booleans are not separately inferred. No mean, median, standard deviation or representativeness claim is made.
If you enable cell-value details, numeric minimum and maximum are compared exactly without binary floating-point rounding; their original cell spelling is retained. These extrema consider only decimal-compatible cells, so a mixed column's nonnumeric text is not part of its numeric range. The five most frequent exact values include empty and whitespace values; equal frequencies retain first appearance. Values are abbreviated in the visible cards when long, but retained completely in the JSON download.
The report uses the versioned format toolvore-csv-profile-v1. It records includesCellValues explicitly. Switching the checkbox clears the old report so a values-on download cannot remain visible after you opt out. Column names and rare counts may still disclose information; review the complete report before sharing. Profiling does not validate business rules, detect every problem or prove data quality.
Load a UTF-8 CSV or paste text, then choose comma, semicolon or tab explicitly. Inputs are limited to 2 MiB, 10,000 records including the required header, 200 columns and 200,000 cells. Headers must be nonempty and exactly unique. Malformed quotes, unequal field counts and invalid UTF-8 files are rejected, not silently repaired. Quoted commas, escaped quotes and multiline fields stay in their original cells. Output is capped at 10 MiB; exceeding a limit produces an error rather than a partial download.
Processing stays in browser memory; the tool does not upload cell contents or connect to your database. Editing the source removes previous results, and a late file read cannot overwrite a newer edit. Changing output options also clears an old result. Downloads can contain confidential data and remain your responsibility.
Worked example: Distinguish rows from repeated occurrences
- Input
- id,status 001,active 002, 002,
- Result
- 3 data rows · 2 columns · 2 distinct full rows · 1 repeated row status: 2 empty cells · 2 distinct values
The empty status is a distinct value. The repeated row count excludes the first occurrence.
Common use cases
- Spotting empty fields before a database or CRM import
- Checking whether an export unexpectedly repeats full rows
- Documenting a CSV fixture's shape without including cell values
- Inspecting mixed numeric-looking and text fields without coercing identifiers
Frequently asked questions
Does the default report include my data values?+
It excludes cell-value samples and numeric extrema, but includes column names, lengths, distinct counts and other aggregates. That does not guarantee anonymity; review reports before sharing.
Are blank and whitespace-only cells the same?+
No. Empty counts zero-length cells. Whitespace-only counts nonempty cells that become empty when trimmed, and these still count as nonempty in the report.
Does decimal-compatible mean the column should be numeric?+
No. It is only a syntax count. IDs such as 001 may be decimal-compatible while requiring text storage. No schema or data type is inferred.
What is a repeated row?+
An occurrence after the first of the exact same complete row. Three identical records contribute two repeated rows. This differs from counting duplicate groups.
Can this prove my dataset is correct?+
No. Counts describe the supplied file, not its accuracy, completeness against another source, compliance, representativeness or fitness for a high-stakes decision.
Standards and limitations
Related tools
CSV Validator
Check CSV syntax, row widths and headings without silently repairing data. Download a diagnostic report.
CSV Deduplicator
Remove duplicate CSV records by chosen columns, keep exact values and review removed rows locally.
CSV Sort
Sort CSV locally by up to three text or exact decimal keys, preserving IDs and equal-key row order.
CSV Sample
Take first, last or seeded CSV samples and download a reproducible selection report.