| key | type | primitive | tier |
|---|---|---|---|
valid_extraction_shape | must_have | json_schema@1 | — |
invoice_number_format | must_have | regex_match@1 | — |
total_is_positive | must_have | numeric_threshold@1 | — |
matches_source_document | scored | llm_judge@1 | 2 |
**Judges:** structured data extracted from an invoice — schema-valid, well-formed identifiers, positive totals (all deterministic), and field-level fidelity to the source document (judged against references). **Use when:** an LLM/OCR pipeline extracts financial documents and silent transcription errors cost real money (AP automation, expense ingestion, billing reconciliation).
curl -s -X POST $API/v1/rubrics -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d @templates/extraction-qa-invoice/rubric.json
curl -s -X POST $API/v1/verify -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"rubric_id":"<id>","submission":{"inline":"{\"invoice_number\":\"INV-48213\",...}"},"options":{"wait_ms":45000}}'MCP: `verify_submit` with the extraction JSON as `submission.inline`; supply the source document text as references so `matches_source_document` has ground truth.