Rule Groups
Rule Groups
In this series of detailed workshops we're going to:
Understand the business value and ROI of implementing business rules
Master the 7 Data Quality Dimensions in PDC
Create and configure business rules with detailed step-by-step guidance
Implement rule actions (Status, Tags, Webhooks) and understand their purpose
Organize rules using rule groups for operational efficiency
Monitor and interpret rule execution results for continuous improvement
x
Accessing your Catalog
To get started using the Data Catalog, log in using the address and credentials provided by your Data Catalog service user or administrator.
To access your catalog, please follow these steps:
Open Google Chrome web browser.
Navigate to:
Enter following email and password, then click Sign In.
Username: [email protected] (mapped to Business Steward role)
Password: Welcome123!
x
x
Daily Sales Quality Checks
Scenario: Monitor that orders are being processed within expected timeframes.
Rule Group: Daily_Sales_Quality_Checks
Customer_Email_Completeness
Order_Date_Validity
Order_SubTotal_Calculation_Accuracy
Order_Processing_Timeliness
Configuration:
Group Name: Daily_Sales_Quality_Checks
Description: Critical daily validations for sales data integrity
Schedule: Daily at 6:00 AM
Rules: [4 rules listed above]x
Business Rule Configuration:
Rule Name: Customer_Overall_DQ_Score
Description: Composite data quality assessment across customer data
Data Quality Dimension: Accuracy
Schedule: Daily
Target: Person.Person, Sales.CustomerSQL Query:
WITH CustomerQuality AS (
SELECT
c.CustomerID,
CASE WHEN e.EmailAddress IS NOT NULL THEN 1 ELSE 0 END AS HasEmail,
CASE WHEN pp.PhoneNumber IS NOT NULL THEN 1 ELSE 0 END AS HasPhone,
CASE WHEN ba.AddressID IS NOT NULL THEN 1 ELSE 0 END AS HasAddress,
CASE WHEN so.SalesOrderID IS NOT NULL THEN 1 ELSE 0 END AS HasOrders
FROM Sales.Customer c
LEFT JOIN Person.Person p ON c.PersonID = p.BusinessEntityID
LEFT JOIN Person.EmailAddress e ON p.BusinessEntityID = e.BusinessEntityID
LEFT JOIN Person.PersonPhone pp ON p.BusinessEntityID = pp.BusinessEntityID
LEFT JOIN Person.BusinessEntityAddress ba ON p.BusinessEntityID = ba.BusinessEntityID
LEFT JOIN Sales.SalesOrderHeader so ON c.CustomerID = so.CustomerID
),
QualityScore AS (
SELECT
CustomerID,
(HasEmail + HasPhone + HasAddress + HasOrders) AS Score
FROM CustomerQuality
)
SELECT
COUNT(*) AS total_count,
SUM(CASE WHEN Score >= 3 THEN 1 ELSE 0 END) AS scopeCount,
SUM(CASE WHEN Score < 3 THEN 1 ELSE 0 END) AS nonCompliant
FROM QualityScoreRule Actions with Multiple Thresholds:
PASS: ≥ 95% customers with score ≥3 → Tags: "gold_standard"
WARNING: 85-95% → Tags: "needs_improvement", Webhook to Data Steward
FAIL: < 85% → Tags: "critical_remediation", Webhook to VP of Data
x
x
x
x
x
Last updated
Was this helpful?
