Reading the scorecard
The example product feed has a duplicate SKU (marked as a critical rule), a missing title, a negative price, a non-numeric stock count, a status in the wrong case and a month-13 date. Each rule is listed separately; there is no single weighted score that could hide a critical failure.
The “Add an issues column” policy keeps every row and writes the reasons into _issues, which is handy for sending a file back to its owner. “Move failing rows to the ledger” produces a clean file plus a rejects file.
Save the recipe as JSON to rerun the same rules on next week’s feed. If the feed’s header changes, preflight stops the rule that lost its column.
Questions
Do range and pattern rules flag blank cells?
No. They skip blanks so that “optional but valid if present” is expressible. Add a “Not blank” or “Required” rule when a value must exist.
What is the difference between “Required” and “Not blank”?
Required fails only when the field is missing (a short record or null). Not blank also fails for empty text and whitespace-only values.
Can rules use regular expressions?
Yes. Pattern rules match the whole value and run under the same worker time budget as other regex steps.