← All posts

2026-08-30 · 1 min read

One Number That Explains Where Rule-Based Validation Stops

#cdisc#sdtm#validation#core

When I ported the oncology-scoped CDISC CORE rules into SHACL for the CAVE-Onc work, the result was suspiciously clean: 85 of 122 rules (69.7%) ported with zero expressiveness compromise — and the 37 that didn’t port fell into exactly two buckets. Thirty-one needed cross-domain joins the rule language can’t express; six needed row-set uniqueness across records.

That number matters more than it looks. It tells you the coverage boundary of rule-based validation is not a backlog problem (“write more rules”) but a structural one: a full third of the checks you’d want simply cannot be written in the engine’s language. And the unwritable third is where cross-domain clinical contradictions live — a RECIST response that disagrees with its own lesion measurements, a disposition date that contradicts the exposure record.

So when someone says their datasets “pass CORE,” the correct follow-up question is: pass the two-thirds that were expressible. The remaining third needs a different mechanism — in our case, graph constraints plus a small deterministic agent layer.

Full analysis in the CAVE-Onc deep-dive and the CDISC CORE field guide.

Originally published at jaimeyan.com.