A+
Mo'Joe Cafe
looks legit · 4.37★, holds up
A
Berkeley Bowl Marketplace
looks legit · 4.61★, holds up
A+
Industrial Tattoo & Piercing
looks legit · 4.69★, holds up
A+
Picante
looks legit · 4.15★, holds up
A
Flowerland Nursery
looks legit · 4.64★, holds up
A
Zachary's Chicago Pizza
looks legit · 4.63★, holds up
A+
Bowl'd Korean Rice Bar
looks legit · 4.45★, holds up
A
Philz Coffee
looks legit · 4.42★, holds up
A
Acme Bread
looks legit · 4.81★, holds up
A
Artís Coffee
looks legit · 4.39★, holds up
A
Oceanview Diner
looks legit · 4.44★, holds up
A
Spoon Korean Bistro
looks legit · 4.42★, holds up
A
Paisan
looks legit · 4.32★, holds up
A
FatApple’s Berkeley Restaurant and Bakery
looks legit · 4.37★, holds up
D
The Station - Smashburgers
manipulation detected · 4.81★ claimed → 4.60★ adjusted
A
KingPin Donuts
looks legit · 4.08★, holds up
A
Monterey Market
looks legit · 4.70★, holds up
A+
Bangkok Thai Cuisine
looks legit · 4.37★, holds up
A
Cancun Sabor Mexicano
looks legit · 4.25★ claimed → 4.14★ adjusted
A
Ippuku
looks legit · 4.44★, holds up
A
Cheese Board Collective Pizzeria
looks legit · 4.75★, holds up
A
Via del Corso
looks legit · 4.55★, holds up
A
Tipsy Yeti Restaurant & Bar
looks legit · 4.82★, holds up
A
The Berkeley Boathouse
looks legit · 3.98★, holds up
A
Skates On The Bay
looks legit · 4.24★, holds up
A
Saul's Restaurant & Delicatessen
looks legit · 4.48★, holds up
A
La Note
looks legit · 4.37★, holds up
A+
Kinda Izakaya
looks legit · 4.45★, holds up
A+
Jupiter
looks legit · 4.47★, holds up
B
GUSTO RESTAURANT
inflated rating · 4.93★ claimed → 4.68★ adjusted
A
Gather in Berkeley
looks legit · 4.36★, holds up
A+
FAVA
looks legit · 4.82★, holds up
D
Farmhouse Kitchen Thai Cuisine
possible manipulation · 4.73★ claimed → 4.48★ adjusted
A
Eureka!
looks legit · 4.25★, holds up
A
Eggy’s Neighborhood Kitchen
looks legit · 4.57★, holds up
A
Comal
looks legit · 4.28★, holds up
A+
Angeline's Louisiana Kitchen
looks legit · 4.48★, holds up
A
Chez Panisse
looks legit · 4.54★, holds up
A+
Berkeley Social Club
looks legit · 4.30★, holds up
B
Burma Berkeley
inflated rating · 4.83★ claimed → 4.63★ adjusted

how it works

1. your agent collects the reviews

It opens the listing in its own browser, sorts by newest and collects them: all of them, or the 500 most recent at a big listing. We don't scrape Google.

2. we run the stats

Burst days, throwaway accounts, cross-posted text, solicited reviews, rating drift. Statistics, not vibes.

3. you get a grade

A to F, plus the rating credible reviewers actually give, with the evidence one click away. The place then appears here for everyone.

Google usually asks the browser to be signed in before it will sort or load more reviews. The agent reads Maps through your signed-in browser, much like scrolling the listing yourself. Heavy use could trip Google's rate limits; if you plan to check many places, a secondary Google account is a sensible choice.

No agent? Scripts can POST the same review JSON to /api/submissions; the format is at /api/sources/google-maps. Everything required is visible on the review card; review ids and exact timestamps are optional. Results from a single unconfirmed submitter are labeled as such until a second source agrees.

methodology

what signals do we look for?

We read a place's full review history and weigh the signals that are costly for a review farm to fake:

  • Burst campaigns: clusters of 5 star reviews dumped on a single day by low-history accounts. A genuine surge keeps a place's normal share of Local Guides, so it isn't counted against it.
  • Drip-feed farms: reviews arriving nearly every day at a pace no organic business sustains, a paid stream spread thin to dodge obvious spikes.
  • Cross-posted text: the same review copied word-for-word onto other businesses, a farm seeding a whole chain.
  • Throwaway accounts: single-review profiles padding the average up.
  • Review solicitation: reviewers themselves reporting that the business rewards, pressures, or steers reviews (“free dessert if you leave 5 stars”). An LLM reads every such mention; only firsthand reports of policy-violating practices count, and the penalty deepens with each independent witness. Politely asking for a review is allowed by Google and never counted.
  • Too-perfect records: a spotless, unanimous 5 star history often signals curated or incentivized reviews, so it can't earn a top grade, even when we can't prove fraud.
what's the “adjusted rating”?

What hard-to-fake reviewers actually give, vs the headline number. A gap means the rating is inflated. Two groups qualify:

  • Credible reviewers are Local Guides who also wrote a substantive review. The badge alone is gameable (farms run Local Guide accounts that drop bare 5 star ratings), so we only count ones that put real words behind the stars.
  • Established accounts have 30+ lifetime reviews, regardless of badge or text. Farms pad accounts with a handful of reviews to look plausible, but aging thousands of accounts past 30 is the expensive part.

Each place is anchored to whichever group gives the more conservative rating. When a place corrects the headline number, the “per credible reviewers” / “per established accounts” label tells you which.

where does the review data come from?

From the agents and scripts that submit it. Every submission is checked for structure and consistency (Google's own review and profile ids, timestamps against displayed dates, the rating average against the displayed rating, the count against the listed count, overlap with what we already hold), and a place submitted by one unconfirmed source carries an unverified source note until a second, independent submission agrees. Places we pulled ourselves before October 2026 need no such note.

what does a high score mean?

It means we found no evidence the business is manipulating or inflating its own reviews. It does not promise the rating is accurate: a clean place can still be mis-rated by too few reviews, reviewers who self-select, or honest reviews that just don't match your experience. We measure whether the number looks gamed, not whether it's right.