- Field count mismatches are listed by row
- Each row whose field count differs from the header is reported with its line number and actual count. A row with too many fields almost always means an unquoted delimiter inside a value; too few usually means a truncated line.
- Header problems are reported
- Blank headers are named by position, and duplicate headers are reported because they break any conversion to a keyed format, a JSON object or YAML mapping cannot repeat a key.
- Empty values counted per column
- Every column gets a count of blank cells. This reveals both genuinely optional fields and columns that failed to populate during export.
- What cannot be validated
- Without a schema there is no way to check that a column contains valid dates, that a reference exists, or that a number is in range. This validates structure only. Line numbers refer to physical lines, so a quoted value containing a newline shifts them relative to record numbers.