Heavily discounted bid (R058)¶
The percentage difference between the winning bid and the second-lowest valid bid is a high outlier.
See also
Methodology¶
For each contracting process, the difference is calculated as \((secondLowestValidBidAmount - winningBidAmount) \over winningBidAmount\).
A contracting process is flagged if the difference is greater than or equal to the upper fence of \(Q_3 + 1.5(IQR)\), where \(Q_3\) is the third quartile and \(IQR\) is the interquartile range for the set of differences.
The winner is also flagged.
Example
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 an upper fence of 10% (0.1
).
In a contracting process, Lemon Industries won with a bid of $100,000, and FairDeal Enterprises lost with the second-lowest bid of $115,000. The difference is 15% (0.15
). This is greater than the upper fence of 10%. Therefore, the process is flagged.
Why is this a red flag?
An unethical bidder can offer defective goods (“lemons”) if the buyer has inadequate quality criteria.
Based on “The price offered by the winning bidder is significantly lower than the price offered by the rest of the bidders” in Fraud in Public Procurement: A collection of Red Flags and Best Practices, “Difference between lowest and second lowest bid prices” in Assessing the potential for detecting collusion in Swedish public procurement, and The Market for “Lemons”: Quality Uncertainty and the Market Mechanism.
Output¶
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:
- ocid_tenderer_r058
The flagged tenderers for each flagged
ocid
.
Configuration¶
All configuration is optional. To override the default upper fence, add to your settings file, as a decimal:
[R058]
threshold = 0.50
See also
no_price_comparison_procurement_methods
and price_comparison_procurement_methods
in Global configuration
Exclusions¶
A contracting process is excluded if:
An award’s status is pending or invalid.
The winning bid is not the lowest bid.
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
Note
Do you want to eliminate an exclusion? Please contributed to the linked GitHub issue.
Assumptions¶
This indicator assumes that the tenderer of the winning bid didn’t submit another valid bid.
Demonstration¶
Input
{"ocid":"F","bids":{"details":[{"status":"valid","tenderers":[{"id":"W"}],"value":{"amount":1,"currency":"USD"}},{"status":"valid","tenderers":[{"id":"L"}],"value":{"amount":100,"currency":"USD"}}]},"awards":[{"status":"active","suppliers":[{"id":"W"}]}]}
{"ocid":"1","bids":{"details":[{"status":"valid","tenderers":[{"id":"W"}],"value":{"amount":1,"currency":"USD"}},{"status":"valid","tenderers":[{"id":"L"}],"value":{"amount":2,"currency":"USD"}}]},"awards":[{"status":"active","suppliers":[{"id":"W"}]}]}
{"ocid":"2","bids":{"details":[{"status":"valid","tenderers":[{"id":"W"}],"value":{"amount":1,"currency":"USD"}},{"status":"valid","tenderers":[{"id":"L"}],"value":{"amount":2,"currency":"USD"}}]},"awards":[{"status":"active","suppliers":[{"id":"W"}]}]}
{"ocid":"3","bids":{"details":[{"status":"valid","tenderers":[{"id":"W"}],"value":{"amount":1,"currency":"USD"}},{"status":"valid","tenderers":[{"id":"L"}],"value":{"amount":2,"currency":"USD"}}]},"awards":[{"status":"active","suppliers":[{"id":"W"}]}]}
{"ocid":"4","bids":{"details":[{"status":"valid","tenderers":[{"id":"W"}],"value":{"amount":1,"currency":"USD"}},{"status":"valid","tenderers":[{"id":"L"}],"value":{"amount":2,"currency":"USD"}}]},"awards":[{"status":"active","suppliers":[{"id":"W"}]}]}
Output
$ ocdscardinal indicators --settings docs/examples/settings.ini --no-meta docs/examples/R/058.jsonl
{"OCID":{"F":{"R058":99.0}},"Tenderer":{"W":{"R058":0.0}}}