2

I have a web page that lists the banks with the highest saving account rates in the country. I have created some json-ld that lists one of these banks. However, nowhere do I say in the json-ld that this is the highest rate available. Can that type of information be indicated using json-ld and schema.org?

<script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "BankAccount",
    "name": "High Interest Savings Account",
    "offers": {
      "@type": "Offer",
      "offeredBy": {
        "@type": "BankOrCreditUnion",
        "@id": "https://banka/en/on-Home",
        "image": "https://banka/en/images/logo.png",
        "name":"Bank A"
      }  
    },
    "interestRate": "1.55",
    "areaServed": "Canada (excluding Quebec)"
  }
</script>
6
  • What purpose would indicating this information in structured data serve? Unless somebody has asked for this data in a machine readable way, it is pointless to try to include it. Commented Sep 30, 2021 at 11:58
  • My understanding is that search engines use it: developers.google.com/search/docs/advanced/structured-data/…
    – ixodid
    Commented Sep 30, 2021 at 16:17
  • Unless there is relevant structured data for which Google supports a rich snippet, there is no SEO benefit. I've never seen Google "understanding the page" because of structured data cause any sort of search engine ranking boost. See my blog SEO Myth: Structured data helps search engine rankings Commented Sep 30, 2021 at 16:33
  • @StephenOstermiller I disagree that structured data is a fad, and that its only purpose is to generate rich snippets. I agree that there is not evidence of a direct causal relationship between structured data and a "rankings boost". I look forward to following your blog! Commented Oct 1, 2021 at 13:58
  • @MikeCiffone I may need to tone "fad" down a bit. Its been a couple years since I wrote that and it hasn't gone away. At the time Google was removing rich snippets faster than it was adding them. Commented Oct 1, 2021 at 14:44

3 Answers 3

3

The Schema.org structured data ontology is designed to describe specific objects and their relationships to other specific objects, it's not designed to make broad comparisons to loosely defined collections (of all the other bank accounts in the country) like that.

It's arguable that having a way to mark an interest rate as the highest within a particular service area may have value, but it's just not the way Schema.org is designed.

So the answer to your question is that it is not possible to indicate that info.

0

For interestRate, schema.org expects a Number or QuantitativeValue (for which a 'number' is recommended).

I'm not sure how this would be interpreted (probably pushing it) but it does validate. Adding a description works, but probably doesn't satisfy the semantics you're looking for.

<script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "BankAccount",
    "name": "High Interest Savings Account",
    "offers": {
      "@type": "Offer",
      "offeredBy": {
        "@type": "BankOrCreditUnion",
        "@id": "https://banka/en/on-Home",
        "image": "https://banka/en/images/logo.png",
        "name":"Bank A"
      }  
    },
    "interestRate": [
        "1.55",  
        "Highest Available"
    ],
    "description": "This account has the highest Interest Rate available",
    "areaServed": "Canada (excluding Quebec)"
  }
</script>

enter image description here

2
  • I think if someone's going more free-form like this, it may make the most sense to use a QuantitativeValue for the interestRate, then fill out the QuantitativeValue's additionalProperty with a custom property named something like "highestRate". I'm not sure how semantically sound it is to provide a second interestRate value of type Text, given that QuantitativeValue or Number are expected. Like you said I think that may be pushing it a bit. Commented Sep 30, 2021 at 22:31
  • @MaximillianLaumeister yeah, I personally feel like leaving a description is the best solution here. Also, like you originally said JSON-LD is not designed to make broad comparisons to loosely defined collections. Lastly, Google are looking for facts, and something like an interest rate can fluctuate - this bank account might not always have the lowest rate. Commented Oct 1, 2021 at 13:39
-2

Have you tried it with the aggregate rating Markup in JSON-LD? It looks like that:

"aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "5",
    "bestRating": "5",
    "worstRating": "1",
    "ratingCount": "10"
  }
2
  • 2
    I don't think that this is the right fit. Movies/Restaurants can have objective ratings on a scale. The highest interest rate is less subjective. I'm wondering whether "@type": "FAQPage", is the better approach?
    – ixodid
    Commented May 4, 2021 at 1:51
  • @ixodid FAQPage? Commented Oct 1, 2021 at 14:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.