Is Address Check Examples
Three real-world scenarios that show how the Is Address check is typically used in production: validating shipping addresses, scoping a country-specific rule with a filter, and auditing a legacy column mid-cleanup. The first two run at 100% coverage and report Record Anomalies; the third lowers coverage and reports a Shape Anomaly instead.
The situation: A carrier integration needs a road, a city, and a post code on every shipping address. Rows missing any of the three are rejected at label purchase, which strands the order.
Check configuration
| Field | Value |
|---|---|
| Rule | Is Address |
| Field | shipping_address |
| Filter | (none) |
| Custom Anomaly Description | Off |
| Required Labels | road, city, post code |
| Coverage | 100% |
| Owner | (check creator) |
| Anomaly Assignee | (Fulfillment Data team) |
| Description | Shipping addresses must include a road, a city, and a post code. |
| Tags | addresses, completeness |
| Additional Metadata | jira: DATA-9401 |
| Status | Active |
Payload
{
"description": "Shipping addresses must include a road, a city, and a post code.",
"rule": "isAddress",
"fields": ["shipping_address"],
"container_id": 145,
"coverage": 1,
"filter": null,
"properties": {"required_labels": ["road", "city", "postcode"]},
"tags": ["addresses", "completeness"],
"additional_metadata": {"jira": "DATA-9401"},
"anomaly_message_field": null,
"template_id": null,
"status": "Active",
"owner_id": 7,
"default_anomaly_assignee_id": 26
}
Sample Data
| order_id | shipping_address | carrier |
|---|---|---|
| O-001 | 350 Rhode Island St, San Francisco, 94103 | UPS |
| O-002 | San Francisco | UPS |
| O-003 | 1 Infinite Loop, Cupertino, 95014 | UPS |
| O-004 | (null) | (unassigned) |
What gets flagged
Order O-002 carries only a city, with no road and no post code. O-004 is NULL and passes without firing an anomaly. Coverage is 100%, so the failing row is reported as a Record Anomaly.
Record Anomaly
The field 'shipping_address' has value 'San Francisco', which does not match the required address format
Flowchart
graph TD
A["No filter, evaluate all rows"] --> B["Parse shipping_address"]
B --> C{"Is value NULL?"}
C -->|Yes| D["Row passes"]
C -->|No| E{"Are road, city and<br/>post code all present?"}
E -->|Yes| D
E -->|No| F["Flag row.<br/>Record Anomaly per failing row."]
Equivalent SQL
The situation: Domestic addresses must also carry a state, which most other countries do not use. The rule is scoped with a filter so international rows are evaluated by a separate, looser check.
Check configuration
| Field | Value |
|---|---|
| Rule | Is Address |
| Field | billing_address |
| Filter | country = 'US' |
| Custom Anomaly Description | Off |
| Required Labels | road, city, state, post code |
| Coverage | 100% |
| Owner | (check creator) |
| Anomaly Assignee | (Address Data team) |
| Description | Domestic billing addresses must include a road, a city, a state, and a post code. |
| Tags | addresses, completeness |
| Additional Metadata | jira: DATA-9444 |
| Status | Active |
Payload
{
"description": "Domestic billing addresses must include a road, a city, a state, and a post code.",
"rule": "isAddress",
"fields": ["billing_address"],
"container_id": 512,
"coverage": 1,
"filter": "country = 'US'",
"properties": {"required_labels": ["road", "city", "state", "postcode"]},
"tags": ["addresses", "completeness"],
"additional_metadata": {"jira": "DATA-9444"},
"anomaly_message_field": null,
"template_id": null,
"status": "Active",
"owner_id": 7,
"default_anomaly_assignee_id": 26
}
Sample Data (filtered to country = 'US')
| account_id | country | billing_address |
|---|---|---|
| A-01 | US | 500 Terry Francois Blvd, San Francisco, CA, 94158 |
| A-02 | US | 742 Evergreen Terrace, Springfield, 49007 |
| A-03 | US | 1600 Amphitheatre Pkwy, Mountain View, CA, 94043 |
Why the filter matters
The filter runs before the parsing, so addresses from countries that do not use states are never tested against this rule. Only domestic rows are evaluated.
What gets flagged
A-02 carries a road, a city, and a post code, but no state, which the domestic rule requires. Coverage is 100%, so the failure is reported as a Record Anomaly, and the message ends with the filter that scoped the evaluation.
Record Anomaly
The field 'billing_address' has value '742 Evergreen Terrace, Springfield, 49007', which does not match the required address format [filter: country = 'US']
Flowchart
graph TD
A["Apply filter: country = 'US'"] --> B["Parse billing_address"]
B --> C{"Are all four required<br/>parts present?"}
C -->|Yes| D["Row passes"]
C -->|No| E["Flag row.<br/>Anomaly message ends with<br/>[filter: country = 'US']"]
Equivalent SQL
-- Rows the check would flag among domestic accounts.
SELECT a.*
FROM accounts a
WHERE a.country = 'US'
AND a.billing_address IS NOT NULL
AND NOT (
a.billing_address LIKE '%<road>%'
AND a.billing_address LIKE '%<city>%'
AND a.billing_address LIKE '%<state>%'
AND a.billing_address LIKE '%<post code>%'
);
The situation: A legacy CRM export left partial addresses in contact_address. An enrichment job is completing them, and a small fraction is expected to stay partial until it finishes, so the check tolerates up to 0.5% failures.
Check configuration
| Field | Value |
|---|---|
| Rule | Is Address |
| Field | contact_address |
| Filter | (none) |
| Custom Anomaly Description | Off |
| Required Labels | road, city |
| Coverage | 99.5% |
| Owner | (check creator) |
| Anomaly Assignee | (CRM Data team) |
| Description | Contact addresses must include at least a road and a city. |
| Tags | legacy, addresses |
| Additional Metadata | jira: DATA-9488 |
| Status | Active |
Payload
{
"description": "Contact addresses must include at least a road and a city.",
"rule": "isAddress",
"fields": ["contact_address"],
"container_id": 733,
"coverage": 0.995,
"filter": null,
"properties": {"required_labels": ["road", "city"]},
"tags": ["legacy", "addresses"],
"additional_metadata": {"jira": "DATA-9488"},
"anomaly_message_field": null,
"template_id": null,
"status": "Active",
"owner_id": 7,
"default_anomaly_assignee_id": 41
}
Sample Data
| contact_id | contact_address | migrated |
|---|---|---|
| C-01 | 12 Rue de Rivoli, Paris | true |
| C-02 | Paris | false |
| C-03 | unknown | false |
| C-04 | (null) | false |
What gets flagged
Contacts C-02 and C-03 carry only a city or a placeholder, with no road. C-04 is NULL, so it passes without firing an anomaly but still counts in the scanned total. Only 50% of the rows pass, which is below the 99.5% coverage threshold, so the check reports a single Shape Anomaly for the dataset with a sample of the offending rows. Coverage below 100% does not produce Record Anomalies.
Shape Anomaly
For the field 'contact_address', 50.000% of 4 records (2) do not match the required address format
Flowchart
graph TD
A["No filter, evaluate all rows"] --> B["Parse contact_address"]
B --> C{"Is value NULL?"}
C -->|Yes| D["Row passes"]
C -->|No| E{"Are road and city<br/>both present?"}
E -->|Yes| D
E -->|No| F["Flag row.<br/>Passing rate falls below the 99.5%<br/>coverage, so one Shape Anomaly is reported."]
Equivalent SQL
See Also
-
How It Works
The complete reference: definition, field scope, the required labels, parsing semantics, NULL handling, filter behavior, and coverage.
-
Anomaly Reporting
The anomaly messages the check produces, what the numbers mean, Source Records highlighting, and Custom Anomaly Description.
-
Best Practices
Guidelines for choosing required parts, handling international data, pairing rules, and keeping the signal clean.
-
Permissions
The team permission each action needs: view, create, edit, archive, restore, and delete.