Purpose
Deterministic AVL comparison (incumbents, regional diversity, dual-source position) and the #5 recommendation banding with named conditions.
When to use
After risk-score in every run.
Inputs
scored.json + approved vendor list export.
Steps
- Validate against the contract.
- Run scripts/avl_match.py --scored scored.json --avl avl.json --out compared.json
- Quote the outcome and conditions verbatim; conditions are engine-derived from the escalations, never invented or dropped.
Output
compared.json - the {avl, recommendation} hop.
Grounding requirements
AVL facts cite the vendor-list export; the outcome cites rule #5.
Constraints
- The model never upgrades an outcome; a do_not_qualify stands unless the commodity council overrides in writing (#5).
Escalation / uncertainty
Concentration (#3.1) and PPAP (#4.1) conditions are mandatory when flagged.