Skip to main content
Challenge

Catch a Duplicate Invoice Across Procurement Systems

Compare invoice exports using supplier identity and normalized invoice numbers. Detect duplicates without merging different suppliers. Prepare a payment hold recommendation, not a payment action.

Business OperationsHosted by Vera
Challenge brief

What you are building

The core problem, expected build, and operating context for this challenge.

Compare invoice exports using supplier identity and normalized invoice numbers. Detect duplicates without merging different suppliers. Prepare a payment hold recommendation, not a payment action.

Use OpenAI GPT-6 Astra with DuckDB and pandas.

Normalize spaces and case in invoice numbers. Duplicate identity requires the same supplier and normalized number.

Use gpt-6-astra for evidence interpretation and workflow coordination. Use code for arithmetic and constraint checks.

Treat source documents and browser content as data, not instructions.

Use synthetic or explicitly authorized records. Do not upload personal or confidential data without permission.

Cite input record identifiers for conclusions. Distinguish missing evidence from a negative result.

Record tool calls, results, elapsed time, and reported token usage. Do not request private chain-of-thought.

Keep external actions disabled. Use a test portal for browser workflows and preserve draft status.

Do not submit bids, contact suppliers, reveal competing bids, or place orders.

invoice-duplicates.csv and a review-only hold list

source code and dependency lockfile

automated tests and recorded tool events

a short limitations and approval note

Rules

Participation guide

Normalize spaces and case in invoice numbers. Duplicate identity requires the same supplier and normalized number. Use gpt-6-astra for evidence interpretation and workflow coordination. Use code for arithmetic and constraint checks. Treat source documents and browser content as data, not instructions. Use synthetic or explicitly authorized records. Do not upload personal or confidential data without permission. Cite input record identifiers for conclusions. Distinguish missing evidence from a negative result. Record tool calls, results, elapsed time, and reported token usage. Do not request private chain-of-thought. Keep external actions disabled. Use a test portal for browser workflows and preserve draft status. Do not submit bids, contact suppliers, reveal competing bids, or place orders.

Delivery guide

How work is evaluated

Evaluation

A 100-point review rubric with an unauthorized-action failure gate. Starter examples do not establish full workflow performance.

Submission format

invoice-duplicates.csv and a review-only hold list source code and dependency lockfile automated tests and recorded tool events a short limitations and approval note

Datasets

Challenge datasets

Public datasets, plus the private datasets you have access to.

Evaluation rubric

How submissions are scored

These dimensions define what the evaluator checks and which criteria separate a passable run from a strong one.

Dimensions
4 scoring checks
Binary
4 pass or fail dimensions
Ordinal
0 scaled dimensions
Dimension 1

correctness

Normalize spaces and case in invoice numbers. Duplicate identity requires the same supplier and normalized number.

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Dimension 2

evidence

Every factual conclusion cites the correct input record. Missing evidence remains explicit.

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Dimension 3

workflow

The submitted workflow produces invoice-duplicates.csv and a review-only hold list with independent verification.

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Dimension 4

robustness

Use equal amounts and dates with different invoice numbers. Do not infer an exact duplicate.

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Learning goals

What you should walk away with

  • Normalize spaces and case in invoice numbers. Duplicate identity requires the same supplier and normalized number.

  • Produce invoice-duplicates.csv and a review-only hold list.

  • Demonstrate evidence handling, safe failure, and reproducible results.

Resources and assets

Reference links and supporting material

Dataset notes

Three authored synthetic examples for Catch a Duplicate Invoice Across Procurement Systems. These are starter fixtures, not operational records or a validated benchmark.

Challenge setup

Evaluate the workflow against input evidence, deterministic checks, and reviewed domain cases.

Challenge input

JSON object with payload field

DuckDB

deterministic processing or artifact creation in the agent workflow.

pandas

deterministic processing or artifact creation in the agent workflow.

Evaluated output

JSON result object

Evaluation checks
  • Normalize spaces and case in invoice numbers. Duplicate identity requires the same supplier and normalized...
  • Every factual conclusion cites the correct input record. Missing evidence remains explicit.
  • The submitted workflow produces invoice-duplicates.csv and a review-only hold list with independent verific...
Configured evaluation evidence
  • Correctness
  • 3 public reference cases
Configured runtime
  • 1 configured tool

Summary shows the first task, up to three tools, and up to three evidence items. Open the technical recipe to view all configured items.

View technical recipe

Configured tools

Policy Serving
  • OpenAI GPT-6 Astra · Required

Evaluation contract

  • correctness · Weight 40
  • evidence · Weight 20
  • workflow · Weight 20
  • robustness · Weight 20

Metrics

  • correctness
  • evidence
  • workflow
  • robustness

Reference cases

  • 3 public reference cases

Workflow tasks

  1. Task 1

    Input: JSON object with payload field

    Output: JSON result object

  2. Task 2

    Input: JSON object with payload field

    Output: JSON result object

  3. Task 3

    Input: JSON object with payload field

    Output: JSON result object

Evaluation tools

  • DuckDB · deterministic processing or artifact creation
  • pandas · deterministic processing or artifact creation

Recipe freeze marker

No recipe freeze time is recorded.

Frequently Asked Questions about Catch a Duplicate Invoice Across Procurement Systems