Procurement and contracts profile

How government contracts and bidding processes are described, from the request for bids to the signed contract.

Schemas: 5

Code lists: 6

Standards: schema.org, Open Contracting Data Standard

Award award link

The decision to give the contract to a supplier. Mirrors the OCDS award block. Suppliers are referenced, never named in free text: a supplier name as a string cannot be joined across contracts, and that is precisely how repeat awards to connected parties stay invisible.

Standards: Open Contracting Data Standard

FieldTypeDefinitionRequired
@type "Award" Always Award. Yes
@id string This award's own dereferenceable identifier. No
awardId string Identifier for this award within the process. Contracts reference it. Yes
title string A short label for the award. No
description string A plain-language summary of what was awarded. No
status string termCode from the AwardStatus code list. Yes
date string When the award was made. No
value Amount The Amount awarded. No
supplier Reference[] References to Party entities. Required. Yes
contractPeriodStart string When the resulting contract is expected to begin. No
contractPeriodEnd string When the resulting contract is expected to end. No
document string[] Links to supporting documents, e.g. the award notice. No
Download JSON

Contract contract link

The signed agreement resulting from an award, and what was actually paid under it. Mirrors the OCDS contract and implementation blocks. Keeping the contract value distinct from the award value, and both distinct from amounts actually transacted, is what lets an auditor see overruns.

Standards: Open Contracting Data Standard

FieldTypeDefinitionRequired
@type "Contract" Always Contract. Yes
@id string This contract's own dereferenceable identifier. No
contractId string The buyer's own reference for this contract. Yes
awardId string The Award this contract implements. Must match an awardId in the same contracting process; the validator checks it. Yes
title string A short label for the contract. No
description string A plain-language summary of what the contract covers. No
status string termCode from the ContractStatus code list. Yes
value Amount The Amount the contract is signed for. No
dateSigned string When the contract was signed. No
periodStart string When the contract takes effect. No
periodEnd string When the contract ends. No
amountPaid Amount Total transacted to date under this contract. No
document string[] Links to supporting documents, e.g. the signed contract itself. No
Download JSON

ContractingProcess contracting process link

One complete procurement, from planning through tender, award, and contract - the spine that OCDS calls a contracting process, identified by an ocid. Everything that happens hangs off this one identifier, which is what makes it possible to follow a single purchase from the budget line that funded it to the supplier that was paid. schema.org has no tender, procurement, bid, or solicitation concept; Demand and Offer are retail constructs carrying GTIN, SKU and warranty semantics that do not apply, so nothing is gained by forcing a tender into them.

Standards: Open Contracting Data Standard

FieldTypeDefinitionRequired
@id string This process's own dereferenceable identifier. Yes
@type "ContractingProcess" Always ContractingProcess. Yes
ocid string Open Contracting ID: a globally unique identifier for this process, prefixed with a registered publisher prefix. The join key across publishers and the reason OCDS data is aggregatable at all. Yes
name string A short label for the process, e.g. what's being procured. No
description string A plain-language summary of the procurement. No
url string Where this process's canonical human-readable page lives. No
identifier Identifier[] Any scheme-qualified identifiers for this process beyond its @id. No
buyer Reference The GovernmentOrganization paying. Required: a procurement with no accountable buyer cannot be audited. Yes
jurisdiction Reference The Jurisdiction the procurement is conducted in. No
budgetLine Reference[] The BudgetLine(s) funding this process. The join to the budget profile, and the link that answers 'what did we actually buy with that appropriation'. No
tender Tender The Tender for this process - what was solicited, and how. No
award Award[] The Award(s) made in this process. Usually one, but a process can split a contract across several suppliers. No
contract Contract[] The Contract(s) signed as a result of this process. No
party Reference[] References to the non-government Party entities involved. Government participants are reached through buyer and tender.procuringEntity instead, so a body is never duplicated as both an organization and a party. No
dateModified string When this record was last updated. No
language string The language this process's documents are in. No
sourceDataset string The Dataset this record was published as part of. No
{
  "@id": "https://example-city.gov/id/contracting-process/2025-pw-014",
  "@type": "ContractingProcess",
  "ocid": "ocds-example-2025-pw-014",
  "name": "Street resurfacing programme, FY2026",
  "buyer": {
    "@id": "https://example-city.gov/id/organization/city-government",
    "name": "Example City Government"
  },
  "jurisdiction": {
    "@id": "https://example-city.gov/id/jurisdiction/example-city",
    "name": "Example City"
  },
  "budgetLine": [
    {
      "@id": "https://example-city.gov/id/budget-line/fy2026/exp-street-maintenance",
      "name": "Street maintenance programme"
    }
  ],
  "dateModified": "2025-09-01",
  "party": [
    {
      "@id": "https://example-city.gov/id/party/northgate-paving",
      "name": "Northgate Paving LLC"
    },
    {
      "@id": "https://example-city.gov/id/party/valley-surfacing",
      "name": "Valley Surfacing Co."
    }
  ],
  "tender": {
    "@type": "Tender",
    "tenderId": "PW-2025-014",
    "title": "Street resurfacing, District 2 and District 4",
    "description": "Mill and overlay of approximately 11 km of residential streets.",
    "status": "complete",
    "procurementMethod": "open",
    "procurementMethodDetails": "Invitation for bids, sealed",
    "mainProcurementCategory": "works",
    "classification": [
      {
        "@type": "PropertyValue",
        "propertyID": "cpv",
        "value": "45233220",
        "name": "Surface work for roads"
      },
      {
        "@type": "PropertyValue",
        "propertyID": "unspsc",
        "value": "72141101",
        "name": "Road paving"
      }
    ],
    "value": {
      "@type": "MonetaryAmount",
      "value": 3200000,
      "currency": "USD"
    },
    "procuringEntity": {
      "@id": "https://example-city.gov/id/organization/public-works",
      "name": "Public Works Department"
    },
    "tenderPeriodStart": "2025-07-07",
    "tenderPeriodEnd": "2025-08-04",
    "enquiryPeriodEnd": "2025-07-21",
    "numberOfTenderers": 2,
    "submissionMethodDetails": "Sealed bids delivered to the City Clerk, opened publicly.",
    "document": [
      "https://example-city.gov/procurement/PW-2025-014/ifb.pdf"
    ]
  },
  "award": [
    {
      "@type": "Award",
      "awardId": "PW-2025-014-A1",
      "title": "Award to Northgate Paving LLC",
      "status": "active",
      "date": "2025-08-18",
      "value": {
        "@type": "MonetaryAmount",
        "value": 3065000,
        "currency": "USD"
      },
      "supplier": [
        {
          "@id": "https://example-city.gov/id/party/northgate-paving",
          "name": "Northgate Paving LLC"
        }
      ],
      "contractPeriodStart": "2025-09-15",
      "contractPeriodEnd": "2026-04-30",
      "document": [
        "https://example-city.gov/procurement/PW-2025-014/award.pdf"
      ]
    }
  ],
  "contract": [
    {
      "@type": "Contract",
      "contractId": "PW-2025-014-C1",
      "awardId": "PW-2025-014-A1",
      "title": "Street resurfacing contract",
      "status": "active",
      "value": {
        "@type": "MonetaryAmount",
        "value": 3065000,
        "currency": "USD"
      },
      "dateSigned": "2025-09-02",
      "periodStart": "2025-09-15",
      "periodEnd": "2026-04-30",
      "amountPaid": {
        "@type": "MonetaryAmount",
        "value": 1150000,
        "currency": "USD"
      },
      "document": [
        "https://example-city.gov/procurement/PW-2025-014/contract.pdf"
      ]
    }
  ]
}
Download JSON

