text
| 1 | # Checks by column type |
| 2 | |
| 3 | ## Identifiers |
| 4 | |
| 5 | - Distinct count equals row count. If not, the key is not the key. |
| 6 | - No nulls. A null id is a broken row. |
| 7 | - Consistent format. Mixed formats mean two sources merged. |
| 8 | - Check for leading zeros lost to a numeric read. Zip codes and account numbers are the |
| 9 | usual casualties. |
| 10 | |
| 11 | ## Numeric |
| 12 | |
| 13 | - Read as numeric, or did one bad value force text? |
| 14 | - Min and max physically possible? |
| 15 | - Zeros: real measurements, or missing values wearing a disguise? |
| 16 | - Negatives: possible for this quantity? |
| 17 | - Suspiciously round numbers in quantity suggest manual entry or a default. |
| 18 | - Units consistent throughout? Currency, weight and time are the usual mixed columns. |
| 19 | |
| 20 | ## Categorical |
| 21 | |
| 22 | - Distinct values, listed. Read them. |
| 23 | - Same category, different spelling: case, whitespace, punctuation, abbreviation. |
| 24 | - A catch-all value like "Other" or "Unknown" holding a large share hides structure. |
| 25 | - Categories present in only part of the date range mean a taxonomy change. |
| 26 | |
| 27 | ## Dates and times |
| 28 | |
| 29 | - Parsed as dates, or still text? |
| 30 | - Time zone: recorded, assumed, or mixed? Mixed is the common silent disaster. |
| 31 | - Any future dates? Any at the epoch, or at 1900-01-01? |
| 32 | - Gaps: whole days or weeks missing means a pipeline outage. |
| 33 | - Day-first versus month-first ambiguity: check whether any day exceeds 12. |
| 34 | |
| 35 | ## Text |
| 36 | |
| 37 | - Length distribution. A cluster at exactly 255 means truncation upstream. |
| 38 | - Leading or trailing whitespace. |
| 39 | - Encoding damage: mojibake, replacement characters, doubled encoding. |
| 40 | - Embedded delimiters that may have shifted columns during a bad parse. |
| 41 | |
| 42 | ## Booleans |
| 43 | |
| 44 | - How is it encoded? True/False, 1/0, Y/N, yes/no, or all of them in one column. |
| 45 | - Is null a third state with meaning, or just missing? |
| 46 | |
| 47 | ## Across columns |
| 48 | |
| 49 | - Do totals equal the sum of their parts? |
| 50 | - Do dates order correctly: created before updated, start before end? |
| 51 | - Do foreign keys resolve? Count the orphans. |
| 52 | - Are mutually exclusive flags actually exclusive? |
| 53 |