Price close to winning bid (R024)

The percentage difference between the winning bid and the second-lowest valid bid is a low outlier.


For each contracting process, the difference is calculated as \((secondLowestValidBidAmount - winningBidAmount) \over winningBidAmount\).

A contracting process is flagged if the difference is less than or equal to the lower fence of \(Q_1 - 1.5(IQR)\), where \(Q_1\) is the first quartile and \(IQR\) is the interquartile range for the set of differences.

The winner and second-lowest bidder are also flagged.


In 25% (\(Q_1\)) of contracting processes in Atlantis, the second-lowest valid bid is at most 5% greater than the winning bid. In 75% (\(Q_3\)) of contracting processes, it is at most 7% greater. This yields a lower fence of 2% (0.02).

In a contracting process, CollusionCorp won with a bid of $100,000, and ProcureManipulate lost with the second-lowest bid of $101,000. The difference is 1% (0.01). This is less than the lower fence of 2%. Therefore, the process is flagged.

Why is this a red flag?

A colluding bidder can mimic competition by submitting a bid that is similar in price (but different in quality, for example) from its colluding partner.

Based on “Difference between first and second relative offer prices” in Toolkit for detecting collusive bidding in public procurement and “Winning tender just below the next lowest bid” in Fraud in Public Procurement: A collection of Red Flags and Best Practices.


The indicator’s value for the contracting process is the difference, as a decimal.

The indicator’s value for the tenderer is always 0.0.

If the --map command-line flag is set, the Maps key contains:


The flagged tenderers for each flagged ocid.


All configuration is optional. To override the default lower fence, add to your settings file, as a decimal:

threshold = 0.05

See also

no_price_comparison_procurement_methods and price_comparison_procurement_methods in Global configuration


A contracting process is excluded if:

  • An award’s status is pending or invalid.

  • The winning bid is not the lowest bid. (This indicator requires the award criteria to be price-only.)

  • There are multiple active awards (a.k.a. winning bids). #14

  • A bid is submitted by multiple tenderers. #17

  • An award is made to multiple suppliers. #17


Do you want to eliminate an exclusion? Please contributed to the linked GitHub issue.


This indicator assumes that the tenderer of the winning bid didn’t submit another valid bid.





$ ocdscardinal indicators --settings docs/examples/R/024.ini --no-meta docs/examples/R/024.jsonl