Data Quality

CSV Null and Placeholder Analyzer

Lists the actual strings each column uses to mean nothing, so you can write the replacement rule.

Loading the tool…

Processing happens locally in your browser. What you paste or load is processed by this page and is not uploaded to a server. Nothing is stored unless you use a control that says it stores something, and you can clear anything this site has kept from the privacy page.

How to use this tool

  1. Paste a file that has passed through more than one system.
  2. Select Audit nulls.
  3. Read the literal values column — those are the exact strings your replacement rule has to handle.
  4. Decide separately about the sentinel values; 999999 and 1900-01-01 may be data rather than gaps.

What null analyzer does

Files that have passed through several hands accumulate ways of saying nothing. One system wrote NULL, one wrote N/A, one left the cell blank, and someone typing by hand wrote a dash. Downstream every one of those is a distinct value, so a group-by produces four rows where there should be one and a completeness figure is wrong by however many of them you did not think of.

The output here is meant to be turned straight into a decision, so it lists the literal strings found in each column and how many times each appeared, rather than only counting them. You cannot write a replacement rule from a percentage. Placeholder values like 999999 and 1900-01-01 are reported separately from genuine nulls, because whether those mean missing is a judgement about your data that a tool is not entitled to make for you.

Frequently asked questions

The completeness calculator tells you how much is missing and whether that passes. This tells you what the missing values literally look like, so you can write the rule that normalises them. One produces a number for a report; the other produces the strings you paste into a transformation.

Because whether 999999 or 1900-01-01 means missing is a fact about your data that the tool does not know. Counting them as nulls would silently change your completeness figure; ignoring them entirely would hide a real problem. They are reported in their own column so the decision stays yours.

That the column uses more than one representation — some blanks and some NULLs, say. That is the state you want to fix before loading, because downstream every representation is a distinct value and a group-by will produce a row for each.

Yes. The list is an editable option, comma separated, and matching ignores case and surrounding spaces. Anything you add is then counted as a null token rather than as a value.