Skilirium

Recognises nulls left to chance in a check predicate

Q-314 · Skill knobit · Activity: Derive data quality rules · Competence: Data quality

A predicate that evaluates to UNKNOWN for nulls, where nobody decided whether a null passes. A CHECK passes UNKNOWN; a DQ row predicate fails it; a violation query written as WHERE NOT (expr) silently drops it. And NOT IN against a subquery that returns a null matches nothing.

Can AI do this?

People still lead Few or none of the tested AI models showed they master this. 0 of 4 models in the current benchmark master it.

ModelTierProbability of masteryStatus
gemini-4-argonFlagship 36%Not shown
gemini-3.1-pro-preview*Flagship 100%Mastered
gpt-6-astra*Flagship 100%Mastered
claude-fable-5-1*Flagship 100%Mastered
gemini-3.8-flash*Mid tier 100%Mastered
gpt-6.1-sol*Mid tier 99%Mastered
claude-sonnet-5-5*Mid tier 100%Mastered
gemini-3.5-flash-liteLow cost 43%Not shown
gpt-6-lunaLow cost 45%Not shown
claude-haiku-5-5Low cost 81%Not shown

* From the earlier benchmark of 2026-10: 10 data-modelling test tasks, 3 runs per task, graded by claude-opus-5-5. These models have not taken the current 123 tasks yet; the two methods differ, so compare their figures with care. They are left out of the “most models” counts and the best-model picks.

Mastered means a probability of at least 90% that the model has this knobit, estimated from its graded answers. “Not shown” means the answers do not settle it either way. How the models are tested.

What it looks like in practice

Expected result: The predicate and the explicit null decision

How it is assessed: Flags the deficient case and passes the acceptable one. Deficient: Copied from the CHECK: interest_rate_type_code IN ('FIX','VAR') on an optional column — every current account with no rate type fails. Or WHERE account_currency_code NOT IN (SELECT currency_code FROM ref_currency) with one null code in the reference table: no violation ever found Acceptable: interest_rate_type_code IS NULL OR interest_rate_type_code IN (...) where null is allowed, and a separate completeness check where it is not; NOT EXISTS instead of NOT IN

Also known as: Nulls treated by accident (data quality rule)

Related knobits

Builds on

All 30 knobits of Derive data quality rules.

Source: Review checklist 03-dq-rules (data-quality), row 14; ISO 9075; Codd 1979; formerly data-modelling K-714