Listings Accuracy | Yext Hitchhikers Platform

Yext Listings syncs facts about your business to 200+ publishers in our publisher network . This presents the common questions like “how can I check if my listings are actually accurate?” or “which listings need my attention?”. Up until now, the only way to understand if a given publisher listing is reflective of your data in the platform was to visit the listing on the publisher site and manually review each field. As you can imagine, tracking this at scale was not realistic.

In an effort to promote maximum transparency of the Listings product, we have built a new system known as the Verifier that is able to determine the accuracy of listings. The Verifier determines if data in the platform appears correctly on the corresponding listing data displayed to consumers. This accuracy calculation happens at the field-level for each entity across each publisher.

Here is an example of an entity in the platform and its corresponding Google listing:

accuracy diagram

In this example, the Verifier would determine the business name, address, phone number, hours of operation, and more appear correctly on Google. We’ll deep dive into how we calculate listings accuracy, where you can find this information in the platform, which publishers and fields are in scope, and what you can do when data does not appear correctly on a listing.

Automated Scanning

Keeping up with all of the potential data display changes on the publisher network is quite the task. Every publisher has their own unique method for receiving data from Yext and displaying it on their site. To ensure that we can provide transparency into the most up-to-date listings data possible, we use a process called “scanning” to constantly fetch the data the publisher is displaying on their listings. This is known as the scanning process.

We use a dual scanning process to not let changes slip though. First, we have a real-time scan initiated every time an entity is updated in the platform and that change is sent to the publisher. Second, we have a recurring backup scan to catch any changes that may have been missed. For high-trafficked publishers like Google, we scan very frequently. For publishers with less traffic, we’ll scan less frequently.

Both of these processes work together to pull in the latest snapshot of which data appears on a listing. Once we have that snapshot, we can compare what is displayed on the listing with what is expected to be displayed (which is what is in the platform!).

Publisher, Field, and Languages Supported

Not all publishers support real-time scanning or provide a time-of-receipt of the exact data they are showing on their listings. Because of this, we can only support listings accuracy verification on many but not all of our publishers.

Below is the list of Publishers, Fields, and Languages that support listings accuracy verification today. We expect this list to continuously grow over time.

Publisher and Fields

Apple Google Facebook Yelp MapQuest AroundMe Cylex Gelbe Seiten
Name Yes Yes Yes Yes Yes Yes Yes Yes
Address Yes Yes Yes Yes Yes Yes Yes Yes
City Yes Yes Yes Yes Yes Yes Yes Yes
Region Yes Yes Yes Yes Yes Yes Yes No
Country Yes Yes Yes Yes Yes Yes Yes Yes
Postal Code Yes Yes Yes Yes Yes Yes Yes Yes
Lat/Long Yes Yes Yes Yes Yes Yes Yes Yes
Phone Yes Yes Yes Yes Yes Yes Yes Yes
Hours Yes Yes Yes Yes Yes Yes No Yes
Closed Status Yes Yes Yes Yes Yes Yes Yes Yes
Website URL Yes Yes Yes Yes Yes Yes Yes Yes

Languages

Language Status
English Supported
Spanish Supported*
Italian Supported*
French Supported*
German Supported*
Japanese Supported*
Other Supported*

*While the Verifier is supported globally, the system will have more difficulty with verifications in this language and may be prone to lower listings accuracy. This may occur for fields like Name, Address, City, etc. where the field standards and formatting typically vary by country.

Want to see support for a specific publisher or field, or have a tip on verification improvements for a specific language? Let us know on the Hitchhikers Ideas Board !


Listing Detail Page

Now that we’ve scanned the publisher network for the latest snapshot of data displayed to consumers, we can display in the UI, for each field on each listing, if the displayed data is accurate. This requires us to compare the displayed publisher data to the corresponding data in the platform.

On the Listing Detail page you will see the following columns:

  • Field: The display name of the field in the platform.
  • Entity Data: The value of the current data stored in the platform for this field, even if we last verified the listings with a previous version of content.
  • Publisher Data: The latest verified publisher data.
  • Status: Processing, Data Mismatch, Verified, Field Not Synced
  • If a field is not supported on the publisher site, it will not display in the table.
  • Table will only appear if the listing is Synced. If the listing is Processing, Opted Out, or Not Synced it will display the corresponding status in a single row on the page.

