Point Veritix at a folder of CSV exports or an Excel workbook. It profiles every column, works out which files are supposed to join to which, checks that those joins actually hold, and reports what is wrong — with the query that proves each finding, so you can check it rather than take it on trust.
It runs on your machine or in your own cloud. There is no vendor in the middle of your commercially sensitive data.
Windows and Linux, 64-bit. One file — no installer, no runtime to install alongside it, no account, nothing to register. Free and open source under the AGPL; commercial terms for anyone who needs them.
Most of what is wrong with a business export is not wrong in a way that makes anything fail. It is wrong in a way that makes the next thing downstream quietly produce a different number.
Values that contradict what the column claims to be. Placeholders
like N/A, -1 and 999 that
defeat every null check downstream. Dates written in two formats,
where a single-format reader will either fail on the rest or —
worse — parse them into the wrong day.
A directory is one dataset, not a pile of files. Veritix infers the keys that join your exports to each other and checks that the references resolve. That is where most real defects live, and no tool looking at one file at a time can see them.
Expectations you write down once, in a YAML file, and have checked on every audit afterwards. A rule that matched nothing is reported as such — silence means either “your data is fine” or “this never ran”, and the second is dangerous when somebody is relying on it.
What this export broke that the last one did not, including rows and columns that quietly stopped arriving. A build can fail on the direction rather than the state, so a team with fifteen years of accumulated mess can still refuse to make it worse.
A finding names the statement that produced its number. Veritix re-runs all of them before it writes the report, and a finding that no longer reproduces is dropped rather than printed.
A fresh install talks to nobody. No model provider is configured, telemetry export is off, and a scheduled audit tells nobody until you give it somewhere to tell. Reports omit verbatim cell values unless you ask for them, and say so in the output.
Columns are described by derived shapes instead:
CUS-004417 is reported as XXX-999999 —
precise enough to reason about, and useless to anyone who obtains
the report.
The optional agentic auditor is off until you switch it on. When it is on, the model sees schemas, aggregates, distributions and shapes — never cell values. That boundary is enforced by the type system rather than by diligence: a tool that tried to return raw values would fail to compile into a leak.
Afterwards you can read every payload that left the machine, verbatim, on the run's trace. Or point it at a model on your own hardware and have no network egress at all.
Veritix with no model is a complete deterministic auditor, and that is the default. Turning the agent on adds a second kind of finding — one that needed reasoning rather than a rule — without adding a second kind of trust.
The model decides what to investigate and writes the explanation. It never reports a number it made up. To record a finding it has to supply the query that would demonstrate the claim and state what that query returns. Veritix runs the query. A disagreement records nothing: it hands back the real figure and asks again.
What survives that is then re-run alongside the deterministic findings before the report is written, so it is measured twice. A model-proposed finding can sit in the same list as a rule-based one precisely because neither of them got there by being believed.
Unzip and double-click Start Veritix. It starts the server and opens your browser on the interface, which is the whole of the setup. The interface is the primary interface: the people this is for do not have a terminal.
Non-zero exit on what you decide is unacceptable.
veritix audit ./data --fail-on error
veritix audit ./data --baseline last-report.json \
--fail-on-regression error
A dataset can carry a standing instruction to audit itself overnight and send a webhook when the export gets worse. A container image and a Kubernetes base ship with it — one replica, egress denied by default.
Veritix is an MCP server, so Claude Code or Claude Desktop can audit a dataset and read the findings. An audit started that way is the same run, recorded in the same place, and shows up in the browser alongside the rest.
Veritix is dual licensed, and it is not the kind where the free version is crippled. The AGPL build is the whole product. A commercial license sells different terms, not different code.
This is very likely fine for you, and it is the case Veritix was built for.
Write to russell.wallace@gmail.com. Getting a license is usually quicker than getting an opinion on whether you need one.