How to analyze a CSV from structure to evidence
Validate CSV structure, define each column, profile missing and distinct values, summarize numbers, and keep conclusions inside the evidence boundary.
Analyze a CSV in layers. First prove that rows and quoted fields parse consistently. Then document what each column is supposed to mean, count missing and distinct values, summarize genuinely numeric columns, inspect representative records and compare the findings with explicit quality rules. A complete column is not necessarily accurate, and a small descriptive profile cannot establish causes or representativeness.

Validate the dialect and table shape first
Confirm the separator, character encoding, line endings, header policy and quoting rules before counting anything. A comma inside a quoted field is data, while an unmatched quote or short row is a structural error. Record the chosen dialect so another reviewer can reproduce the parse.
- Retain an untouched copy of the source export.
- Check whether a header is present and each data row has the same field count.
- Test quoted commas, line breaks and doubled quotes with a small fixture.
- Stop on malformed structure instead of shifting later cells into the wrong columns.
Write a contract for each important column
A header is a label, not a schema. For each critical field, document the meaning, unit, lexical format, permitted values, null policy, collection period and whether uniqueness is expected. Keep identifiers such as 001 as text when leading zeroes carry identity rather than quantity.
Measure completeness and uniqueness without calling them accuracy
Count empty cells by column and exact duplicate records, then compare those observations with the contract. Completeness describes whether expected values are present; it does not prove that present values match reality. A repeated region can be legitimate even when an order identifier must be unique.
Summarize numbers without filling gaps silently
For columns that are genuinely numeric, start with present-value count, minimum, maximum and a simple location measure such as mean or median. Keep missing values outside the calculation unless a documented method justifies imputation. A large or small value is a review candidate, not automatically an error.
Inspect records, assumptions and source coverage
Look at the rows behind surprising counts and compare the slice with the full export, collection window and intended population. Test only assumptions that matter to the planned use. Document unresolved definitions, missing groups, transformations and sampling limits alongside the result.
Check the primary references
Check the source against the result
A synthetic order CSV has four data rows and the columns order_id, region, total_cents and refunded. One region contains a quoted comma. The fourth total_cents cell is empty; the other amounts are 2400, 4100 and 1300.
The file parses as four equally wide data rows. It has four columns, one missing cell, no exact duplicate row and three complete columns. total_cents is the only consistently numeric column among present values, with minimum 1300, maximum 4100 and mean 2600.
Those facts do not reveal why the amount is missing, whether it should be imputed, whether the four regions represent a larger population, whether any amount is erroneous or whether the extract is fit for a business decision. Those questions require the column contract, collection context and source owner.
Start with a local column profile
Check one bounded CSV for row width, missing cells, exact distinct values, duplicates and conservative numeric summaries before making domain claims.
Open CSV Analyzer