page detail tab of processing listing

Statuses

  • Verified: The current data in the platform matches the data on the publisher site.
  • Processing: The data was updated recently so we need to wait for another scan to occur. Then, we will show “Verified” or “Data Mismatch” based on the status of the scan.
  • Field Not Synced: The data is not being synced based on the Field Syncing & Mappings settings (found in the Configuration tab of the Publisher Detail page)
  • Data Mismatch: Data in the platform does not match the data on the publisher site.

Data Mismatch Details

  • If the last verified data in the platform does not match the data on the publisher site, the publisher data will be in red text in the table.
  • If data in the platform is blank, and the publisher data is not, you will see in the Entity data column.
  • If data in the platform is filled out, and the publisher data is blank, you will see in the Publisher Data column.

Actions on the Page

  • Force Sync: Resend data from the platform to the publisher.
  • View Listing: View the listing on the publisher site.
  • Scan: Fetch the publisher data and re-verify.
  • Opt In: Opt into this listing - only appears for listings that are currently opted out.

Handling Mismatches

Data Mismatches occur when the data in the platform and the data on the listing do not match. There are many reasons this may happen, and we’ll review what actions can be taken in each case.

Mismatch Details Action(s)
Missing Data on Publisher Data is filled out for a given field in the platform, but that data field is empty on the publisher. The most common reason for this mismatch is the last listing sync failed for the missing field. Force Sync
Missing Data in Yext Data appears on the publisher listing, but that data field is empty in the platform.

