SmartQueryTools

Validate CSV Files Online

Validate CSV file structure in your browser. Check null counts, distinct values, and data types for every column — no upload required.

How to validate CSV files

  1. Drop your file onto the upload area. The report starts as soon as the file has loaded. There are no settings.
  2. Read the four summary cards: total rows, columns, null-heavy columns and all-null columns.
  3. Scan the Column Report table for each column's detected type, null count, percentage of nulls and number of distinct values.
  4. Check the warnings under the table. Columns that are entirely null are flagged in red and columns that are more than half null in amber.

Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.

Worked example

A clinic exports a week of appointments before loading it into a reporting database. The analyst wants to know which fields are reliable before writing any queries.

Input (CSV)

patient_ref,clinic,appointment_date,no_show,notes
P-104,Eastside,2026-06-02,false,
P-221,Eastside,2026-06-02,true,Called to rebook
P-104,Harbour,2026-06-09,false,
P-318,,2026-06-11,false,
P-450,Harbour,2026-06-11,true,

Settings

  • No settings. The report is generated when the file loads.

Result

ColumnTypeNulls% NullDistinct
patient_refVARCHAR00.0%4
clinicVARCHAR120.0%2
appointment_dateDATE00.0%3
no_showBOOLEAN00.0%2
notesVARCHAR480.0%1

The summary cards read 5 rows, 5 columns, 1 null-heavy column and 0 all-null columns. notes is flagged in amber at 80% null. patient_ref has 4 distinct values in 5 rows, which shows P-104 appears twice, so it cannot be used as a unique key. Distinct counts ignore nulls, which is why clinic shows 2 rather than 3.

Working with CSV files

The Type column is the most useful part of the report for a CSV, because CSV has no types of its own. Each type is a guess made from the values. A column you expect to be numeric that shows VARCHAR usually contains at least one value that is not a number, such as "n/a", "-" or "1,200" with a thousands separator. A date column that shows VARCHAR usually has mixed date formats.

Only truly empty fields count as nulls. Placeholder text such as NULL, N/A, none or a single dash is a real value to the CSV reader, so it adds to the distinct count and the null count stays at zero. If the distinct count for a column is a little higher than you expect, those placeholders are a likely cause. Replace them with Find and Replace, then validate again. Compare Distinct with Total rows as well. When they are equal and there are no nulls, the column holds no repeated values and can serve as a key. When Distinct is 1, every non-null row has the same value and the column may not be worth keeping.

Frequently Asked Questions

Why does my numeric CSV column show as VARCHAR?

At least one value in it could not be read as a number. Common causes are "n/a", currency symbols and thousands separators. Filter the column for non-numeric values to find them.

Are empty strings and the word NULL counted as nulls in a CSV?

Empty fields are. The text NULL, N/A or a dash is counted as a value, not a null.

Does Validate change or download my file?

No. It only produces the on-screen report. Nothing is modified and there is no download.

What counts as a null-heavy column?

Any column where more than 50% of values are null. The Null-heavy card counts all-null columns too, so a column that is 100% null is included in both cards.

Do distinct counts include nulls?

No. Distinct counts only non-null values. A column with values A, B and some nulls shows 2.

Related Tools