Skip to main content
The winning bid was received after the submission deadline.

Methodology

A contracting process is flagged if:
  1. A valid bid’s received date (/bids/details/date) is after the submission deadline (/tender/tenderPeriod/endDate), AND
  2. At least one tenderer of that valid bid is the supplier of an active award
These tenderers are also flagged.
Example: The submission deadline is March 15. The Public Works Department leaks information from the received bids to CorruptX Solutions, to give it a competitive advantage. CorruptX Solutions submits a bid on April 1. The Public Works Department accepts the bid and awards the contract to CorruptX Solutions.
Why is this a red flag?A corrupt buyer can award the contract to the pre-determined bidder by disregarding the submission deadline. This allows the favored bidder to:
  • See competitors’ bids before submitting their own
  • Adjust their bid to undercut competitors
  • Benefit from additional preparation time not available to other bidders
Accepting late bids undermines the integrity of the competitive process and creates an unfair advantage.

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_r030: The flagged tenderers for each flagged OCID

Configuration

This indicator is not configurable through the settings file.

Assumptions

This indicator assumes that the tenderer didn’t submit another valid bid before the submission deadline; in other words, the late bid is the winning bid.
Is this assumption not true for your data? Does your data set the /awards[]/relatedBid field to link awards to specific bids? Please create an issue on GitHub - with this field, the indicator could be more precise.

Example Output

Input (OCDS JSONL showing late bid):
{"ocid": "ocds-213czf-1", "tender": {"tenderPeriod": {"endDate": "2024-03-15T23:59:59Z"}}, "awards": [{"status": "active", "suppliers": [{"id": "W"}]}], "bids": {"details": [{"tenderers": [{"id": "W"}], "date": "2024-04-01T10:00:00Z", "status": "valid"}]}}
Command:
ocdscardinal indicators --settings settings.ini --no-meta data.jsonl
Output:
{"OCID":{"ocds-213czf-1":{"R030":1.0}},"Tenderer":{"W":{"R030":1.0}}}

Implementation Details

From src/indicators/r030.rs:15-57: The indicator:
  1. Extracts the submission deadline from tender.tenderPeriod.endDate
  2. Builds a set of supplier IDs from all active awards
  3. For each valid bid:
    • Checks if the bid date is after the deadline (string comparison)
    • Checks if any of the bid’s tenderers won an award
    • Flags both the process and the matching tenderers
  4. Uses simple string comparison for dates (ISO 8601 format is lexicographically sortable)
Data quality considerations:
  • Requires accurate date field in bids.details
  • Many publishers may not populate bid submission dates
  • Clock synchronization issues could cause false positives if deadlines and bid timestamps use different timezones
Legitimate exceptions: Some jurisdictions allow extensions or accept late bids under specific circumstances (e.g., technical issues with submission systems). Organizations should:
  • Document when late bids are accepted legitimately
  • Consider implementing a grace period threshold if minor delays are acceptable
  • Review flagged cases for valid business reasons
Consider using R030 alongside:
  • R003 (Short submission period) - May indicate rushed procurement with lax deadline enforcement
  • R058 (Winner close to submission deadline) - Contrast with early submissions vs. late submissions