TrustBnBDocs

The Trust score

The Trust score answers one question: compared with the other listings in the same city, how good is this one's rating, once you account for how many reviews back it up? It takes three steps, all computed in your browser from data built into the extension.

Code: core/trustScore.ts (the method) and core/models.ts (the compact city data it runs on).

1. Account for the number of reviews

A 5.0 from 3 guests says less than a 4.95 from 300. TrustBnB blends each rating with the city's average rating as if the listing had 10 extra reviews at that average:

adjusted = (n × rating + 10 × city average) / (n + 10)

where n is the listing's review count. Listings with few reviews are pulled strongly towards the average; listings with hundreds barely move. With a city average of 4.75:

Rating Reviews Adjusted
5.00 3 4.808
4.97 50 4.933
4.95 300 4.944

The 5.0 from 3 reviews now ranks below the 4.95 from 300. This is a Bayesian average (a form of empirical Bayes shrinkage). 10 is a judgment call: large enough that a handful of glowing reviews can't top the city, small enough that a listing with 30 or more reviews is mostly judged on its own.

2. Rank it in its city

Next, TrustBnB works out the share of the city's listings whose adjusted rating is lower. Every listing in the city went through step 1 too, so they're compared on equal terms.

Airbnb ratings have two decimals, so many listings tie. Ties share the middle of their group: if 30% of the city is below a listing and 10% has exactly the same adjusted rating, it beats 30% + 10% / 2 = 35%.

TrustBnB doesn't ship every listing, only each city's adjusted ratings at 400 evenly spaced ranks (every 0.25%). A rating between two of those points is placed by linear interpolation. Compared with ranking against the full list of listings, this is off by less than 0.5% (tested in core/models.test.ts). See Rating data.

3. Re-grade on 1–5

The rank is then read off a grading curve: the score a listing at that rank would get on a review scale that people actually use from top to bottom.

Realistic (the default) uses how TripAdvisor ratings are spread out, as reported by Zervas, Proserpio and Byers, A first look at online reputation on Airbnb, where every stay is above average (Marketing Letters, 2021):

TripAdvisor rating1.01.52.02.53.03.54.04.55.0
Share of places0.3%1.0%1.8%3.7%9.5%21.0%32.5%24.5%5.8%

Each half-star bin is spread evenly over its width (4.0 covers 3.75–4.25), and the score for a rank is read off the cumulative shares. The shares are read off the paper's chart by eye, so they're approximate.

Strict maps rank straight onto the scale: score = 1 + 4 × rank. The median listing gets 3.0, the top one 5.0.

What the two curves give at different ranks:

ListingRank shownRealisticStrict
Beats 5%Bottom 5%2.5 Poor1.2 Poor
Beats 10%Bottom 10%2.9 Meh1.4 Poor
Beats 25%Bottom 25%3.5 Meh2.0 Poor
Beats 50%Top 50%3.9 Fine3.0 Meh
Beats 75%Top 25%4.4 Great4.0 Fine
Beats 90%Top 10%4.7 Great4.6 Great
Beats 95%Top 5%4.8 Great4.8 Great
Beats 99%Top 1%5.0 Great5.0 Great

Tiers

Each score gets a tier, shown on badges and in the panel. The cut points sit halfway between TripAdvisor's half-star steps, so on the Realistic curve a Great listing is one that would show 4.5 stars or more there.

TierScoresShare on RealisticShare on Strict
Great4.3–5.030%19%
Fine3.8–4.232%13%
Meh2.8–3.730%25%
Poor1.0–2.77%44%

Scores are shown to one decimal, and tiers use the unrounded score.

Worked example

A listing in a city whose average rating is 4.75 shows ★ 4.97 from 50 reviews.

  1. Adjusted rating: (50 × 4.97 + 10 × 4.75) / 60 = 4.933.
  2. Say 78% of the city's listings have a lower adjusted rating: its rank is 0.78, and the panel says "Top 22%".
  3. On the Realistic curve, rank 0.78 gives 4.4 Great. On Strict it's 1 + 4 × 0.78 = 4.12, so 4.1 Fine.

Listings outside TrustBnB's cities

When TrustBnB has no data for the city on screen, it compares listings with all of its cities pooled together, each weighted by its number of listings. Rating inflation looks similar across cities, so this is a reasonable stand-in, but a city-specific comparison is better. See which city a listing is compared with.

What the score doesn't do

  • It only uses the overall rating and the review count. It knows nothing about price, location, photos or what the reviews say.
  • It compares a listing with its whole city, not just with similar places (a hostel bed and a villa are in the same pool).
  • It reflects the data's scrape date. Inside Airbnb collects each city every few months; see freshness.