XooCode(){

Observation

Observation is a schema.org type for a statistical observation: a specific measured value of a property on an entity at a particular time. It dual-inherits from Intangible and QuantitativeValue.

Direct properties:

  • measuredProperty: what is being measured (URL to a property definition, or text).
  • observationAbout: the entity measured (Place, Person, or any Thing).
  • observationDate: when the measurement was taken.
  • value (inherited from QuantitativeValue): the numeric result.
  • variableMeasured: the variables measured in a dataset context.
  • marginOfError: measurement uncertainty.
  • measurementMethod, measurementTechnique: how the measurement was taken.

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

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

Highlight legend:Required by GoogleRecommendedOptional
schema.org/Observation
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Observation",
  "@id": "https://xoocode.com/data/dunmore-mhi-2025",
  "measuredProperty": "https://xoocode.com/data/schema/medianHouseholdIncome",
  "observationAbout": { "@type": "City", "@id": "https://xoocode.com/reference/city/dunmore-pa", "name": "Dunmore" },
  "observationDate": "2025-12-31",
  "value": 63400,
  "unitText": "USD",
  "marginOfError": 1800,
  "measurementTechnique": "American Community Survey 5-year estimate",
  "measurementMethod": "https://www.census.gov/programs-surveys/acs/methodology.html"
}
</script>

Why it matters

Observation is the building block of schema.org's statistical-data vocabulary. Combined with StatisticalPopulation, it powers census, labour-market, and public-health data graphs that answer "what was X in Y at time Z".

Minimal valid version

The smallest markup that still produces a valid Observation 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/Observation (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Observation",
  "measuredProperty": "medianHouseholdIncome",
  "observationAbout": { "@type": "City", "name": "Dunmore" },
  "observationDate": "2025-12-31",
  "value": 63400
}
</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.

  • No dedicated rich result (used by statistical knowledge graphs)
    Google docs

Common Observation 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

    Value without unit

    Wrong
    Observation with just value: 63400
    Right
    value + unitText (or unitCode) to disambiguate

    63400 USD, 63400 hours, and 63400 people are all valid numbers — the unit is the disambiguator.

  2. 02

    Missing observationDate

    Wrong
    Observation with no date
    Right
    Always populate observationDate — statistical observations are time-scoped

    An observation without its time is unreconciliable with other observations of the same measuredProperty.

About the example data

The median household income observation for Dunmore, PA, from the fictional 2025 census.

Comments

Loading comments...

Leave a comment