CLI reference
Commands, flags, and domain packs.
Integrations
dbt tests and the GitHub Action.
Install
Polars-free by default (3.0.0)
As of 3.0.0 the default scan path is Arrow-native and needs no Polars.pip install goldencheck scans CSV, Parquet, and Excel end-to-end — scan_file, scan_dataframe, and
the CLI all run on a pyarrow.Table (a base dependency now). The 2.0.0 rule that CSV and the
full scan needed goldencheck[polars] no longer applies.
Polars is only used by two opt-in extras:
goldencheck[baseline]— pulls Polars (plus scipy/numpy) for the statistical, drift, and correlation subsystems, which still run on Polars.goldencheck[polars]— only for thescan_dataframe(pl.DataFrame)convenience overload.scan_dataframeaccepts apyarrow.Tablenatively; apolars.DataFrameis converted via.to_arrow()when Polars is present.
inferred_type reports a neutral dtype vocabulary (str, int, uint, float, date,
datetime, bool, other) rather than raw Polars dtype names.
Quickstart
Key features
- Profiling: type inference, nullability, uniqueness, format detection, range and distribution, cardinality, pattern consistency, encoding and sequence detection, near-duplicate value detection (inconsistent categorical encodings such as
California/Californa/CALIFORNIA), and freshness (future-dated values and name-gated staleness). - Cross-column checks: temporal ordering, null correlation, numeric constraints, age-versus-DOB, composite-key discovery, exact and near-duplicate rows, strict functional dependencies, and approximate-FD violations (rows that break a near-strict
zip → city). - Denial-constraint discovery (opt-in): mines if-then / cross-tuple invariants of the form
¬(p1 ∧ … ∧ pm)— e.g.¬(status=shipped ∧ ship_date<order_date)(“if shipped,ship_datemust be ≥order_date”) — from a single table and surfaces the violating rows. Off by default; enable withgoldencheck denial-constraints data.csvor--denialon a scan. - Baseline and drift detection: 12 check types including distribution drift, entropy drift, Benford drift, functional-dependency violation, and type drift.
- Domain packs: healthcare, finance, and ecommerce.
- Auto-fix: safe repairs such as trim, normalize case, fix encoding, and coerce types.
- LLM boost: optional semantic understanding at roughly $0.01 per scan.
- Confidence scoring: every finding carries a 0.0–1.0 confidence.
Baseline and drift
Create a statistical baseline once, then check new data against it cheaply:Benchmark
GoldenCheck scores 88.40 on DQBench (versus Pandera 32.51, Great Expectations 21.68, Soda 22.36), at roughly 482K rows/sec. The Arrow-native scan that shipped in 3.0.0 got roughly 3.8x faster across the 3.0.x and 3.1.x releases (a 1M-row x 7-column mixed scan went 3.74s to about 1.0s), each release byte-identical to the last. The wins come from vectorized pyarrow ops, fused single-pass kernels, and a deterministic parallel scan. The scan thread pool is tunable withGOLDENCHECK_SCAN_THREADS (default parallel; set it to 1 to force
sequential). Installing goldencheck[native] accelerates the scan further. See
Native acceleration for the details.