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).