Drift detected

qps_technoflex_supplier_CAP-83ab12c4f790e102_20260415

The Vorenza ChemTech entry on Industrial Colorants & Pigments. Three executions: two clean, then a finance reconciliation pass that finds row_count_increase from late-arriving April POs. The drift_delta quantifies the change (HHI 0.947 -> 0.943, within rounding) and drift_note records the impact assessment so the next reader can skip rebuilding.

{
"qps_id": "qps_technoflex_supplier_CAP-83ab12c4f790e102_20260415",
"qps_version": "1.0",
"query": {
"dialect": "databricks_sql",
"template": "SELECT p.po_num, p.purchase_order_date AS date, p.site_code AS site, p.ca_item_number, p.part_description, p.qty, p.qty_uom, p.unit_price, p.spend FROM technoflex.silver.purchase_orders p INNER JOIN technoflex.supplier_consolidation.supplier_mapping_lean m ON p.supplier_name = m.original_supplier_name WHERE m.parent_supplier_id = :parent_supplier_id AND p.purchase_order_date >= :start AND p.purchase_order_date < :end ORDER BY p.purchase_order_date",
"params": {3 keys },
"param_types": {3 keys }
},
"generation": {
"generated_at": "2026-04-15T02:08:31.214Z",
"generated_by": "technoflex_supplier_profile_v2.4",
"source_dataset": "technoflex.silver.purchase_orders",
"source_dataset_version": "2026-04-14T23:59:59Z",
"row_count": 46,
"checksum": "sha256:83ab12c4f790e1028fb52e019d7a3641ce8809a2f4c01b6d9374a8e0517fc213",
"checksum_method": "row_content_hash"
},
"executions": [
0: {8 keys },
1: {8 keys },
2: {10 keys }
],
"access_control": {
"allowed_roles": [4 items ],
"requires_audit_log": true,
"pii_exposure": "none"
},
"ttl": {
"retain_until": "2027-04-15T00:00:00Z",
"retention_basis": "two_full_audit_cycles",
"delete_strategy": "soft_delete"
},
"related_manifolds": [
0: "mfld_commodity_4766f1321438a7b46bd04a590e297843_20260415"
],
"notes": "Vorenza ChemTech AG, the top supplier on Industrial Colorants & Pigments. Detected drift is benign: three late-arriving POs from supplier #2 (Silvar Dyes) shifted the HHI by 0.004. The drift_note records the impact assessment so the next consumer can decide whether to trust the original manifold or rebuild."
}

Glossary

Field reference

The fields that appear in this entry and what they mean. The full schema is in the QPS specification; operations guidance (checksum tradeoffs, drift response patterns, retention) lives in the Operations reference.

Identification & versioning

qps_id
Unique identifier for this QPS entry. By convention matches the related manifold_id for 1:1 cases (one manifold, one QPS entry). The lineage block on the TMS manifold carries this same ID so an agent can round-trip.
qps_version
Spec version this entry conforms to. v1.0 is the only released version as of this writing. Use a string ("1.0") not a number; the spec may extend to dot-dot suffixes for minor revisions.

Query block

query.dialect
SQL flavor or transport. Documented values: databricks_sql, snowflake, bigquery, postgres, duckdb, mcp_tool. The mcp_tool dialect is opaque: the entry stores a tool name and args instead of a SQL string, useful when query exposure is unacceptable.
query.template
Parameterized query string with :name placeholders. NEVER store an interpolated query with values inlined. The whole point of QPS is reproducibility, and interpolation breaks reproducibility (and audit) at the seams.
query.params
Object mapping :name placeholders to the values used at generation. Together with `param_types`, this is what lets a future consumer replay the exact query that built the manifold.
query.param_types
Type declarations for each param. Lets the replay engine cast safely without inferring from values (e.g., '2026-05-01' as date, not string).

Generation record

generation.generated_at
Timestamp the manifold was built. Immutable. Establishes the as-of point for any drift comparison.
generation.generated_by
Generator identity: typically a service name + version (e.g., technoflex_supplier_profile_v2.4). Lets you trace which build produced the entry.
generation.source_dataset
The canonical name of the table or view the query ran against. For Delta / Iceberg sources, pair with source_dataset_version to pin the read snapshot.
generation.source_dataset_version
Version or as-of timestamp for the source dataset. For time-traveled platforms (Delta, Snowflake, BigQuery), record the snapshot identifier; for plain tables, record a recent as-of timestamp.
generation.row_count
Row count the query returned at generation. The first signal a replay checks against. A different row count on replay sets drift_detected = true with drift_type = row_count_increase or row_count_decrease.
generation.checksum
Fingerprint of the rows at generation. Combined with checksum_method, this is how drift gets detected with finer granularity than row count alone.
generation.checksum_method
How the checksum was computed. Options: row_content_hash (SHA256 over sorted, serialized rows; strongest), row_count_only (weak but cheap), column_stats_hash (hash of per-column min/max/sum; catches content changes that preserve row count), none (no checksum). See /spec/qps/operations for tradeoffs.

Execution log & drift

executions[]
Append-only log of replay attempts. Each entry records who ran the query when, what came back, and whether it matched generation. Never delete entries; old executions are how you reconstruct who saw what.
executions[].executed_by
Identity of the caller. For agent calls, use a stable agent + version string. For human sessions, a session ID or user identifier scoped to your audit policy.
executions[].execution_context
What the replay was for. Common values in production: manifold_drilldown (agent fetching L2 detail), manual_audit (human verification), month_end_reconciliation (finance close), incident_investigation (post-hoc forensics). Free string; consistency helps querying the log.
executions[].drift_detected
Boolean. True if the replay's row_count or checksum diverged from generation. The replay still returns the rows; QPS records the divergence without preventing it.
executions[].drift_type
Enum present only when drift_detected is true. Values: row_count_increase, row_count_decrease, content_change, schema_change, query_failure. See /spec/qps/operations for typical causes and response patterns per type.
executions[].drift_delta
Quantitative description of the divergence. For row-count drift: expected vs actual, rows_added, rows_removed. For content_change: which columns or rows differ. The shape varies by drift_type.
executions[].drift_note
Free-text impact assessment from the consumer who triggered the replay. The next consumer reads this to decide whether to trust the original manifold or rebuild. The best drift_notes name what the drift means for downstream decisions, not just what changed.

Access control & retention

access_control
Optional block. allowed_roles is a list of role names that may replay this entry. requires_audit_log forces every replay to write to the executions[] log (recommended for production). pii_exposure summarizes what sensitive data the underlying rows contain.
ttl
Retention policy. retain_until is when the entry becomes deletable; retention_basis is the prose reason (e.g., "two_full_audit_cycles", "sox_seven_year"); delete_strategy is hard_delete or soft_delete. Default to two full audit cycles for procurement entries; longer for regulated categories.

Integration

related_manifolds
Array of manifold_id values that reference this QPS entry. Usually one. Multiple when the same query produced sibling manifolds (e.g., a daily and a monthly cut).
notes
Human-readable context for the entry: what it covers, what to watch for, idiosyncrasies of the source table. Optional but heavily recommended; the future reader of this entry will not have the context the author had.