Skip to main content
Challenge

Build a Public Procurement Ownership Conflict and Case Prep Engine

Cross-reference winning bidders in public procurement tender releases against beneficial ownership statements. Flag shared corporate control across competing bidders and construct analyst case files with evidence summaries.

CybersecurityHosted by Vera
Challenge brief

What you are building

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

Cross-reference winning bidders in public procurement tender releases against beneficial ownership statements. Flag shared corporate control across competing bidders and construct analyst case files with evidence summaries.

Public procurement fraud investigator

Ingest simplified Open Contracting Data Standard award records to identify winning and competing tender bidders.

Query synthetic Beneficial Ownership Data Standard v0.4 ownership statements to trace natural persons controlling each bidder.

Detect shared direct or indirect beneficial owners between ostensibly competing bidders in the same tender.

Compile an analyst case brief documenting overlapping ownership shares, dates, and simulated conflict flags.

Multi-pane web review console showing tender comparison tables, ownership links, conflict badges, and exportable case prep dossiers.

Use mock OCDS JSON releases and BODS v0.4 normalized JSON records generated locally; no external network credentials required. Starter examples below are synthetic. They are not downloaded records.

Open Contracting Data Standard Applies OCDS release structure from Section Reference with parties, tender awards, and buyer/supplier role arrays.

pydantic-ai, fastapi, networkx. Enforces type-safe schema definitions for parsed OCDS awards, BODS ownership structures, and output conflict dossiers. Local or hosted LLM with structured output capabilities to generate analyst case narratives from graph relationships.

Submit runnable source, pinned dependencies, setup commands, a working interface, example outputs, and a recorded end-to-end demo. Include tests and an action log.

Identifies overlapping natural persons across distinct bidding parties within the same tender ocid.

Calculates cumulative ownership share across indirect intermediary holdings.

Emits a structured case preparation report containing verifiable party IDs and calculated ownership percentages.

Produces valid normalized conflict records adhering to the Pydantic schema.

```json [ { "input": { "tender_release": { "ocid": "ocds-215964-101", "id": "rel-01", "date": "2024-03-01T00:00:00Z", "tag": [ "award" ], "parties": [ { "id": "GB-COH-001", "name": "Apex Civil Ltd", "roles": [ "supplier" ] }, { "id": "GB-COH-002", "name": "Vortex Civil Ltd", "roles": [ "supplier" ] } ], "awards": [ { "id": "aw-1", "suppliers": [ { "id": "GB-COH-001" } ] } ] }, "ownership_statements": [ { "statement_id": "stmt-1", "entity_id": "GB-COH-001", "owner_name": "Eleni Vance", "share_pct": 51, "is_beneficial_owner": true }, { "statement_id": "stmt-2", "entity_id": "GB-COH-002", "owner_name": "Eleni Vance", "share_pct": 49, "is_beneficial_owner": true } ] }, "expected_output": { "ocid": "ocds-215964-101", "conflict_detected": true, "shared_principals": [ { "name": "Eleni Vance", "entities": [ "Apex Civil Ltd", "Vortex Civil Ltd" ], "max_holding_pct": 51 } ], "case_priority": "high", "recommended_action": "Refer to procurement audit board for non-competitive bidding review" } }, { "input": { "tender_release": { "ocid": "ocds-215964-102", "id": "rel-02", "date": "2024-03-02T00:00:00Z", "tag": [ "award" ], "parties": [ { "id": "GB-COH-003", "name": "Summit Rail Ltd", "roles": [ "supplier" ] }, { "id": "GB-COH-004", "name": "Horizon Track Ltd", "roles": [ "supplier" ] } ], "awards": [ { "id": "aw-2", "suppliers": [ { "id": "GB-COH-003" } ] } ] }, "ownership_statements": [ { "statement_id": "stmt-3", "entity_id": "GB-COH-003", "owner_name": "Marcus Kane", "share_pct": 75, "is_beneficial_owner": true }, { "statement_id": "stmt-4", "entity_id": "GB-COH-004", "owner_name": "Sarah Croft", "share_pct": 60, "is_beneficial_owner": true } ] }, "expected_output": { "ocid": "ocds-215964-102", "conflict_detected": false, "shared_principals": [], "case_priority": "low", "recommended_action": "Standard procurement file archiving" } } ] ```

