TrustBnBDocs

Rating data

To rank a listing within its city, TrustBnB needs to know how that city's listings are rated. That data comes from Inside Airbnb, is summarized at build time, and ships inside the extension. Nothing is downloaded while you browse.

Where it comes from

Inside Airbnb is an independent project that regularly collects public Airbnb listings for cities around the world and publishes them under the CC BY 4.0 license.

TrustBnB uses the detailed listings.csv.gz file from the most recent collection of each city, and keeps a listing when it has:

  • an overall rating (review_scores_rating) above zero,
  • at least one review, and
  • at least one review in the 12 months before the collection (number_of_reviews_ltm, or last_review when that column is missing), so long-inactive listings don't count.

Older exports used 0–100 or 0–10 scales; those are converted to 0–5. Code: scripts/lib/insideairbnb.ts.

What ships in the extension

For each city, a summary of about 3 KB instead of the listings themselves:

Field What it is
count Listings it was built from
mean Average rating: what step 1 of the score blends towards
median Typical rating, for display
q The city's adjusted ratings at 400 evenly spaced ranks, plus both ends (401 numbers, 5 decimals)
center Median listing position, to recognize the city from map coordinates
scrapedAt Date Inside Airbnb collected the city

A global summary pools every city, weighted by listing count, for places TrustBnB doesn't cover. Everything is written to data/models.json and compiled into the extension. Code: core/models.ts.

Ranking against the summary instead of every listing is accurate to within half a percent, and keeps the extension small: under 150 KB of data for all cities.

Cities

These 44 cities are downloaded by default:

  • Amsterdam
  • Athens
  • Barcelona
  • Berlin
  • Copenhagen
  • Dublin
  • Edinburgh
  • Florence
  • Lisbon
  • London
  • Madrid
  • Mallorca
  • Munich
  • Paris
  • Porto
  • Prague
  • Rome
  • Venice
  • Vienna
  • Austin
  • Boston
  • Buenos Aires
  • Chicago
  • Hawaii
  • Los Angeles
  • Mexico City
  • Montreal
  • New Orleans
  • New York City
  • Rio de Janeiro
  • San Diego
  • San Francisco
  • Seattle
  • Toronto
  • Vancouver
  • Washington DC
  • Bangkok
  • Cape Town
  • Hong Kong
  • Melbourne
  • Singapore
  • Sydney
  • Taipei
  • Tokyo

Change the list with the TRUSTBNB_CITIES repository variable (see Releasing) or npm run data -- --cities locally. Any city Inside Airbnb covers works; npm run data -- --list shows them.

How fresh the data is

Each release is built with the most recent data Inside Airbnb has published, and the popup's footer shows the collection dates. Inside Airbnb updates most cities every few months.

On the 2nd of every month, a GitHub Actions job downloads the data again and compares each city's collection date with the latest release's data-sources.json. When a city has newer data, it publishes a data-only release (for example v0.3.0.2611). See Monthly data refresh.

Building the data yourself

npm run data                                   # default cities (a few minutes)
npm run data -- --cities paris,tokyo,lisbon    # specific cities
npm run data -- --all                          # every city on Inside Airbnb
npm run data -- --list                         # what's available
npm run data -- --file listings.csv.gz --city paris --country france --date 2026-06-10
npm run data:demo                              # synthetic data, no download

The extension build uses data/models.json if it exists, and demo data otherwise. Release builds refuse demo data.

Attribution

Rating data © Inside Airbnb, CC BY 4.0. TrustBnB is not affiliated with Inside Airbnb or Airbnb.