AO

Data Quality & Analytics Engine

Silver layer DQ engine. Failing records are routed into quarantine_<entity> Delta tables with violation codes; passing records are deduplicated by source priority.

Report filters

Report reflects data up to the latest available data load

Period

Table

Rule type

Business rules15
Overall score %58.72%
Total records tested232K
Invalid records136K
Tables above threshold (60%)2

Invalid records by rule type

Share of failures across all rule categories

VAL103K (48.66%)

PAT102K (48.17%)

BR6.6K (3.10%)

REQ147 (0.07%)

NULL1 (0.00%)

Score % and grade by table

Percentage of tested records failing at least one rule

Invalid records by table and column

Failure counts broken down by rule type

Score and grade by table

Invalid vs total records tested per entity

Active DQ Rule Engine

Rules evaluated before the Silver merge

RuleEntityRule typeLogicPredicateCodeFailuresActive
Property identity requiredpropertiesNOT NULL2 cond · 1 grp · AND(PropertyID IS NOT NULL OR UPRN IS NOT NULL)REQ:PropertyID12
UK postcode formatpropertiesPATTERN2 cond · 1 grp · AND(Postcode IS NOT NULL AND Postcode RLIKE '^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$')PAT:Postcode34
Repair priority domainrepairsALLOWED_VALUES1 cond · 1 grp · ANDPriorityCode IN ('EMERGENCY', 'URGENT', 'ROUTINE', 'PLANNED')AV:PriorityCode21
Emergency repair SLA integrityrepairsCOMPOSITE4 cond · 2 grp · AND(CompletionDate >= 'ReportedDate' AND CompletionDate IS NOT NULL) AND (PriorityCode != 'EMERGENCY' OR TargetHours <= 24)BR001:CompletionDate_Before_Reported9
Property referential integrityrepairsREFERENTIAL_INTEGRITY1 cond · 1 grp · ANDEXISTS (SELECT 1 FROM gold.Dim_Property d WHERE d.PropertyID = src.PropertyID)RI:PropertyID->Dim_Property17
Void window presentvoidsNOT NULL1 cond · 1 grp · ANDVoidStartDate IS NOT NULLNULL:VoidStartDate4

Quarantine Management

quarantine_properties · quarantine_repairs · quarantine_voids

PRP-004182· quarantine_properties

NULL:PostcodePAT:Postcode

09:15:44
{"prop_id":"PRP-004182","post_cd":null,"bedrms":"3"}

PRP-009911· quarantine_properties

REQ:PropertyID

09:00:29
{"prop_id":"","uprn_no":100023456789}

REP-771204· quarantine_repairs

BR001:CompletionDate_Before_Reported

09:11:02
{"repair_id":"REP-771204","rep_dt":"2026-07-30","comp_dt":"2026-07-12"}

REP-771889· quarantine_repairs

RI:PropertyID->Dim_PropertyAV:PriorityCode

09:11:03
{"repair_id":"REP-771889","prop_id":"PRP-ZZZZZ","priority_cd":"P9"}

VOID-2211· quarantine_voids

NULL:VoidStartDate

09:00:31
{"void_id":"VOID-2211","void_start":null}

PRP-004410· quarantine_properties

PAT:Postcode

09:15:46
{"prop_id":"PRP-004410","post_cd":"MANCHESTER"}

Violation Distribution

Across all quarantine tables

DQ Copilot

LLM analysis over scorecards & quarantine

I'm the DQ Copilot. I read the Silver scorecards and quarantine tables. Ask me why a pillar moved, or which violation codes dominate an entity.