Simulates all procurement reviews without filing statutory bid-rigging charges or notifying actual bidding vendors. Use mock external writes. Require human review before any real deployment.

Rules

Participation guide

Simulates all procurement reviews without filing statutory bid-rigging charges or notifying actual bidding vendors. Use mock external writes and human review.

Delivery guide

How work is evaluated

Evaluation

Identifies overlapping natural persons across distinct bidding parties within the same tender ocid. Calculates cumulative ownership share across indirect intermediary holdings. Emits a structured case preparation report containing verifiable party IDs and calculated ownership percentages. Produces valid normalized conflict records adhering to the Pydantic schema.

Submission format

Runnable source, pinned dependencies, setup commands, working interface, example outputs, recorded demo, tests, and action logs.

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
1 pass or fail dimensions
Ordinal
3 scaled dimensions
Dimension 1

Complete workflow

Ingest simplified Open Contracting Data Standard award records to identify winning and competing tender bidders. Query synthetic Beneficial Ownership Data Standard v0.4 ownership statements to trace natural persons controlling each bidder. Detect shared direct or indirect beneficial owners between ostensibly competing bidders in the same tender. Compile an analyst case brief documenting overlapping ownership shares, dates, and simulated conflict flags.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 2

Correctness and evidence

Identifies overlapping natural persons across distinct bidding parties within the same tender ocid. Calculates cumulative ownership share across indirect intermediary holdings. Emits a structured case preparation report containing verifiable party IDs and calculated ownership percentages. Produces valid normalized conflict records adhering to the Pydantic schema.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 3

Review interface

Multi-pane web review console showing tender comparison tables, ownership links, conflict badges, and exportable case prep dossiers.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 4

Safe execution

Simulates all procurement reviews without filing statutory bid-rigging charges or notifying actual bidding vendors.

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

  • Ingest simplified Open Contracting Data Standard award records to identify winning and competing tender bidders.

  • Query synthetic Beneficial Ownership Data Standard v0.4 ownership statements to trace natural persons controlling each bidder.

  • Detect shared direct or indirect beneficial owners between ostensibly competing bidders in the same tender.

  • Compile an analyst case brief documenting overlapping ownership shares, dates, and simulated conflict flags.

Resources and assets

Reference links and supporting material

Dataset notes

Use mock OCDS JSON releases and BODS v0.4 normalized JSON records generated locally; no external network credentials required. Supplied starter examples are synthetic, not source extracts.

Challenge setup

Configuration summary for this challenge.

Challenge input

Input details are not configured.

Pydantic AI

Typed Python agent framework.

Evaluated output

No output checks are configured.

Evaluation checks
  • Ingest simplified Open Contracting Data Standard award records to identify winning and competing tender bid...
  • Identifies overlapping natural persons across distinct bidding parties within the same tender ocid. Calcula...
  • Multi-pane web review console showing tender comparison tables, ownership links, conflict badges, and expor...
Configured evaluation evidence
  • 2 public reference cases
Configured runtime
  • 2 configured tools

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

Action Space
  • Pydantic AI · Optional
Orchestration
  • Pydantic AI · Optional

Evaluation contract

  • Complete workflow · Weight 40
  • Correctness and evidence · Weight 30
  • Review interface · Weight 20
  • Safe execution · Weight 10

Reference cases

  • 2 public reference cases

Workflow tasks

No workflow tasks are configured.

Recipe freeze marker

No recipe freeze time is recorded.

Frequently Asked Questions about Build a Public Procurement Ownership Conflict and Case Prep Engine