Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/open-contracting/cardinal-rs/llms.txt

Use this file to discover all available pages before exploring further.

Different tenderers submitted bids with the same price.

Methodology

A contracting process is flagged if different tenderers submitted bids with the same price (amount and currency). These tenderers are also flagged.
Example: The Ministry of Defense opens bids early and leaks the lowest price to BribeCorp. BribeCorp submits a bid matching the lowest price. The Ministry of Defense awards the contract to BribeCorp.
Why is this a red flag?A corrupt buyer can award the contract to the pre-determined bidder by leaking competitors’ prices. The pre-determined bidder can then submit a matching bid to appear competitive while ensuring they win (or tie for the lowest price).Identical prices may also indicate bid coordination between supposedly independent tenderers in a collusion scheme.

Output

The indicator’s value is always 1.0 for both the contracting process and flagged tenderers. If the --map command-line flag is set, the Maps key contains:
  • ocid_tenderer_r028: The flagged tenderers for each flagged OCID

Configuration

This indicator is not configurable through the settings file.
See also: no_price_comparison_procurement_methods and price_comparison_procurement_methods in global configuration for excluding certain procurement types from price-based indicators.

Exclusions

A contracting process is excluded if:
  • Prices are predetermined by the buyer (e.g., rate card contracts, framework agreements with fixed prices)
The indicator correctly handles the case where a single tenderer submits multiple bids with the same price - this is allowed and not flagged.

Example Output

Input (OCDS JSONL with matching prices):
{"ocid": "ocds-213czf-1", "bids": {"details": [{"tenderers": [{"id": "D"}], "value": {"amount": 100000, "currency": "USD"}}, {"tenderers": [{"id": "V"}], "value": {"amount": 100000, "currency": "USD"}}]}}
Command:
ocdscardinal indicators --settings settings.ini --no-meta data.jsonl
Output:
{"OCID":{"ocds-213czf-1":{"R028":1.0}},"Tenderer":{"D":{"R028":1.0},"V":{"R028":1.0}}}

Implementation Details

From src/indicators/r028.rs:28-71: The indicator:
  1. Checks if the procurement method allows price comparison
  2. For each bid, extracts the price (amount + currency) and tenderer IDs
  3. Maintains a hash map of prices to sets of tenderer IDs
  4. When a duplicate price is found:
    • Verifies it’s from different tenderers (not the same tenderer re-bidding)
    • Flags the contracting process
    • Flags all tenderers involved (both the original and duplicate)
  5. Handles currency correctly - bids are only considered identical if both amount AND currency match
Important edge cases:
  • If tenderer A submits two bids at $100k, this is NOT flagged
  • If tenderer A and B both bid $100k, this IS flagged
  • If A bids 100kUSDandBbids100k USD and B bids 100k EUR, this is NOT flagged (different currencies)
Data requirements: This indicator requires the bids.details array to be populated with tenderer information and bid values. Many OCDS publishers don’t include detailed bid information, which limits the applicability of this indicator.

Build docs developers (and LLMs) love