Reject defects without losing evidence
Ordered rules normalize accepted values, preserve safe exception records, and reconcile every deliberately injected defect.
I designed and implemented a reproducible Python and SQL workflow that validates operational data, reconciles metrics, produces Excel and HTML reports, and controls AI-generated summaries through automated claim checks and separate human approval.
✓ 900 synthetic records generated
✓ 840 accepted · 60 rejected
✓ 10 SQL metrics reconciled
✓ Excel + HTML reports produced
✓ Structured AI draft validated
✓ Human decision: APPROVEDOperational problem
Reporting workflows need clear validation, traceable metrics, usable outputs, and safeguards when AI assists with narrative drafting.
Ordered rules normalize accepted values, preserve safe exception records, and reconcile every deliberately injected defect.
SQL defines authoritative values. AI receives aggregate metrics only and cannot calculate, approve, or publish its own claims.
Deterministic JSON, Excel, HTML, and accessible charts remain complete when a provider fails or a draft is rejected.
Schema, numeric, semantic, privacy, and limitation checks run before an append-only human review decision.
Implementation
Published evidence
These files preserve aggregate results and review evidence while excluding credentials, account details, provider payloads, local paths, rejected drafts, and row-level records.
verification-summary.json
approved-narrative.json
review-receipt.json
evidence-manifest.jsonEvidence boundary
This is a self-directed portfolio project using fictional data. The live API call was a bounded local demonstration, not a client deployment, enterprise workload, model-development result, or measured organizational impact.
Related capabilities
The project demonstrates how I combine technical implementation with evidence, documentation, safe boundaries, and practical reporting.