Back to FAQ

Scoring

How the number works.

Every check-in produces a WingScore. Every WingScore contributes to a restaurant's aggregate. Here's the math — no mystery, no algorithm you can't read.

The WingScore

WingScore is a weighted average of the five criteria. The weights are fixed and opinionated — they reflect what actually makes wings good or bad:

CriterionWeight
Sauce29%
Crispiness29%
Meat22%
Blue Cheese10%
Celery10%

Blue cheese and celery are optional. If you mark either N/A, their weights (10% each) are redistributed proportionally across the remaining criteria. A bone-in basket without celery re-normalizes to sauce 32.2%, crispiness 32.2%, meat 24.4%, blue cheese 11.1%.

The restaurant aggregate

One person's WingScore doesn't make a restaurant's ranking. CAFO uses a Bayesian average to produce the aggregate shown on the map and leaderboard.

aggregate = (n × avg + m × C) / (n + m)

n = number of ratings for this restaurant

avg= restaurant's raw average WingScore

m = minimum ratings threshold (5)

C = global mean across all restaurants (7.2)

In plain English: a new restaurant starts near 7.2 and earns its way to its true average as more people check in. This prevents one person from putting a place at the top of the map by logging a 10/10 on day one.

Example

A spot with 2 ratings averaging 9.5 gets: (2 × 9.5 + 5 × 7.2) / (2 + 5) = 7.7

A spot with 40 ratings averaging 8.8 gets: (40 × 8.8 + 5 × 7.2) / (40 + 5) = 8.6

The established spot ranks higher despite a lower raw average — because 40 opinions mean more than 2.

The heat color

Score pins and badge colors follow a five-stop gradient interpolated across the 1–10 range:

15.510

Color is strictly a visual aid — it maps the same score to the same color everywhere in the app, including map pins, score badges, and breakdown bars.