Occupation
structured data allows salary estimate providers to define salary ranges
and region-based salary averages for job types, details about the occupation such as typical
benefits, qualifications, and educational requirements, and aggregate them by factors such as
experience levels or hiring organization.
Occupation
structured data can appear in the job experience on Google Search and as a
salary estimate rich result for a given occupation.

Use the following schema.org types and Google extensions to define salary estimates and other information for occupations.
- Occupation definitions:
Occupation
OccupationAggregation
(extension ofOccupation
)OccupationAggregationByEmployer
(extension ofOccupationAggregation
)
- Statistics:
QuantitativeValueDistribution
(extension ofQuantitativeValue
)MonetaryAmountDistribution
(extension ofQuantitativeValueDistribution
)
Examples
The following JSON-LD example shows a simple Occupation
with salary estimate data:
The following JSON-LD example shows a more complex example of
OccupationAggregationByEmployer
with salary estimate data:
Guidelines
You must follow the general structured data quality guidelines
and technical guidelines. In
addition, the following guidelines apply to Occupation
structured data:
Technical guidelines
Occupation
structured data is standalone data. It does not need to be associated with any other structured data that you provide to Google.- Add only a single
Occupation
,OccupationAggregation
, orOccupationAggregationByEmployer
to a web page. Don't add more than one of these type definitions per page. - Make sure your structured data is consistent with what you show on the page. Here are some examples:
- You only show the median salary on your page to users, and your structured data only includes those values.
- You round your yearly salary to the nearest five-thousandth on your page, and you provide the same granularity in the structured data.
- Most properties should occur only once in a definition, unless otherwise specified.
- For occupations with different characteristics based on location (for example, the
salary range in the US Northeast might be different than one for the Mid-West), create
separate web page, each with its own
Occupation
definition that specifies a differentoccupationLocation
. - Don't add salary estimate structured data to listing pages (pages that show a list of occupations).
- When your pages change, update your sitemaps on a daily basis.
Content guidelines
- Group similar occupation titles when all jobs have similar salary ranges and descriptions.
Occupation titles should be specific, but not too specific that it becomes confusing. Here
are some examples:
- Don't be too broad:
Not recommended: "Clinical, Counseling, and School Psychologists"
Recommended: "School Counselor", "Clinical Psychologist", "Clinical Therapist", "Doctor of Psychology"
- Don't be too specific:
Not recommended: "Home Health Registered Nurse" and "Registered Nurse (RN)" and "RN - Registered Nurse - Home Health - Travel Nurse"
Recommended: "Registered Nurse"
- Don't be too broad:
Structured data type definitions
This section describes the structured data types related to salary estimates.
You must include the required properties for your content to be eligible for display in enhanced search results. You can also include the recommended properties to add more information about your content, which could provide a better user experience.
You can use Google’s Structured Data Testing Tool to validate your markup.
Occupation
The Occupation
type defines information about a job, such as the estimated salary, skills
required, and responsibilities. The full definition of Occupation
is available at
schema.org/Occupation.
Required properties | |
---|---|
estimatedSalary |
Array of The estimated salary for this occupation in the given
To account for base salary, bonuses, and other forms of monetary compensation,
define multiple salaries within the |
name |
The title of the occupation. This property allows free-form text. For example, "Software Engineer". Best practices:
|
occupationLocation |
Array of The place for which this occupational description applies. Define the location
at the city, state, or country level on the one Best practices:
|
Recommended properties | |
---|---|
description |
The description of the occupation. The Additional guidelines:
|
mainEntityOfPage |
The date when the estimated salary information was produced. The
"mainEntityOfPage": { "@type": "WebPage", "lastReviewed": "2017-07-23T14:20:00-05:00" } |
MonetaryAmountDistribution
The MonetaryAmountDistribution
type is a statistical distribution of monetary
amounts. Use MonetaryAmountDistribution
to define the statistical
distribution of salary, bonus, and other monetary compensation data for the Occupation
definition.
The full definition of MonetaryAmountDistribution
is available at
schema.org/MonetaryAmountDistribution. In
addition to the properties listed below, this type inherits all properties of the
QuantitativeValueDistribution
type.
Required properties | |
---|---|
name |
The type of value. You must specify the base salary. Other types of compensation are optional. For example, "Base", "Bonus", "Commission". |
Recommended properties | |
---|---|
currency |
The ISO 4217 3-letter currency code for the value. For example, "USD" or "CAD". |
OccupationAggregation
The OccupationAggregation
type is an extension of
Occupation
that provides data as an ad hoc collection
of jobs. For example, you can specify benefits and minimum years of experience required
for jobs when they are aggregated with this type. It is a new schema.org extension proposed by Google.
In addition to the properties listed below, this type inherits all properties of the
Occupation
type.
Recommended properties | |
---|---|
sampleSize |
The number of data points contributing to the aggregated salary data. For example: "sampleSize": 42 |
yearsExperienceMax |
The maximum years of experience that are acceptable for this occupation. For example, a junior position might specify a maximum of 5 years of experience, as the following example shows: "yearsExperienceMax": 5 |
yearsExperienceMin |
The minimum number of years of experience required for this occupation. For example, a senior position might require at least of 10 years of experience, as the following example shows: "yearsExperienceMin": 10 |
OccupationAggregationByEmployer
The OccupationAggregationByEmployer
type is an extension of
OccupationAggregation
provides
job-related data that is grouped by employer. For example, you can specify the industry and
hiring organization for a group of occupations when they are aggregated by the employer. It is a
new schema.org extension proposed by Google.
In addition to the properties listed below, this type inherits all properties of the
Occupation
and
OccupationAggregation
types.
Required properties | |
---|---|
hiringOrganization |
The organization offering a position of this occupation. Set the @context to "https://schema.org/".
The "hiringOrganization": { "@context": "https://schema.org/", "@type": "Organization", "name": "Google LLC" } |
QuantitativeValueDistribution
The QuantitativeValueDistribution
type is a statistical distribution of values.
Use MonetaryAmountDistribution
to define the statistical distribution of Occupation
structured data. In addition
to the properties listed below, this type inherits all properties of the schema.org
QuantitativeValue
type. The full definition of QuantitativeValueDistribution
is available at
schema.org/QuantitativeValueDistribution.
Required properties | |
---|---|
unitText |
The frequency of the specified value. Typical values for
|
Recommended properties | |
---|---|
median |
The median (or "middle") value. For example, half of the salaries for this occupation are at or below this value. |
percentile10 |
The 10th percentile value. For example, 10% of the salaries for this occupation are at or below this value. |
percentile25 |
The 25th percentile value. For example, 25% of the salaries for this occupation are at or below this value. |
percentile75 |
The 75th percentile value. For example, 75% of the salaries for this occupation are at or below this value. |
percentile90 |
The 90th percentile value. For example, 90% of the salaries for this occupation are at or below this value. |