XooCode(){

MonetaryAmount

MonetaryAmount is a StructuredValue type for any monetary value or range: a salary, a fee, a deposit, a balance threshold, an incentive amount. It has 6 properties of its own: value (single amount), minValue/maxValue (range bounds), currency (ISO 4217 code), validFrom/validThrough (validity dates). MonetaryAmount appears across schema.org wherever a monetary figure needs structured representation, especially in JobPosting (baseSalary), FinancialIncentive (incentivizedItem rules), and Order/Invoice (totals).

The type hierarchy is Thing → Intangible → StructuredValue → MonetaryAmount. Use it whenever a price or amount needs unambiguous machine-readable expression. The currency property is the most common omission and the most consequential: a value of "5000" with no currency could be USD, EUR, JPY, or anything else.

Full example of schema.org/MonetaryAmount json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/MonetaryAmount
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "MonetaryAmount",
  "currency": "USD",
  "minValue": 95000,
  "maxValue": 135000,
  "validFrom": "2026-01-01",
  "validThrough": "2026-12-31"
}
</script>

value vs minValue/maxValue

Use value for a single amount: a $50 fee, a $1,200 monthly rent. Use minValue and maxValue together for a range: a salary range of $80K-$120K, a deposit between $500 and $2,000. Do not mix: setting both value and a min/max range creates ambiguity. Pick one pattern.

currency

currency takes a 3-letter ISO 4217 code: "USD", "EUR", "GBP", "DKK", "JPY". Always uppercase. Without it, the value is meaningless to international consumers and search engines. Even for single-country sites, include the currency for clarity.

validFrom and validThrough

validFrom and validThrough mark the validity period of the amount. Useful for time-limited prices, promotional rates, or salary data tied to a specific year. Both take Date or DateTime in ISO 8601 format. For permanent values, omit them.

Minimal valid version

The smallest markup that still produces a valid MonetaryAmount entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/MonetaryAmount (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "MonetaryAmount",
  "currency": "USD",
  "value": 95000
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

  • Used across other rich results (JobPosting, Product, FinancialIncentive)
    Google docs

Common MonetaryAmount mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    Missing currency

    Wrong
    "value": 5000 (no currency)
    Right
    "value": 5000, "currency": "USD"

    Without currency, the amount is ambiguous. 5000 could be USD ($5,000), JPY (~$32), EUR, GBP, or anything else. Always include currency as a 3-letter ISO 4217 code.

  2. 02

    Mixing value and min/max

    Wrong
    "value": 100000, "minValue": 80000, "maxValue": 120000
    Right
    Use either value (single amount) OR minValue+maxValue (range), not both

    value is a single point; minValue+maxValue is a range. Setting all three creates conflicting signals. Pick the pattern that matches your data: single price uses value; salary or deposit ranges use min/max.

  3. 03

    currency as currency symbol

    Wrong
    "currency": "$"
    Right
    "currency": "USD"

    currency takes the 3-letter ISO 4217 code, not the symbol. "$" could mean USD, CAD, AUD, MXN, or any of dozens of currencies. Use the standardized code.

About the example data

A salary range used in a fictional JobPosting at Xoo Code Inc. for a Senior Structured Data Engineer role.

Comments

Loading comments...

Leave a comment