Party party link

A non-government organization taking part in a contracting process - a tenderer, a supplier, a funder - with the roles it plays. Government participants are NOT duplicated here: the buyer and procuring entity are _core GovernmentOrganizations, referenced directly from the process, so one body never becomes two entities. A scheme-qualified identifier is required: a supplier known only by name cannot be joined across contracts or to a company register, and unjoinable supplier data is the main reason procurement transparency fails in practice.

Standards: Open Contracting Data Standard

FieldTypeDefinitionRequired
@id string This party's own dereferenceable identifier. Yes
@type "Organization" Always Organization, a real schema.org type - Party is schemaGov's name for this role, not a minted type schema.org needs to know about. Yes
name string The party's legal or trading name. Yes
identifier Identifier[] At least one. Use an org-id.guide prefix for the national company register (org-id:GB-COH, org-id:US-EIN) or an LEI. This is the same pattern OCDS uses, so it crosswalks without transformation. Yes
role string[] termCode(s) from the PartyRole code list. Yes
address object schema:PostalAddress for this party. No
contactPoint object How to reach this party. No
url string The party's own website, where one exists. No
{
  "@id": "https://example-city.gov/id/party/alder-street-holdings",
  "@type": "Organization",
  "name": "Alder Street Holdings LLC",
  "identifier": [
    {
      "@type": "PropertyValue",
      "propertyID": "org-id:US-EIN",
      "value": "88-2213470"
    }
  ],
  "role": [
    "supplier"
  ]
}
Download JSON

Tender tender link

The solicitation: what is being bought, how bids are invited, and on what timetable. Mirrors the OCDS tender block.

Standards: Open Contracting Data Standard

FieldTypeDefinitionRequired
@type "Tender" Always Tender. Yes
@id string This tender's own dereferenceable identifier. No
tenderId string The buyer's own tender reference. No
title string A short label for what's being procured. No
description string A plain-language summary of what's being bought and how bids are invited. No
status string termCode from the TenderStatus code list. Yes
procurementMethod string How bids were invited. Optional at Core conformance because real publishers omit it on some notices, but REQUIRED at Standard conformance: without it, the question of how much public spending was never competed is unanswerable. No
procurementMethodDetails string The publisher's own name for the procedure. No
procurementMethodRationale string Why this method was chosen. Expected whenever procurementMethod is 'direct' - a sole-source award without a stated reason is the single most common audit finding in public procurement. No
mainProcurementCategory string termCode from the ProcurementCategory code list. No
classification Identifier[] What is being bought, as scheme-qualified codes: CPV in the EU, UNSPSC globally, NIGP in much of the US. Same propertyID/value pattern as every other identifier in this profile. No
value Amount Estimated value. No
procuringEntity Reference The GovernmentOrganization running the tender, where different from the process's own buyer. No
tenderPeriodStart string When bids may first be submitted. No
tenderPeriodEnd string The submission deadline. No
enquiryPeriodEnd string The deadline for bidders to ask questions, where the process has one. No
numberOfTenderers integer How many bids were received. No
submissionMethodDetails string How and where to submit a bid, in the publisher's own words. No
document string[] Links to supporting documents, e.g. the tender notice or bid specification. No
Download JSON