The ledger always adds up
Every logical record is counted exactly once: OK, accepted with warning, repaired, rejected, header, preamble, comment or skipped blank. Every byte is counted too, including a byte-order mark and anything after the last complete record in a sample. Both equations are printed and checked. If they ever disagree, that is shown as a failure.
Strict and recovery modes
Recovered records are counted as repaired with the policy that changed them. Switching policies reparses everything, so record numbers and counts are recomputed instead of patched.
| Problem | Strict | Recovery options |
|---|---|---|
| Quote inside an unquoted field | Rejected | Keep as text, or reject |
| Text after a closing quote | Rejected | Append to the field, or reject |
| Quoted field never closed | Rejected | Close at end of input, close at line end (changes record boundaries), or reject |
| Wrong number of fields | Rejected | Keep with warning, pad short records (long ones rejected), or reject |
Manual repair with provenance
Select a finding, edit the raw text of that record and preview how it parses before applying. A patch only applies if the source is still at the revision and bytes you edited; it is kept in a history with its old and new text, and can be undone. After every patch the whole file is parsed again and old diagnostics are discarded.
Rejected records can be exported as raw fragments with their byte and line positions. That file is JSON, deliberately not CSV, because broken fragments may not parse on their own.
Questions
How is the expected number of fields decided?
From the header when there is one; otherwise from the most common width among data records. The ledger says which source was used and shows the full width distribution.
What does “evidence of truncation” mean?
If the input ends inside a quoted field, or in the middle of a multibyte character, the file may have been cut off. ParseCSV reports that as evidence, not proof.
Can I share the findings without sharing the data?
Yes. The diagnostic report in the Export tab contains counts, dialect and positions only. Raw excerpts and the file name are included only if you tick that option.