DV Digest

Home›Documentation›QA certification

Documentation · release 1

QA certification

The QA cycle: preparation, the build, the tests, the comparisons, and the verdict on six gates.

DIG-574 QA Test and Certification: the Sunbelt Senior and Northfield Life raw vault

Branch QA Test and Certification

Effort DIG-574, DIGEST Data Vault course: increments 1 (arrival and identity), 1.1 (source system seed) and 2 (two sources), on branch claude_ws/dig-574-arrival-and-identity
Governed by Standard: QA Testing and Certification (K#2 I#167)
Official copy method AGENTIC.DATASKILLS.KNOWLEDGE_ITEM_FROM_TEMPLATE
Template source K#2 I#168 — updated 2026-10-03T10:39:06.968Z — SHA-256 e260ebb4d19989c169561fb4edda7afb1232794790b916ede1d803df8891177f
References Design (D-13 superseded 2026-10-25: course increments promote through qa to production with certification); implementation guide ; test plan , whose section 5 this cycle instantiates; post-implementation guide ; QA job runbook setup/runbooks/dbt_cloud_qa_environment.md; pull request #2
Branch / QA commit qa at 1c35485: the squash merges of pull requests #2 (ecc9e16) and #3; the branch, with qa merged back, has the same files
Pull request #2, merged into qa by rayserrano2735 at 2026-10-26 20:03 UTC; #3, the narrowed fusion_only tag, merged by rayserrano2735 at 21:29 UTC
Clone time Recorded when QA begins
Roles Recorded when QA begins
Warehouse Recorded when QA begins
Job definition Recorded when QA begins
Environment Recorded when QA begins
Author Ray Serrano; edited by ChatGPT
Classification Internal — Data Management

1. Scope and expected change

1.1 Delivery scope

Everything pull request #2 brings into qa: the landing tables SUNBELT.CLIENT, SUNBELT.POLICY_SALE and NORTHFIELD.POLICY; the source system seed (SSI, SYSTEM, ERROR, NFL); three staging models; the hubs client_h, policy_h, insured_h and agent_h; the links client_policy_l, insured_policy_l and agent_policy_l; four satellites and their version 1 views; two inspectors and three auditors writing CONFIG.DATA_FINDING; the baseline facility; 108 tests (74 unit, 34 data), D-40’s four satellite relationship tests included. The diff against qa is 70 files (test plan, section 2.1). Pull request #3 narrows the fusion_only tag to the 51 unit tests that fail on dbt v1 (Ray, 2026-10-26, answer 1b): the v1 QA job runs 57 tests (34 data, 23 unit), and the 51 run on v2 against the qa commit, both recorded here as one certification.

1.2 Intentionally unchanged

Production (DV and LANDING) is not touched by this cycle. LANDING.STORAGE stays empty (design DD-4). There are no semantic models, no consumer reports and no scheduled production job in this repository.

1.3 Expected movement ledger

The first QA build creates every vault object in DV_QA, so every movement is from absent to present. Landing data flows down: it is delivered to production, LANDING, and QA receives it only by cloning (Ray, 2026-10-25). Increment 2’s two acts were delivered to LANDING on 2026-10-25 by land_act, the stand-in source system (commit 0472975), and LANDING matches the development clone row for row: 43 client list rows, 14 sales rows, 12 carrier rows. So the fresh clone of LANDING_QA holds all three tables, and no pre-build landing act is needed. The expected values are development’s, read 2026-10-25: client_h 37, policy_h 17, insured_h 9, agent_h 8, client_policy_l 15, insured_policy_l 11, agent_policy_l 19; client_sunbelt_s 39, client_policy_sunbelt_s 15, insured_northfield_s 11, policy_northfield_s 12; three inspection findings (A1007, A-01008, NF100009) and no audit finding.

1.4 Protected semantic set

None. The repository has no semantic models, metrics or saved queries (test plan, baseline B-4), so no protected metric can move; Layer 7 is not applicable, proved by the dependency graph holding no semantic node.

2. Preconditions

# Precondition State
1 Development complete: the governed full development build passed and its warnings are classified Met 2026-10-26: dbt build 108 of 108 tests, 25 models, no warning; verify_build’s five warnings classified in the post-implementation guide (three growth expectations over an unchanged rebuild; two audit findings retained, delta 25)
2 Code review complete Met by Ray’s approval for production (answer 1b, 2026-10-26); no GitHub review is recorded; part 1’s graded review follows on a later pull request
3 The pull request into qa reviewed and merged by an authorized human Met: merged by rayserrano2735, 2026-10-26 20:03 UTC
4 This record names the exact qa commit Met: 1c35485
5 The branch test plan lists every added or changed test, intended data movement, protected metric, consumer question, runbook step, and rollback act Pending
6 The promotion switch, landing pointer, deployment scripts, job definition, grants, and role expectations read before the first QA build Pending

3. Production-shaped QA preparation

3.1 Fresh clones

LANDING_QA replaced by a fresh clone of LANDING on 2026-10-26 at 21:32 UTC, by setup/infrastructure/clone_landing_to_landing_qa.sql (commit d0f3e61), run as SYSADMIN from standard input. Its count check returned no rows: every LANDING table has its twin with the same rows. LANDING_QA holds CONFIG.BUILD_BASELINE 0, CONFIG.DATA_FINDING 0, NORTHFIELD.POLICY 12, PINECREST.POLICY 12, SUNBELT.CLIENT 43 and SUNBELT.POLICY_SALE 14. DV_QA, the QA vault, starts empty.

3.2 Ownership and grants

QA built by its own identity since 2026-10-26 (Ray, answers 1b and 2y): user DV_QA_DEPLOY with role DV_QA_ROLE, by setup/infrastructure/service_users.sql (Ray, as administrator) and setup/infrastructure/dv_qa_role.sql (the workstation, as SYSADMIN), then the clone script run again at 21:58 UTC. LANDING_QA, its schemas and tables owned by LANDING_ROLE. Read back with SHOW GRANTS TO ROLE: DV_QA_ROLE owns DV_QA and its schema, holds the warehouse, and on LANDING_QA holds usage on the database and its 6 schemas, select on its 6 tables, create and modify on STORAGE and CONFIG, and insert, update and delete on CONFIG’s 2 tables; it holds nothing on DV or LANDING. DV_ROLE holds the same on LANDING and owns DV, and holds nothing on DV_QA or LANDING_QA.

3.3 Deployment inputs read before build

DBT_LANDING_STORAGE read back through the dbt Cloud API before the first certified run, 70403230733470: QA scope LANDING_QA, project default LANDING, Development DEV__LANDING__RAYSERRANO. The QA environment builds branch qa as DV_QA_DEPLOY into DV_QA.

4. Before-build evidence

4.1 Warehouse baseline

capture_baseline ran as the job’s first step in every QA run; in run 70403230742776: “Baseline captured for DV_QA” (28 models, 38 data tests, 7 metrics, 4 semantic models, 74 unit tests found).

4.2 Protected semantic results before build

Not applicable: no released semantic result existed before this cycle.

4.3 Pre-build runbook acts

Before run 70403230733470: setup/infrastructure/reset_dv_qa.sql (DV_QA’s built schemas dropped) and setup/infrastructure/clone_landing_to_landing_qa.sql (LANDING_QA cloned fresh, grants restored, counts matched). Later runs rebuilt over the same QA data.

5. Full QA build

Run 70403230733470 of the dbt Cloud job “QA build” (environment QA, branch qa at 057a0c4, engine Latest, identity DV_QA_DEPLOY with DV_QA_ROLE), triggered by the workstation through the dbt Cloud API on 2026-10-26 after DV_QA was cleared (setup/infrastructure/reset_dv_qa.sql) and LANDING_QA refreshed; DBT_LANDING_STORAGE read back first through the API: QA LANDING_QA, project LANDING, Development DEV__LANDING__RAYSERRANO. Status Success in 1 minute 49 seconds: capture_baseline; the first build, unit tests excluded, 23 models, 2 seeds, 35 data tests passed; the second build, selector qa_build, the same plus 23 unit tests passed; verify_build.

The first QA build of the day (before D-41) is void: dbt Cloud compiled every satellite hashdiff upper-cased and DV_QA lost one case-only version (section 12).

6. Branch test battery

6.1 Added and changed tests

D-40: four relationship tests from each satellite’s hash key to its parent. D-41: assert_hashdiff_keeps_case_only_change, layer 4, severity error. Pull request #3: the fusion_only tag narrowed to the 51 unit tests that fail on dbt v1. Pull requests #5 and #6 added the marts’ uniqueness tests.

6.2 Complete test-sweep result

One certification across two engines (Ray, 2026-10-26, answer 1b): on dbt Cloud, 35 data tests and 23 unit tests passed (run 70403230733470); on the workstation’s v2 (Fusion 2.0.9), against the same commit 057a0c4 in a clean worktree, the 51 unit tests tagged fusion_only passed. Together: 35 data tests and 74 unit tests, 109 of 109, no warning, no failure. D-41’s assertion assert_hashdiff_keeps_case_only_change passed in both builds.

6.3 Warning disposition

verify_build in run 70403230742776 named three warnings, all the same class: growth expectations (client_h, policy_h and agent_policy_l increased) over a rebuild with no new landing act, which cannot hold by design; classified as in the post-implementation guide. The audit expectations passed: no audit finding.

7. Data regression

7.1 Baseline verification

verify_build in run 70403230742776: all 17 compared measures unchanged against the baseline captured at the run’s start (client_h 37, policy_h 17, agent_h 8, insured_h 9, the three links 15, 19 and 11, the four satellites 39, 15, 11 and 12, landing tables 43, 14 and 12, findings 3, of them 0 audit and 3 inspection).

7.2 Changed-model movements

DV_QA against the development vault, read 2026-10-26 after run 70403230733470: all 13 tables of RAW_VAULT and REFERENCE hold the same rows (client_h 37, policy_h 17, insured_h 9, agent_h 8; client_policy_l 15, insured_policy_l 11, agent_policy_l 19; client_sunbelt_s 39, client_policy_sunbelt_s 15, insured_northfield_s 11, policy_northfield_s 12; seeds 4 and 5). Every satellite row matches the development vault’s on hash key, hashdiff and load time: 39 of 39, 15 of 15, 11 of 11, 12 of 12.

7.3 Findings movement

LANDING_QA.CONFIG.DATA_FINDING: inspector_sunbelt_client_number_form 2, inspector_sunbelt_policy_number_form 1, no audit finding. The development tier’s two audit findings are retained from the auditors’ first versions (post-implementation guide, delta 25) and are correctly absent from a first build.

7.4 Values outside the baseline

None: every compared measure equal to its baseline (7.1).

7.5 Relationship integrity and branch invariants

D-40’s four relationship tests and assert_increment_2_link_hub_keys_exist passed in every certified run; read directly, no link or satellite row lacks its parent.

8. Semantic protection

8.1 Accuracy verification

Run 2026-10-27 on the semantic manifest of QA run 70403230742776 (qa 827d5d4), the manifest DV Digest loads: each of the seven metrics compiled through MetricFlow 0.213, executed on DV_QA as CLAUDE_WS, and compared group by group with an independent direct query on the raw vault or the landing’s findings. All seven equal:

Metric Grouped by Answer Equal to the direct query
policies_held client_policy__role insured 3, owner 9, payor 1 Yes
client_policy_roles client_policy__role insured 3, owner 9, payor 1 Yes
policies_written agent_policy__named_by_source NFL 7, SSI 10 Yes
agents_writing agent_policy__named_by_source NFL 3, SSI 5 Yes
face_amount_total policy__carrier_code NFL 125000.00, None None Yes
policies policy__carrier_code NFL 14, None 1 Yes
findings finding__source_system SUNBELT 3 Yes

8.2 Before-and-after value comparison

Not applicable: the first release of these metrics; there is no earlier released value to compare.

8.3 Live saved-query answerability

DV Digest, the QA delivery surface, loaded run 70403230742776’s manifest unattended and lists all seven metrics with their dimensions (list-metrics and get-dimensions, 2026-10-27).

9. Consumer certification

9.1 Consumer-question probes

Release 1, The Acquired Book (product definition ), asked through DV Digest on 2026-10-27 after its session fix: Q-9 policies_held by role: owner 9, insured 3, payor 1. Q-11 policies_written by sources_disagree: 15 false, 1 true. Q-10 face_amount_total by carrier: NFL 125,000.00; the policy with no carrier code, none. Q-15 findings by source: SUNBELT 3. Each executed on Snowflake.

9.2 Reconciliation

Each probe in 9.1 equals the direct query on DV_QA, row for row (8.1).

9.3 QA delivery surface

DV Digest, the connector on Ray’s tower (DIG-583), reading the latest successful QA build’s manifest. Its Snowflake session now renews itself (commit 03e8dda, loaded and verified on the tower 2026-10-27).

10. Operational verification

Production built 2026-10-27 by the dbt Cloud job “Prod Build” (70403104453080), environment PROD (branch main, DV_DEPLOY with DV_ROLE, database DV, landing LANDING), run 70403230861868 on main f48c24b: 68 of 68 passed; verify_build met every guardrail and expectation with zero warnings. Compared with DV_QA: all 25 vault, reference, staging and mart objects equal; every satellite row identical on key, hashdiff and load time (39, 15, 11, 12); the same 3 inspection findings and no audit finding in LANDING.CONFIG; the run’s semantic manifest carries all seven metrics on DV. Both jobs run on demand, triggered through the dbt Cloud API. The tower’s connector serves production as the interim production connector until DIG-590’s AWS function is live.

11. Rollback and cleanup

Rollback for this first release: drop DV’s built schemas (STAGING, RAW_VAULT, REFERENCE, MART), there being no earlier production state, and point the connector back at QA. Promotion: pull request #7 squash-merged into main (f48c24b), then qa converged with main, so qa is free for release 2.

12. Configuration exceptions and permanent corrections

# Exception Permanent correction
1 dbt Cloud (version 2026.10.14+638bb1a) compiled every satellite hashdiff upper-cased, while the workstation’s dbt v1 1.12.6 and v2 compiled them case-sensitive from the same code and package pin; the first QA build lost Martin Lowe’s “12 ELM ST” version. The cause in dbt Cloud is not known D-41: the variable set in the root project and an error-severity assertion; pull request #4, merged 2026-10-26 23:11 UTC
2 v1 cannot run 51 unit tests (datavault4dbt’s hub macro cannot describe a unit test’s fixed input) Tag narrowed to those 51 (pull request #3); they run on v2 against the QA commit as part of this certification
3 The QA build ran as the same role as production until 2026-10-26 DV_QA_DEPLOY with DV_QA_ROLE, which holds nothing on DV or LANDING (section 3.2)

13. Certification verdict

# Gate Verdict Evidence
1 Environment and deployment rehearsal PASS QA built from cleared databases as its own identity (3.1, 3.2, 5); production deployed from main as its own identity and identical to QA (10)
2 Full build and branch tests PASS Section 5 and 6.2: 109 of 109 tests across two engines; later runs on qa 827d5d4 passed
3 Data regression PASS Section 7.2 and 7.3: DV_QA equal to the development vault, row for row
4 Semantic protection PASS Section 8: all seven metrics equal their direct queries
5 Consumer surfaces PASS Section 9: release 1’s four questions answered through DV Digest, each reconciled
6 Operations, rollback, and evidence PASS Sections 10 and 11

Cycle verdict: CERTIFIED on all six gates for release 1, The Acquired Book, on qa 827d5d4, promoted to main f48c24b and built in production (Ray, 2026-10-27, answers 1y).

Next: Design

Every Data Vault choice, argued: business keys, hashing, satellites per source, ghost records, inspectors and auditors, decisions D-1 to D-52.

Read the design