A new dataset arrives with a schema, a count, and a promise. The team writes a loader, runs a sample, sees plausible numbers, and moves on.
The questions that matter are answered by reading rows, and reading rows is the step everyone skips because it does not feel like engineering.
Read twenty rows out loud
Not twenty random rows: twenty spanning the categories, the lengths, and the dates. Read them as a person who would use the output.
You will find things no schema check can: a field that means two things, a category that is really three, dates that are years off.
Check the boring invariants
- Does every row have an id, and are they unique
- Do the date ranges make sense against each other
- Are the counts consistent with the text
- Are empty fields empty or zero
These four checks take an hour and catch most of what a loader silently accepts.
Find the boundary cases
Sort by length, both ends. Sort by date, both ends. Sort by every categorical field and look at the smallest group.
Bugs live in the smallest group and in the longest row.
Write the first findings down
Keep a short file of what surprised you in the first afternoon, with the row ids. It becomes the review checklist for the next batch, and the acceptance criteria for the one after.
Zovda ships each collection through Datuva with a field description that survives contact with the rows. The corpus catalogue is a reasonable place to start reading.
Tell us what your team checks first. We reply within one business day.
