UK Public Contract Performance & Change Monitor avatar

UK Public Contract Performance & Change Monitor

Under maintenance

Pricing

from $20.00 / 1,000 contract signals

Go to Apify Store
UK Public Contract Performance & Change Monitor

UK Public Contract Performance & Change Monitor

Under maintenance

Monitor official UK9 performance, UK10 contract changes, UK11 terminations, and UK12 cancellations from the Find a Tender OCDS API.

Pricing

from $20.00 / 1,000 contract signals

Rating

0.0

(0)

Developer

Nordic Data Forge

Nordic Data Forge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Monitor official UK public-contract performance, changes, completion or termination, and procurement cancellations without maintaining a scraper.

This Actor reads the UK Cabinet Office's public Find a Tender OCDS API and turns four Procurement Act 2023 transparency notices into consistent, filterable records:

  • UK9 — Contract performance notice: published KPI metrics, observations, and source classifications.
  • UK10 — Contract change notice: amendment dates, rationales, and classification codes.
  • UK11 — Contract termination notice: published completion/termination outcome, end date, and final value.
  • UK12 — Procurement termination notice: cancelled procurement reason and date.

It requires no Find a Tender account, API key, browser session, proxy, or CAPTCHA service. The default input works immediately.

What you receive

Every result includes the official notice ID and URL, OCID, buyer and supplier organisation names, CPV codes, contract period and values when available, exact source classifications, and collection metadata. The Actor enriches each signal from the official OCDS record package so a UK9 or UK10 notice can be connected to the wider procurement record.

Persistent monitoring marks each item as new, updated, or unchanged and lists changed fields. Use new-and-updated on a schedule to create a low-noise feed.

Quick start

  1. Keep the default input.
  2. Click Start.
  3. Open the default dataset as JSON, CSV, Excel, RSS, or through the Apify API.

The default scans the last 14 days for all four signal types and returns up to 100 matching signals.

Example input

{
"noticeTypes": ["UK9", "UK10", "UK11", "UK12"],
"maxResults": 100,
"updatedWithinDays": 14,
"keywords": ["cloud", "cyber security"],
"buyerNames": ["Department for Transport"],
"cpvCodes": ["72"],
"enableChangeMonitoring": true,
"outputMode": "new-and-updated"
}

All text filters are case-insensitive and match any supplied value. CPV entries match prefixes, so 72 covers the IT family while 72000000 is exact.

Output example

{
"noticeId": "072153-2026",
"ocid": "ocds-h6vhtk-056b63",
"noticeType": "UK9",
"signalType": "contract-performance",
"title": "715124450 TWE 3",
"buyerName": "Defence Equipment and Support",
"supplierNames": ["Rubb Buildings Limited"],
"performanceOutcomeCounts": {
"met": 3,
"approaching": 0,
"notMet": 0,
"other": 0
},
"sourceUrl": "https://www.find-tender.service.gov.uk/Notice/072153-2026",
"sourceLicenceUrl": "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/",
"changeType": "new"
}

The complete dataset also contains the individual source-reported KPI metrics and observations. Outcome counts are a direct aggregation of the published classification IDs; the Actor does not calculate a risk score or label a supplier.

Suggested monitoring setup

For a daily alert feed:

  1. Save an input with the desired buyer, supplier, keyword, or CPV filters.
  2. Set outputMode to new-and-updated.
  3. Create an Apify schedule.
  4. Connect the dataset or webhook to your CRM, BI tool, email automation, Slack, or database.

The history scope is based on the business filters, not the rolling date, so scheduled runs compare correctly as time advances. History is only advanced after all selected records have been delivered; a spending limit cannot silently hide records and then mark them as seen.

Pricing and charging safety

The first 5 delivered signals per run are free. After that, the Store price is charged only when a result is successfully written to the dataset using the contract-signal event. The Actor checks that Apify's automatic dataset-item event is disabled to prevent double charging. Local runs and non-Pay-per-event builds never charge.

If an Apify spending limit is reached, the Actor stops before charging or marking an undelivered record as seen.

Data source, licence, and responsible use

Source: Find a Tender OCDS API, published by the UK Cabinet Office. The API identifies the data licence as the Open Government Licence v3.0. Every record preserves the official notice, release-package, record-package, attribution, licence, and retrieval context.

This is an independent product by Nordic Data Forge. It is not affiliated with, endorsed by, or operated by the UK Government, Cabinet Office, or Find a Tender. No government marks or branding are used.

The output deliberately excludes structured contact-person names, email addresses, telephone numbers, postal addresses, and attachments. Email-like strings in retained narrative fields are redacted. Organisation names and identifiers are retained because they are necessary to understand the published contracting record. Customers remain responsible for their own lawful use, retention, and downstream decisions.

The Actor reports factual source fields. It does not infer misconduct, supplier quality, creditworthiness, legal breach, or risk. A termination classification can also mean normal contract completion. Verify the linked official notice before any legal, procurement, financial, or reputational decision.

Source and operational limitations

  • Find a Tender controls publication timing, coverage, classifications, and corrections.
  • Older records and legacy notice formats can contain fewer fields than post-2025 notices.
  • Narrow filters may require a larger maxPages value because the official release feed contains all notice types.
  • If record enrichment is temporarily unavailable, the Actor can deliver release-only data and marks recordContextAvailable as false.
  • The Actor retries temporary 429 and 5xx responses, respects Retry-After, uses conservative pacing, and never bypasses access controls.

Support

For reproducible support, include the Actor run ID, notice ID, input with secrets removed, and the unexpected field or behavior. This Actor does not require or accept source credentials.