Data Quality

Column Pattern Detector

Works out what each column holds and lists the rows that do not match it.

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 the data you are about to load somewhere.
  2. Select Detect patterns.
  3. Check that the detected type of each column is what you expected it to be.
  4. Go to the rows listed in the last column — those are where the load will fail.

What pattern detector does

A column is usually one thing, and the interesting part is the handful of values that are not. Knowing a column is 98% email addresses is mildly useful; knowing which 2% are not, and on which rows, is what you act on, because those are the rows where a load will fail, a join will miss, or a validation rule you have not written yet will one day fire.

Each column is classified against a list of recognisable shapes — email, URL, UUID, IP, ISO date, currency amount, postcode, integer — and where none fits, values are reduced to a mask so that codes like AB-12345 and CD-67890 are seen as the same shape rather than two. Columns that are genuinely free text are reported as free text rather than having five arbitrary rows listed as deviations from a name.

Frequently asked questions

Every value is tested against a list of recognisable shapes — email, URL, UUID, IP address, ISO date, currency amount, postcode, integer and so on — and the most common match wins. Where nothing matches, values are reduced to a mask of letters and digits so that codes of the same shape group together.

Because there is no dominant shape to deviate from. When fewer than half the values share a mask, listing five of them as "does not fit" would be noise dressed up as a finding, so the column is reported honestly as free text instead.

No. Missing values are excluded before the pattern is worked out, because a gap is a completeness problem rather than a format one. Use the completeness calculator for those.

Two things. Check that each column was detected as the type you expected, which catches a column that has quietly become something else, and go to the specific rows listed as not fitting, which are where a load or a join will fail.