Note: Listings will not delete existing publisher fields if that corresponding field is blank in the platform.
Fill out entity data in Yext
Data is Similar, but Formatted Differently Publisher field data is similar and overall representative of your data in the platform, despite not being an exact match. This occurs frequently due to Publisher Transformations
  • Force Sync
  • Fill out entity data in Yext
  • Do nothing
  • Data is Wrong on Publisher Publisher field data is wrong and not representative of your data in the platform. The most common reason for this mismatch is the last listing sync failed for the incorrect field.
  • Force Sync
  • Submit a Support ticket
  • Do nothing
  • Data is Wrong in Yext Publisher field data is correct, but not representative of your data in the platform. The most common reason this occurs is due to human error when filling out your data in the platform. Update entity data in Yext

    Listings Accuracy in Report Builder

    Metrics

    Listings Accuracy: The percent of fields with accurate data on Listings.

    How metric is calculated: The number of fields (within the given filtered and dimensioned set of data) with accurate data divided by the total number of fields (within the given filtered and dimensioned set of data).

    Use cases

    Over Time

    listing accuracy over time

    By Field

    listing accuracy by field

    Applicable Dimensions

    • Time > Days of Week / Days / Hours / Months / Week Number / Weeks
    • Entities > Country / Entity / Entity Groups / Entity Types / Folder / Labels
    • Listings > Sites / Listing Field

    Applicable Filters

    • Entities > Country / Entity / Entity Groups / Entity Types / Folder / Labels
    • Listings > Sites / Listing Field


    Verifier Comparison Logic

    Verifications will either be determined as either a Match or No Match. At first glance, this is a seemingly simple problem that the Verifier is solving – “why not just check if the strings match up?” However, verification becomes much more complicated due to Publisher Transformations.

    Publisher Transformations

    Often publishers will slightly transform data before they publish it to the end user. One example of this is when publishers remove the “Inc” suffix:

    Pat’s Pizza Inc ➡️ Pat’s Pizza

    In this example, the publisher removed “Inc” from the business’ name. While these two values would fail a literal string comparison, we still want the Verifier to count this as a match, seeing as there’s no way to surface “Inc” in our business’ name - the publisher will inevitably remove it. In this case, the Listings product is executing its job properly, but the data in Yext and Publisher systems will never exactly match.

    That being said, there are many other scenarios where the business names are slightly different, but are not caused by a publisher transformation. Instead, these scenarios occur when a publisher is using the wrong data to display to consumers. Here is an example:

    Pat’s Pizza Inc ➡️ Pats Pizza Inc

    These scenarios require some investigation since we know that publishers don’t really strip the possessive apostrophe (‘) from business names, and it’s likely that something failed along the way. The new Verifier should identify these scenarios so we can:

    1. Raise it to the user’s attention
    2. Determine if the issue is Yext-actionable or client-actionable

    We would count the first example to be a Match and the second example to be a No Match. As you can imagine, these Publisher Transformations can be very nuanced and pretty tricky, which is why we built the specialized Verifier system to consistently identify them. Additionally, publishers do not provide an explicit list of transformations - we are only aware of the ones that we’ve encountered before, which may also change over time. So while we can always discover emerging examples, we built the Verifier system to handle quick iterations to keep up with the pace of our findings.

    Below are a set of lists outlining publisher and field verification logic which we’ve built into the Verifier.

    Note: we will continuously iterate this list as we encounter new edge cases


    Publisher Specific Logic

    Apple

    • May remove geomodifiers from business names
    • Does not allow tracking parameters on URLs

    Facebook

    • Does not accept Name field from Yext and any desired changes need to be updated directly on the listing

    Yelp

    • Frequently interchanges “http” and “https” in the Website field


    Field Specific Logic

    Name

    Entity Data Publisher Label Notes
    Pat’s Pizza Pat’s Pizza Match Exact match
    Pat’s Pizza Inc Pat’s Pizza Match Removed corporate extension (e.g., LLC, LP, Corp, Inc, etc.)
    Pat’s Pizza Incorporated Pat’s Pizza Inc Match Abbreviated corporate extension (e.g., LLC, LP, Corp, Inc, etc.)
    Pat’s Pizza Inc Pat’s Pizza Incorporated Match Elongated corporate extension (e.g., LLC, LP, Corp, Inc, etc.)
    Pat’s Pizza Inc. Pat’s Pizza Inc Match Removed punctuation
    GOAT Pizza, by Pat GOAT Pizza by Pat Match Removed punctuation
    Pat’s Pizza, Pretzels, and Paella Pat’s Pizza Pretzels and Paella Match Removed punctuation
    Pat’s Pizza - CLOSED Pat’s Pizza Match Removed closed status
    Pat’s Pizza - PERMANENTLY CLOSED Pat’s Pizza Match Removed closed status
    Pat’s Pizza - TEMPORARILY CLOSED Pat’s Pizza Match Removed closed status
    Pat’s Pizza Park Slope Pat’s Pizza Match Removed geo-modifier
    Pat’s Pizza Pat’s Pizza Park Slope Match Added geo-modifier; publisher may have pulled this from the address field
    The Pizza Shop Pizza Shop Match Removed preposition
    Pizza and Co. Pizza Co. Match Removed preposition
    Pat’s Pizza of Greenwich Pat’s Pizza Greenwich Match Removed preposition
    Pat’s Pizza at Bleecker Pat’s Pizza Bleecker Match Removed preposition
    Pat’s Pizza in NYC Pat’s Pizza NYC Match Removed preposition
      Pat’s       Pizza Pat’s Pizza Match Removed trailing spaces, leading spaces, and in-between spaces (if 2+)
    Pat’s PIZZA Pat’s Pizza Match Decapitalized text
    Pat’s Pizza - Best NYC Slice Pat’s Pizza-Best NYC Slice Match Str cleaning
    Pat’s Pizza - Best NYC Slice Pat’s Pizza & Best NYC Slice Match Replaced “-” with “&”
    Holiday Resort Holiday Resorts Match Pluralized “Resort” → “Resorts”
    Casalino, Riker & Huang Casalino Riker & Huang Match Removed punctuation
    Pat’s Pub Calvin’s Pub No Match Data mismatch
    Pat’s Pub Pats Pub No Match Removed possessive apostrophe
    Pat’s Pub No Match Data mismatch
    Pats Pub No Match Missing in Yext: Verifier flags as an error and recommends client to add data to Yext

    Address (address + address2)

    Entity Data Publisher Label Notes
    52 Deerfield Rd 52 Deerfield Rd Match Exact match
    52 Deerfield Road 52 Deerfield Rd Match Abbreviated street suffix (e.g., St, Rd, Dr, Ave, etc. )
    52 Deerfield Rd 52 Deerfield Road Match Elongated street suffix (e.g., St, Rd, Dr, Ave, etc. )
    52 Deerfield Rd Suite 100 52 Deerfield Rd Ste 100 Match Abbreviated secondary address unit designator (e.g., Apt, Ste, Fl, etc.)
    52 Deerfield Rd Ste 100 52 Deerfield Rd Suite 100 Match Elongated secondary address unit designator (e.g., Apt, Ste, Fl, etc.)
    52 Deerfield Rd Suite 100 52 Deerfield Rd #100 Match Replaced secondary address unit designator (e.g., Apt, Ste, Fl, etc.)
    52 Deerfield Rd #100 52 Deerfield Rd Suite 100 Match Replaced # with a secondary address unit designator (e.g., Apt, Ste, Fl, etc.)
    52 Deerfield Rd Apt #5A 52 Deerfield Rd Apt 5A Match Removed # from address2
    52 Deerfield Rd Apt A-15 52 Deerfield Rd Apt A15 Match Removed - from address2
    52 DEERFIELD RD APT 5A 52 Deerfield Rd Apt 5a Match Decapitalized text
    52 East Deerfield Rd 52 E Deerfield Rd Match Abbreviated cardinal direction
    52 E Deerfield Rd 52 East Deerfield Rd Match Elongated cardinal direction
    52 E Deerfield Rd 2nd FL 52 E Deerfield Rd Fl 2

    or

    52 E Deerfield Rd Second Floor
    Match Ordinals
    52 E 3rd Ave 52 E Third Ave Match Ordinals
    52 St. Deerfield Rd 52 St Deerfield Rd Match Removed punctuation
    52 Deerfield Rd 52 Charles Rd No Match Data mismatch – street name
    52 Deerfield Rd 48 Charles Rd No Match Data mismatch – street number
    52 Deerfield Rd 52 Deerfield Blvd No Match Data mismatch – street suffix
    52 Deerfield Rd Suite 100 52 Deerfield Rd No Match Data mismatch – missing secondary address unit designator
    52 Deerfield Rd No Match Data mismatch – missing data on publisher
    52 Deerfield Rd No Match Data mismatch – missing data in Yext

    Hours

    Note: for Hours, our goal is to check if the hours match conceptually – not text based. As such, we disregard various display nuances like 12 vs. 24 hour formatting, open 24 hr representations, closed representations, etc. A good rule of thumb is: “if a consumer showed up during the listed hours, would your business be open?”

    Entity Data Publisher Label Notes
    M-Su 8am-5pm M-Su 8am-5pm Match Exact match
    M-Su Closed M-Su 12am-12:01am Match Different representation of closed
    M-Su 24hr M-Su 12am-12am Match Different representation of open 24 hrs
    M 8am-4am M 8am-12am, Tu 12am-4am Match Different representation of past midnight hrs
    W 8am-4pm, 6PM-11PM W 8am-12pm, 2pm-5pm, 6pm-11pm Match Yext limitation - we only support up to 1 split. Compare only earliest and latest windows
    M-Th 10am-11pm, F-Su 10am-11:59pm M-Th 10am-11pm, F-Su 10am-midnight Match midnight = 11:59pm (round up to 1min) = 12am
    M-Su 24hr M-Su 12am-11:59pm Match 24hr representations
    W 8am-4pm, 6PM-11PM W 8am-12pm, 2pm-5pm, 7pm-11pm No Match Yext limitation - we only support up to 1 split. Compare only earliest and latest windows
    M-Su 8am-5pm M-Su 8am-2pm No Match Data mismatch
    M-Su 8am-5pm No Match Data mismatch – missing data on publisher
    M-Su 24hr No Match Data mismatch – missing data in Yext

    Country Code

    Entity Data Publisher Label Notes
    US US Match Exact match
    US JP No Match Data mismatch – wrong country code
    US No Match Data mismatch – missing data on publisher
    US No Match Data mismatch – missing data in Yext

    Phone

    Note: for Phone, our goal is to check if the phone numbers match conceptually – not text based. As such, we can disregard various phone formatting representations. A good rule of thumb is: “if a consumer called both phone numbers, would they arrive at the same phone line?”

    Entity Data Publisher Label Notes
    8006097657 8006097657 Match Exact match
    8006097657 (800) 609 7657 Match Formatted differently
    8006097657 (800) 609-7657 Match Formatted differently
    8006097657 800-609-7657 Match Formatted differently
    8006097657 800.609.7657 Match Formatted differently
    8006097657 +18006097657 Match Added country calling code
    18006097657 8006097657 Match Removed area code
    0 820 12 38 00 820123800 Match International number - leading 0 with spaces
    0120-003-200 120003200 Match International number - leading 0 with hyphens
    (02) 9272 6888 292726888 Match International number - leading 0 with parentheses
    18006097657 +448006097657 No Match Data mismatch – compare area codes if included in both Yext and Pub. +1 (US) != +44 (UK)
    8006097657 8006097658 No Match Data mismatch – wrong number
    8006097657 No Match Data mismatch – missing data on publisher
    8006097657 No Match Data mismatch – missing data in Yext

    Website URL

    Note: for Website, our goal is to check if the URLs match conceptually – not always text based. However, in some scenarios formatting actually is important (e.g., case sensitivity after the domain). A good rule of thumb is: “if a consumer clicked on both URLs, would they land at the same webpage?”

    Entity Data Publisher Label Notes
    http://www.patspizza.com/parkslope http://www.patspizza.com/parkslope Match Exact match
    http://www.patspizza.com/parkslope http://patspizza.com/parkslope Match Removed www.
    http://patspizza.com/parkslope http://www.patspizza.com/parkslope Match Added www.
    http://patspizza.com/parkslope http://patspizza.com/parkslope/ Match Added trailing backslash
    http://patspizza.com/parkslope/ http://patspizza.com/parkslope Match Removed trailing backslash
    http://www.patspizza.com/parkslope https://www.patspizza.com/parkslope Match Replaced http with https (Yelp-only)
    https://www.patspizza.com/parkslope http://www.patspizza.com/parkslope Match Replaced https with http (Yelp-only)
    http://patspizza.com/parkslope/?utm_source=google&utm_medium=organic&utm_campaign=fall-2022&utm_term=car-insurance&utm_content=cta1 http://patspizza.com/parkslope/ Match Removed UTM tracking tag
    http://patspizza.com/parkslope/? http://patspizza.com/parkslope/ Match Removed blank UTM tracking tag (trailing question mark)
    http://patspizza.com/parkslope/ http://patspizza.com/parkslope/?utm_source=google&utm_medium=organic&utm_campaign=fall-2022&utm_term=car-insurance&utm_content=cta1 No Match Missing tracking tag in Yext: Verifier flags as an error and recommends you to add the tracking tag to the field in the platform
    http://patspizza.com/parkslope/?utm_source=google&utm_medium=organic&utm_campaign=fall-2022&utm_term=car-insurance&utm_content=cta1 http://patspizza.com/parkslope/?utm_source=yext&utm_medium=organic No Match Tracking tag exists on both sides, but is different
    http://patspizza.com/NY http://patspizza.com/ny No Match URLs parts, after the domain, are case sensitive (e.g., arbys.com/menu vs. arbys.com/MENU)
    http://patspizza.com/ny http://patspizza.com/NY No Match URLs parts, after the domain, are case sensitive (e.g., arbys.com/menu vs. arbys.com/MENU)
    http://www.patspizza.com/parkslope http://www.calvinspizza.com/parkslope No Match Data mismatch
    http://www.patspizza.com/parkslope No Match Data mismatch – missing data on publisher
    http://www.patspizza.com/parkslope No Match Data mismatch – missing data in Yext

    Lat/Long

    The Lat/Long field is unique as we only check for the distance between the two sets of coordinates. We’ll use the below guidelines:

    • If the business address is VISIBLE in Yext (e.g. non service area business) → confirm they are less than 500 meters apart
    • If the business address is HIDDEN in Yext (e.g., service area business) → confirm they are less than 5000 meters apart
    Entity Data Publisher Label Notes
    "{"latitude": 29.734, "longitude": -95.500}" "{"latitude": 29.734,"longitude": -95500}" Match Exact match
    "{"latitude": 29.73435530690116,"longitude": -95.50055118614733}" "{"latitude": 29.734,"longitude": -95.500}" Match For visible addresses, “Match” if lat/long are < 500 meters apart
    "{"latitude": 29.75,"longitude": -95.52}" "{"latitude": 29.734,"longitude": -95.500}" Match For hidden addresses, “Match” if lat/long are < 5000 meters apart
    "{"latitude": 30.0,"longitude": -95.421025}" "{"latitude": 29.734,"longitude": -95.500}" No Match For visible addresses, “No Match” if lat/long are > 500 meters apart
    "{"latitude": 30.0,"longitude": -96.4}" "{"latitude": 29.734, "longitude": -95.500}" No Match For hidden addresses, “No Match” if lat/long are > 5000 meters apart
    "{"latitude": 29.734, "longitude": -95.500}" No Match Data mismatch – missing data on publisher
    "{"latitude": 29.734,"longitude": -95.500}" No Match Data mismatch – missing data in Yext

    City

    Entity Data Publisher Label Notes
    Brooklyn Brooklyn Match Exact match
    Brooklyn NY Brooklyn Match Removed geomodifier
    santa monica Santa Monica Match Capitalized text
    Santa Monica Santa monica Match Decapitalized text
    Castleton On Hudson Castleton-On-Hudson Match Added hyphens
    Lees Summit Lee’s Summit Match Added possessive apostrophe
    Lee’s Summit Lees Summit Match Removed possessive apostrophe
    Bridgewater E Bridgewater Match Added cardinal direction
    N Bridgewater North Bridgewater Match Elongated cardinal direction
    Winston-Salem Winston Salem Match Removed hyphen
    Winston Salem Winston-Salem Match Added hyphen
    Saint Charles St. Charles
    St Charles
    Match Saint = St = St.
    Mount Charles Mt. Charles
    Mt Charles
    Match Mount = Mt = Mt.
    Fort Charles Ft. Charles
    Ft Charles
    Match Fort = Ft = Ft.
    Charles Township Charles Township
    Charles Twp
    Charles Twp.
    Charles Twsp
    Charles Twsp.
    Match Township = Twp = Twp. = Twsp = Twsp.
    Geneve Geneva Match Corrected spelling – resolve with fuzzy match
    Chicago Denver No Match Data mismatch
    Chicago No Match Data mismatch – missing data on publisher
    Chicago No Match Data mismatch – missing data in Yext

    Region

    Entity Data Publisher Label Notes
    NY NY Match Exact match
    NY New York Match Elongated region code
    NY NJ No Match Data mismatch
    NY No Match Data mismatch – missing data on publisher
    NY No Match Data mismatch – missing data in Yext

    Postal Code

    Entity Data Publisher Label Notes
    10011 10011 Match Exact match
    10011-#### 10011 Match Removed +4 code
    10011 10011-#### Match Added +4 code
    PL15 7PF PL15 7PF Match Exact match (international)
    PL15 7PF PL157PF Match Removed “ “ (international)
    10011 10012 No Match Data mismatch
    10011 No Match Data mismatch – missing data on publisher
    10011 No Match Data mismatch – missing data in Yext

    Closed Status

    Entity Data Publisher Label Notes
    Open Open Match Exact match
    Temporarily closed Temporarily closed Match Exact match
    Permanently closed Permanently closed Match Exact match
    Open Temporarily closed No Match Data mismatch
    Open No Match Data mismatch – missing data on publisher
    Open No Match Data mismatch – missing data in Yext
    Feedback