Schema piece - Offer

Describes an offer for a Product (typically prices, stock availability, etc).


  • Should be output when required by a Product piece.

Required properties

A valid Offer must have the following properties.

  • @type: Offer.
  • @id: The site's home URL appended by #/schema/Offer/{{ID}}, where {{ID}} is a unique identifier.
  • availability: A URL representing a schema itemAvailability value (e.g.,
  • price: The price, omitting any currency symbols, and using '.' to indicate a decimal place.
  • priceCurrency: The currency used to describe the product price, in three-letter ISO 4217 format.
  • url: The canonical URL of the page containing the Offer.
  • priceSpecification: A PriceSpecification object, including a valueAddedTaxIncluded property (of either true or false).

Optional properties

The following should be added whenever available and valid:

  • priceValidUntil: A date (in YYYY-mm-dd format) representing the end of a current, temporary pricing value (e.g., a sales period with a defined end-date).

Failure scenarios

If any of the required fields are missing or invalid, the node should not be output.

If the node is not output, any entities which would otherwise have referenced the Offer should remove those references (e.g., when a product references an Offer by ID).


Minimum criteria

"@context": "",
"@graph": [
"@type": "Offer",
"@id": "",
"price": "22.00",
"priceSpecification": {
"@type": "PriceSpecification",
"valueAddedTaxIncluded": "false"
"priceCurrency": "GBP",
"availability": "",
"url": ""