UnitPriceSpecification schema
The pricing detail of an offer: unit, billing period, tax treatment.
Where to use it
Nested inside Offer, especially for recurring pricing.
A complete example
Valid as written, with every required property and the recommended ones that carry real information.
{
"@context": "https://schema.org",
"@type": "UnitPriceSpecification",
"price": "249.00",
"priceCurrency": "USD",
"billingDuration": 1,
"billingIncrement": 1,
"unitCode": "MON",
"valueAddedTaxIncluded": true
}Properties
| Property | Status |
|---|---|
price | Required |
priceCurrency | Required |
billingDuration | Recommended |
billingIncrement | Recommended |
unitCode | Recommended |
valueAddedTaxIncluded | Recommended |
The three mistakes this type attracts
- 01Omitting billingDuration on a subscription, which reads as one-time.
- 02Contradicting the parent Offer's price.
- 03Setting valueAddedTaxIncluded without knowing whether it is true.
Related types
Where this appears in the playbook
- Structured data: what each type is for and which ones earned their place.
- The schema graph: composing types into one graph with stable identifiers.
- One JSON-LD script per page, holding one @graph
- Stable @id anchors that cross-reference rather than duplicate
- Optional fields are omitted, never emitted as empty strings
Questions
What is the UnitPriceSpecification schema type for?
The pricing detail of an offer: unit, billing period, tax treatment. Use it on: nested inside Offer, especially for recurring pricing.
Which UnitPriceSpecification properties are required?
UnitPriceSpecification requires 2 properties: price, priceCurrency. It also recommends 4: billingDuration, billingIncrement, unitCode, valueAddedTaxIncluded.
Does UnitPriceSpecification produce a rich result?
UnitPriceSpecification does not produce a Google rich result. It is still worth shipping, because its value is entity resolution and answer extraction rather than search result presentation.
What is the most common UnitPriceSpecification mistake?
The most common UnitPriceSpecification mistake is: Omitting billingDuration on a subscription, which reads as one-time.