# Retrieval and grounded-answer evaluation lab

Run `python retrieval_cases.py` from the repository root. The lab uses an original six-document policy corpus and six labelled questions. It executes a small BM25 implementation, eligibility filters, reciprocal-rank fusion, recall calculations, citation checks, hard-negative and regression cases.

Dense and reranker rankings, model-judge labels, latency and cost values are explicitly authored fixtures. No embedding model, reranker or LLM executes. Those cases teach comparison and calibration arithmetic without presenting fabricated model benchmarks.

The twenty-check verifier saves `retrieval-verification.json`. Passing it establishes internal consistency on the synthetic corpus, not production retrieval or answer quality.

The verifier passed all 20 checks on 20 September 2026. Five answerable questions form retrieval denominators; one separate unanswerable question exercises abstention. Human editorial review remains pending.
