Free · runs in your browser

CSV auditor

Drop a CSV and find out, before you train anything, which columns could ruin a model: identifiers, columns that give the target away, suspicious proxies. The check is the MatrixAI core itself, running inside this page.

Audit a CSV

Audit a CSV

1. Your CSV

Drop the file here, or choose it. Up to 10 MB and 50,000 rows. It stays on this computer.

Your CSV does not leave your computer

The file is read and analysed in this page, by the MatrixAI core running in your browser (Python compiled to WebAssembly). No request carries its bytes: the only network traffic is the download of the engine, which are static files from this same site.

You can check it yourself: open the developer tools of your browser, go to the network tab, and audit a file. You will see the engine being downloaded and nothing else.

This page does not upload the file. It does not anonymise it either: if the data are personal, the rules that apply to them on your computer still apply.

What it does

  • Profiles every column: type, distinct values, empty cells, range.
  • Runs the core’s risk diagnosis on the problem you describe: structural errors (a column that reproduces the target, a column known only after the outcome, the unit identifier used as an input), suspicions that need context (probable identifiers, columns whose values equal another one, very high association with the target, categories that almost determine it) and the limits of what you can conclude.
  • Writes every finding in the core’s own words, in English and Spanish. This page adds no diagnosis of its own.

What this is not

  • It does not train anything and does not tell you whether a model will work.
  • A suspicion is not proof of leakage. A very high correlation can be legitimate (last year’s salary predicts this year’s), and the core says so: it asks for context, it does not convict.
  • No findings is not proof that there is no leakage. The core cannot see how a column was computed, and always lists that as a limit.
  • A column “known only after the outcome” is only checked if you declare it; the core never guesses it from names, and the name hints it shows are hints.
  • It is not a clinical validation or a regulatory assessment.

What the first load costs

The engine is a Python interpreter (Pyodide) plus the MatrixAI core: about 6.2 MB over the network, once, and about 4 s of start-up after it is downloaded (measured in our automated test with no network; your download time comes on top, and the page shows what your browser measured when it finishes).

It is only downloaded when you press the button, never before. If your browser keeps it in its cache, the next visits will not download it again.

Limits

Up to 10 MB and 50,000 rows. Measured with the real core: 50,000 rows × 30 columns (10.6 MB) take about 16 s and 750 MB of memory in the browser. Beyond that a phone could run out of memory, and the core itself starts working on a sample above 50,000 rows, so nothing is gained.

A bigger file is rejected before anything is downloaded, and the page says so.

Open code

The MatrixAI core is open source (AGPL-3.0): the package this page downloads (matrixai-nucleo.tgz) is its source code. The interpreter is Pyodide (MPL-2.0), served from this same site.

And after the audit?

The Studio makes several engines compete on your data and tells you why one wins. Try it in the demo with public or made-up data, or download it to work with your own.

Do you already use a risk score? Check whether it works on your cases.