Back to rules

Subscriber Relationship Code

formathigh

Validates that the subscriber relationship code is one of the allowed values defined in the X12 270/271 eligibility transaction standard. Valid codes include 18 (Self), 01 (Spouse), 19 (Child), 20 (Employee), 21 (Unknown), 39 (Organ Donor), 40 (Cadaver Donor), 53 (Life Partner), and G8 (Other Relationship).

v1.0.0by dqhub1,293 downloads4 (50)
subscriberrelationshipeligibilityenrollmenthealthcarex12-270x12-271hipaavalueset
Try This Rule

Parameters

column_namestringrequired

The column containing email addresses

thresholdfloatdefault: 0.99

Minimum fraction of valid emails (0.0 to 1.0)

Compliance Mapping

HIPAA45 CFR 162.1203

X12X12 270/271 Transaction Set - INS01 Individual Relationship Code

Install

soda
checks for {{table_name}}:
  - invalid_percent({{column_name}}) < {{(1 - threshold) * 100}}:
      valid regex: '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
dbt
{% test valid_email(model, column_name) %}
select {{ column_name }}
from {{ model }}
where {{ column_name }} not regexp '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$'
{% endtest %}
sql
SELECT COUNT(*) as total,
  SUM(CASE WHEN {{column_name}} REGEXP
    '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$'
    THEN 1 ELSE 0 END) as valid
FROM {{table_name}}
Great Expectations
{
  "expectation_type": "expect_column_values_to_match_regex",
  "kwargs": {
    "column": "{{column_name}}",
    "regex": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
    "mostly": {{threshold}}
  }
}
spark
from pyspark.sql.functions import col
pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
invalid = df.filter(~col("{{column_name}}").rlike(pattern)).count()

Test Data

Passing Examples

idvalue
1alice@example.com
2bob.smith@company.co.uk
3charlie+tag@domain.org

Failing Examples

idvalue
1not-an-email
2@missing-local.com
3spaces in@email.com

CLI

Terminal
npx dqhub install subscriber-relationship-code --format soda --table YOUR_TABLE
npx dqhub install subscriber-relationship-code --format dbt --model YOUR_MODEL
npx dqhub install subscriber-relationship-code --format sql --dialect snowflake