In short. Use referenceQuantity and nested QuantitativeValue objects inside UnitPriceSpecification to express a price per unit of measure.
Definition: A product declares unit pricing in an
Offerby putting the active price in aUnitPriceSpecificationand describing the sold quantity withreferenceQuantity. A nestedQuantitativeValuecan give the comparison quantity used for the unit price.
Key facts
- Google's merchant listing documentation says that when a unit pricing measure and unit pricing base measure are present, the active price belongs inside
UnitPriceSpecificationandreferenceQuantityprovides the unit pricing. - Google defines
referenceQuantityas the quantity of the product offered for the given price. Its unit-pricing section listsunitCodeandvalueas the required properties of the relatedQuantitativeValue. - Google describes
valueReferenceas the base quantity in which the product is priced. In its example, the offered quantity is 200 ml and the pricing reference is 100 ml. - Schema.org's
UnitPriceSpecificationdefinition describesreferenceQuantityas the quantity for which a price applies, including a price per 4 kWh example. - Schema.org's
QuantitativeValuedefinition defines a point value or interval and providesunitCode,unitText,value,minValue, andmaxValueproperties.
How do the fields fit together?
Google's example nests UnitPriceSpecification under Offer.priceSpecification. The specification carries the offer price and its currency. referenceQuantity then identifies the quantity covered by that price, while its valueReference identifies the base quantity used to express the unit price.
"offers": {
"@type": "Offer",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"price": 200.00,
"priceCurrency": "EUR",
"referenceQuantity": {
"@type": "QuantitativeValue",
"value": "200",
"unitCode": "ML",
"valueReference": {
"@type": "QuantitativeValue",
"value": "100",
"unitCode": "ML"
}
}
}
}
The example describes a 200 ml perfume bottle priced at €200, with a displayed comparison of €100 per 100 ml. Google says this pattern is particularly important for products sold by volume, length, or weight in the EU, New Zealand, and Australia.
What does QuantitativeValue describe?
QuantitativeValue is the structured value used by referenceQuantity. Google says its value is the numeric value of the unit sold and its unitCode is the unit of measurement. Google supports UN/CEFACT codes or the human-readable equivalents listed in Merchant Center Help for this unit-pricing use, with sheet and item supported only by Merchant Center feeds.
Schema.org defines unitCode as a UN/CEFACT Common Code with 3 characters or a URL. It also defines unitText as text indicating the unit when a standard unit code cannot be provided. Google's unit-pricing property list specifically names unitCode and value, so those are the fields to compare with the Google example when checking eligibility for this markup.
How should the markup be checked?
Keep the active price and currency in the same UnitPriceSpecification as the quantity fields. Google documents price and priceCurrency as required properties for that type, with priceCurrency in three-letter ISO 4217 format. If an active price is also supplied directly as offers.price, Google uses that direct offers.price value and ignores offers.priceSpecification for the active price.
The source example uses referenceQuantity.value of 200, referenceQuantity.unitCode of ML, and a nested valueReference of 100 ML. A page should therefore make the sold quantity, the comparison quantity, the price, and the currency agree with the offer presented to customers.
Related terms
FAQ
Is referenceQuantity the same as the unit-pricing base?
They serve different roles in Google's model. referenceQuantity describes the quantity offered for the price, while its nested valueReference describes the base quantity in which the product is priced.
Which unit fields should be supplied?
Google's unit-pricing section requires value and unitCode for the QuantitativeValue. Schema.org also defines unitText, while Google's documented unit-pricing example uses the ML unitCode.
What happens when both price locations are present?
Google uses offers.price for the active price and ignores offers.priceSpecification for that active price. Keep one active price representation consistent with the offer shown on the page.
Sources
- Google Search Central, "Merchant listing structured data", 8 September 2026
- Schema.org, "UnitPriceSpecification", n.d.
- Schema.org, "QuantitativeValue", n.d.
Check how a page reads to answer engines. Open the GEO score analyzer