Supporting documentation for Joe Salmon's Business & Performance Business Partner demonstration site. Demonstration material only.

Synthetic Demo Rivers Health material only — not Dorset HealthCare/RDY public data.

Runs 2–5 internal QA findings

Date: 2026-06-22
Scope: Internal consistency only (no new features).
Answer key: Not read during this QA pass.

Summary

Area Result
Missing deliverable files Pass — all planned artefacts present
Markdown / repo links Pass — no broken relative links in warehouse-demo or examples
HTML hrefs (agent-operating-model) Pass — 15 warehouse-related targets exist
JSON pipeline specs Pass — 4/4 valid JSON
site/reports/ modified Pass — not modified
draft-reports.html modified Pass — not modified
Answer-key leakage (agent outputs) Pass — no planted counts in profiling report; forbidden lists only elsewhere

Issues found and disposition

Fixed (low-risk)

ID Issue Fix applied
QA-01 Corrected HTML brief showed Mar operational cases 220 but demo_provider_month_measures.csv has 197 for same filter Updated reports/urgent-care-provider-month-brief.html
QA-02 Jan operational cases showed em dash; mart CSV has 274 Same HTML table row updated
QA-03 qa.ExpiredLocalOpsMappingInUse references stg.LocalOpsUserMapping — table missing from DDL Added to sql/staging/01_stg_tables.sql
QA-04 Loader/ADF/EXPECTED counts reference raw.CareCase, raw.LegendaryReferral, etc. — only raw.CareCallContact had DDL Added sql/staging/02_raw_other_sources.sql; README run order updated
QA-05 HTML caveat cited linkage_resolution_strategy.md without working relative path Linked to ../design/linkage_resolution_strategy.md
QA-06 Agent operating model section still titled "in progress" after Run 5 Title updated to "Warehouse design demo"

Documented — no fix (by design or out of scope)

ID Issue Notes
QA-07 qa.MonthlyContactCaseTrend uses FULL OUTER JOIN on month only — can mis-aggregate cases vs contacts Demo QA view; profiling uses Python volume_trends.csv instead
QA-08 SQL DDL incomplete vs design (staging_model.md lists many stg/raw tables) Artefact spec only; not all sources have CREATE TABLE scripts
QA-09 ADF JSON references stored procedures (stg.usp_*, mart.usp_*) not defined in SQL folder Expected for pipeline specs; procedures not in demo scope
QA-10 Flawed brief uses invented open-referral figures (4,200 / 4,350) Intentional QA trap — not sourced from mart
QA-11 Flawed brief claims "42% surge" for March Intentional error for Report QA demo
QA-12 suggested_next_agent_task.md still describes Run 2 profiling Superseded by suggested_run3_agent_task.md; retained as historical Run 1 handoff
QA-13 2026-06 partial month in volume/mart outputs Source data edge rows; profiling includes with caveat

Answer-key references (expected)

References to human-only reviewer checklist (not published on site).md appear only in: forbidden-source lists, human-only checkpoints, comparison template, README reviewer note. No leakage into source_profiling_report.md or agent conversations (except intentional flawed draft errors).

Cross-artifact consistency checks

Check Status
Mar 2026 cases opened 542 Consistent: volume_trends, mart, profiling report, HTML
Mar IUCS 1,272 Consistent across profiler and mart
Mar cases without SourceContactId 322 Consistent: volume_trends, DQ002, profiling report
Feb operational cases 402 Consistent: mart CSV and corrected HTML (after QA-01/02)
Agency spend Feb ~£61,356 Consistent: volume_trends, mart, HTML
Table names SQL ↔ ADF ↔ design Core names align (raw.CareCallContact, stg.CareCase, mart.ProviderMonthUrgentCare)
Checkpoint immutability run2run4 checkpoints not rewritten during this QA

Re-verification commands

python3 -m json.tool site/warehouse-demo/pipelines/pl_ingest_source_csv.json > /dev/null
cd site/warehouse-demo/profiler && .venv/bin/python profile_sources.py
cd site/warehouse-demo/sql/load && python3 load_from_csv.py --dry-run

QA status: Pass with documented limitations. Low-risk fixes applied.