How it works

Proof first. Diff only when needed.

Paridity starts every reconciliation run with a whole-dataset proof phase. If source and target match, the run ends cleanly with evidence. If they do not, it narrows the failure to mismatched keys and field-level differences, and records every step.

The run

Five steps, each of which leaves a record.

Step 1 · Readiness

Align the comparison window

Paridity reads the context that fits the data flow: CDC tool state and lag, watermark advancement, a batch or load cycle, a snapshot, a partition. The window is pinned before any data is compared, so in-flight replication never reads as a mismatch.

Step 2 · Proof

Fingerprint both datasets

Counts and a deterministic hash total are computed for source and target inside each engine, on canonicalized values, so a Postgres row and a Snowflake row hash to the same bytes. The proof is an order-insensitive pass or fail signal for the whole dataset.

Step 3 · Pass

Keep the evidence

When the proof passes, the run ends. The configuration snapshot, the window, the fingerprints and the timings are recorded, and nothing else is read.

Step 4 · Fail

Isolate keys, then fields

When the proof fails, per-row hashes identify which keys differ. Only those rows are fetched, and only the fields that differ are compared, so a one-row problem in a billion-row table costs one row of egress.

Step 5 · Evidence

Record everything

Config snapshot and checksum, phase start and end times, mismatch keys, field diffs with masking applied, lag retries, terminal status and an audit entry, all append-only and exportable.

Throughout · Drift

Watch the schema

Every proof phase compares the live schema on both sides against the baseline. A lost key column halts the run; a lost reconciled column follows your policy; an added column is recorded and never silently ignored.

Proof and diff

Deterministic proof before expensive investigation.

Hash totals for dataset-level proof
A SHA-256 based aggregate fingerprint computed in SQL on every supported engine, byte-verified against a reference implementation and across every engine pair. Identical data produces identical totals; different data does not.
Row hashes for mismatch-key detection
When the proof fails, a per-row fingerprint on each side finds the rows that differ, including rows present on one side only.
Field diffs for the exact discrepancy
Column by column, on the mismatched rows only, with raw values stored only where tenant, mapping and field policy all allow it.
Proof-only mode
For high-frequency checks or egress-sensitive systems, the run stops after the proof: a pass or a fail, with evidence, and no diff phase.
Diff sampling
For very large mismatch sets, diff a deterministic sample of the mismatched rows and always record the full mismatch count.
Canonicalization
Nulls, whitespace, numeric scale, timestamp precision, dates, booleans, binaries and large objects are normalized by one published rule set before hashing, so the comparison is engine-neutral.
Business windows

Compare target data in the right window.

Paridity uses the comparison window that matches the data flow: CDC lag, watermark advancement, batch load, snapshot, partition, business period or target refresh cycle.

Full and incremental windows
A scheduled run compares what changed since the last successful run; a close-mode or audit schedule forces a full-table comparison.
CDC and watermark readiness
With a declared replication tool, readiness consults the tool's own state: lag, stability and advancement, before the window is fixed.
Batch, partition and snapshot windows
For systems without a trustworthy change timestamp, including SAP tables, Paridity uses replication metadata, control markers, partitions or explicit snapshots. It never infers freshness from a business date.
Lag retry tracking
Rows that differ only because replication is still in flight are rechecked inside the same run, and every retry is recorded.
No-new-data handling
A window with nothing new ends as such, still checks the schema, and never counts as a false pass or a false failure.
Schedule window controls
Interval schedules with days, active hours, effective dates and tags; close mode turns a tagged set on or off in one action.
Evidence

Evidence for producers, consumers, operators and auditors.

Every run records the comparison configuration, the proof result, the mismatch evidence, the phase attempts, the terminal status and the trail needed to explain what happened after the fact.

Config snapshots and checksums
The resolved configuration is frozen when the run starts and its checksum is written before any data is compared, so a policy change between runs is visible.
Run evidence records
Proof results, mismatch keys, field diffs, lag retries and metrics, in append-only tables that nothing updates after the fact.
Terminal status logs
Every terminal transition and every administrative action is written to the audit log with actor, entity, action, time and network attribution.
Evidence masking
Raw values are stored only when tenant, mapping and field policy all allow it; masked fields are masked at query time too.
Export-ready records
Signed evidence bundles per period, with a manifest and a hash chain, for an auditor who was not there.
Schema honesty
A run whose schema could not be verified, or that ran with reduced coverage or reduced timestamp fidelity, is labeled as such and never counted as a clean pass.

See it on your own tables.

A 30-day trial in your own cloud, or the Early Adopter Program with an assisted install.