DEV Community

Cover image for Building a Google Rating Comparison Overview for Nomad Travel Insurances using Google Places API
Philip
Philip

Posted on

Building a Google Rating Comparison Overview for Nomad Travel Insurances using Google Places API

Long-term travelers, expats, and digital nomads often struggle to find transparent travel health insurance options. Marketing websites are full of affiliate links, while reviews are scattered across forums and review portals.

At TravelInsuranc.es, the goal was to build an objective comparison tool: an overview of 30 major travel insurance providers, ranked purely by Google Business Profile reviews. This article explains how I built the backend logic using the Google Places API and automated daily updates.

Problem

Traditional insurance comparison sites monetize through affiliate commissions, which often skews recommendations (Well, I might use them, too, but without manipulating the ranking). For travelers making long-term commitments, a biased suggestion can lead to costly mistakes.

I wanted to solve this by:

  • Aggregating real customer reviews from Google Business Profiles.
  • Displaying results in a clean, sortable table.
  • Updating scores automatically every ~24 hours to stay relevant.

Solution Architecture

The solution is built on three main components:

Data Collection with Google Places API

  • Fetching company profiles using the place_id (this was the trickiest part: ensuring each insurer was mapped correctly to the right Google entity; for Aetna I chose the parent company CVS because the GBP has much more reviews).
  • Using the Places Details API to retrieve rating and userRatingCount.
  • Handling missing profiles (e.g., Chapka, NOW Health International, SafetyWing — still unresolved).

Data Processing & Storage

  • Normalizing rating data and storing it in a database (I used SQLite).
  • Scheduling daily updates with a simple cron job that re-calls the Places API.

Frontend Display

  • A sortable table where users can filter insurers by alphabetical order, average rating, and number of reviews
  • Simple UI, optimized for quick decision-making.

Sample Data Snapshot

Here are some interesting insights from the current dataset (October 2, 2025):

Top 10 Best Rated Insurers

Top 10 Best Rated Travel Insurances

  • Swisscare — ⭐ 4.9
  • TravelSecure — ⭐ 4.9
  • BDAE — ⭐ 4.5
  • Care Concept — ⭐ 4.5
  • Protrip (Dr. Walter) — ⭐ 4.5
  • … all the way down to Bupa Global at ⭐ 3.9.

Top 10 Worst Rated Insurers

Top 10 Worst Rated Travel Insurances

Notably, U.S.-based insurers dominate the bottom:

  • United Healthcare Global — ⭐ 1.4
  • Aetna (CVS Health) — ⭐ 1.6
  • IMG — ⭐ 1.8

Most Rated Insurers

Top 10 Most Rated Travel Insurances

The “most reviewed” list looks different:

  • HanseMerkur: 3,194 reviews
  • Aetna: 1,676 reviews
  • PassportCard: 1,280 reviews

This contrast highlights how volume doesn’t always equal quality.

What’s Next

Add missing insurers (if community members can help locate the correct Google profiles). I wasn't able to find the right Google Business Profiles (GBP) for these insurance companies:
👉 Chapka
👉 NOW Health International
👉 Safety Wing

Final Thoughts

I just did this as a small side project to test how I can collect GBP rating data. The most challenging part is to find the Google Places ID's. You can use the Google Place ID Finder. However, for Service Area Businesses (SABs) without a specific address location, the finder does not work. In this case you can search in the source code of the GBP for the place ID starting with "ChIJ".

Unfortunately, you cannot look up the place ID using the company domain name + some address details. Using the domain name would make it more accurate, e.g. getting a list of matching profiles and then you can select the one that matches best. Using the company name and address complicates the matching. Some companies use their legal name and some their brand name in the GBP.

You can check it out live here: 👉 TravelInsuranc.es

Top comments (0)