Key insights
- Let users define validation criteria in plain language instead of regex or rigid templates — lower the barrier to describing what "valid" actually means.
- Report each rule with three things: a pass/fail status, a confidence score, and the extracted value ("$12,450.00", "8 of 8 fields present") — evidence beats a bare checkmark.
- Pair the per-rule detail with an overall summary — a score ring, "3 of 4 rules passed", and a confidence rating — so the outcome reads at a glance before anyone digs in.
- Encode status with both an icon and a color (green ✓ for pass, red ✗ for fail) plus tinted card backgrounds, so state survives for color-blind users.
- Cover the wait with an explicit processing state — a scan animation and "Analyzing document against your rules…" — so the system never looks frozen while it works.
- Expose confidence per result, not just a global verdict, so users know which outcomes to trust and which to double-check.
Do / Don't
- Do: Show the extracted value behind every result so users can verify the machine's reasoning, not just its verdict.
- Do: Give an at-a-glance summary (score, count passed) alongside the detailed per-rule breakdown.
- Do: Signal each status with an icon and a color together, never color alone.
- Don't: Collapse a rich validation into a single pass/fail with no supporting evidence.
- Don't: Force users to write regex or wire up templates to express a simple check.