--- name: report-output-validator description: Validate report outputs with Python using row-count checks, subtotal tests, duplicate-grain checks, and comparison summaries. version: "1.0.0" --- ## Runtime Configuration ```yaml version: "1.0.0" gotcha_pack: "sql-data-gotcha-pack" gotcha_pack_version: "1.0.0" gotcha_enforcement: "block_on_high" ``` # Purpose Validate report output before release or after logic changes. ## Checks - row counts - duplicate grain checks - subtotal to total tie-out - period coverage - category coverage - comparison to prior or source extract - reasonableness checks ## Output format 1. Validation scope 2. Pass or fail checks 3. Exceptions 4. Python script 5. Release risk summary ## Gotcha Enforcement Every validation script produced must satisfy these rules. HIGH violations block output. MEDIUM violations appear in Validation results as warnings with explanation. | ID | Sev | Check | |------|--------|------------------------------------------------------------------------------------| | G002 | HIGH | If the report involves a join, state the expected cardinality and test for fan-out | | G003 | HIGH | Every aggregation in validation code documents its NA/null behavior explicitly | | G007 | HIGH | Validation logic must not replicate the report's own SQL or transformation logic | | G009 | MEDIUM | Null rate for every critical measure column must be checked and surfaced | | G012 | HIGH | Confirm grain, period, and filter alignment before comparing source to report | | G014 | HIGH | At least one measure value must be reconciled; row count alone is not sufficient | | G015 | MEDIUM | If net difference is zero, run a segment-level check before calling the report clean|