Skip to main content
Quality is a query catalog, not a fifth data pool. Provider tables in providers hold the rows. Quality holds measurements about those tables: statistical process control (SPC), Gate 2 checks, shape stats, and catalog health. Address the latest snapshot across the workspace, or the history of one table: Only main provider tables get quality sidecars. Identity tables (providers.identity.*), artifacts, and parables do not. Run the SQL below over Flight SQL. Clients are on Querying the lake.

What each measurement is

Checks (Gate 2) compare a table to thresholds from the tap’s quality config and schema roles. Each row is one check on one table. Status is PASS, FAIL, or SKIPPED. Skipped is not a pass — the rule lacked a required role (business key, event time, and so on) or window, so it did not evaluate. Business-key columns are x-transformDedupKey on the tap schema; see How taps project into tables. Checks run when a table is promoted and again on a scheduled cadence. The lifecycle column tells you which. SPC is a Shewhart control chart on platform-owned series (row count, column null percent, and similar). It is not a substitute for the checks above. Each series has a rolling mean, standard deviation, 2-sigma warning limits, and 3-sigma control limits. Tracked series kinds: TABLE_ROW_COUNT, COLUMN_NULL_PCT, COLUMN_VALIDATION_FAILURE_PCT, COLUMN_DISTINCT_COUNT, COLUMN_AVG. Stats are the shape snapshot each run uses (row count, column count, bytes). Health is the catalog annotation for that table (state, reason, watermark). Health is computed from annotations, not from the same rollup path as checks and SPC.

Latest across the workspace

Start here. These four tables are the current result per provider table. Failing checks for Google Workspace:
observed is the measured rate or count. threshold is the configured limit. comparator is how they were compared. Every check that did not pass (fail or skip):
SPC series that have a warning, a control-limit breach, or recorded violations:
Largest provider tables by row count:
Stale watermarks:

History for one table

Suffixes map to a result kind: Google Workspace directory users:
How row-count SPC for that table moved:
History tables keep every run. They also expose result_id, run_id, evidence_json (checks), and violations_json (SPC) when you need the payload behind a fail.
Older sidecar files may store status as Fail or OutOfBounds. Newer rows use FAIL and OUT_OF_BOUNDS. Summary tables go through typed decode and use the uppercase values. On __checks / __spc, filter both casings if a query comes back empty.