In short. Use TierBenefitLoyaltyPoints or TierBenefitLoyaltyPrice in hasTierBenefit, with membershipPointsEarned for points.
Definition:
hasTierBenefitis a repeated property onMemberProgramTierthat names the benefits attached to a loyalty tier. For Google's documented Search implementation, the listed values are loyalty points and a member-only price.
Key facts
- Google's loyalty program documentation lists
TierBenefitLoyaltyPointsandTierBenefitLoyaltyPriceforhasTierBenefit. - Schema.org's
MemberProgramTierdefinition giveshasTierBenefitthe expected typeTierBenefitEnumerationand describes it as a benefit for a particular loyalty-program tier. - Schema.org's
TierBenefitEnumerationpage lists four enumeration members: points, price, returns and shipping.
What does hasTierBenefit describe?
Google's loyalty-program guide, last updated 8 September 2026, defines MemberProgramTier as a tier under MemberProgram and says a program can have multiple tiers. The required hasTierBenefit value identifies a benefit for members of that tier, and Google allows a tier to have multiple benefits.
Schema.org describes MemberProgramTier as a tier under a loyalty or member program, with hasTierBenefit pointing to TierBenefitEnumeration. The property therefore describes the kind of benefit, while the tier's name identifies the membership level.
Which values can you enter?
Google's accepted-value list contains two entries:
https://schema.org/TierBenefitLoyaltyPointsmeans that members earn loyalty points. When this value is used, Google also instructs you to providemembershipPointsEarned.https://schema.org/TierBenefitLoyaltyPricemeans that the tier has a member-only price.
Google also supports the short names without the URL prefix, such as TierBenefitLoyaltyPoints. The full URLs are clearer in JSON-LD because they identify the Schema.org enumeration members directly.
Schema.org's current development page lists TierBenefitLoyaltyReturns and TierBenefitLoyaltyShipping alongside the points and price members. Google's loyalty-program table does not include those two names in its documented hasTierBenefit values, so this entry treats the two Google-listed values as the supported set for Google's Search feature.
How should the JSON-LD look?
The following pattern follows Google's example for a tier that offers both benefits. The points value is paired with membershipPointsEarned, which Google defines as the number of loyalty points earned per currency unit spent.
{
"@type": "MemberProgramTier",
"name": "gold",
"hasTierBenefit": [
"https://schema.org/TierBenefitLoyaltyPrice",
"https://schema.org/TierBenefitLoyaltyPoints"
],
"membershipPointsEarned": 10
}
hasTierBenefit is repeated in the sense that it accepts multiple values in the array. If a tier offers points alone, keep the points value and its membershipPointsEarned property together. If it offers the member-only price alone, use the price value without the points property.
How should you check the implementation?
Google's implementation workflow says to include required properties, follow its structured-data guidelines, validate the code with the Rich Results Test, and then use URL Inspection after deployment. Check that each tier has a name and at least one hasTierBenefit value, and that a points benefit has its accompanying membershipPointsEarned value.
Related terms
- How do I describe a merchant loyalty program in structured data?
- Structured data
- How do required and recommended structured data properties differ?
- Does every Schema.org property have a Google rich result feature?
FAQ
Can one tier have both loyalty points and a member-only price?
Yes. Google's example places TierBenefitLoyaltyPrice and TierBenefitLoyaltyPoints in the same hasTierBenefit array and includes membershipPointsEarned for the points benefit.
Do I have to write the full Schema.org URLs?
No. Google documents that the short names without the URL prefix are also supported, including TierBenefitLoyaltyPoints. The full URLs remain the form shown in Google's JSON-LD example.
Are returns and shipping Google-supported values here?
Schema.org lists TierBenefitLoyaltyReturns and TierBenefitLoyaltyShipping as enumeration members. Google's loyalty-program documentation lists points and member-only price for hasTierBenefit, so those two additional Schema.org members are outside the values documented on that Google page.
Sources
- Google Search Central, "Loyalty program (MemberProgram) structured data", 8 September 2026
- Schema.org, "MemberProgramTier", 16 September 2026
- Schema.org, "TierBenefitEnumeration", 16 September 2026
Check how a page reads to answer engines. Open the GEO score analyzer