Oligrail

How Oligrail scores a restaurant

Formula version v0.1. Scores are computed automatically. Pre-launch checks never adjust an individual score.

Weights

The designed weights are critics 0.43, social 0.29, consensus 0.21, and hygiene 0.07. The Georgia DPH inspection portal returned HTTP 418 to our required User-Agent on the first request, so the hygiene family was not collected and is dropped. The remaining weights are divided by 0.93: critics 0.4624, social 0.3118, consensus 0.2258.

What each family measures

Recency, confidence, shrinkage

Recency weight is 0.5 raised to (age in days / 365). Awards use 36 months, 365 × 3 days. The as-of date for this build is 2026-10-15. YouTube recency uses the video's upload date. Each YouTube source expires 30 days after the day we confirmed the channel and the date.

Confidence is 1 − e^(−n/4). n is the count of distinct outlets after dedupe, so two Eater URLs count once. A score with confidence below 0.4 is marked emerging and is not ranked.

The raw score is the recency-weighted average of the present families. It then shrinks toward the ZIP median: final = confidence × raw + (1 − confidence) × median. Displayed scores are rounded to one decimal. Ties break alphabetically.

What we do not use

Google ratings or reviews, Yelp, Reddit, and paid placement are not used. Sponsorship never changes a score. If sponsorship is ever added, it will be labeled. Restaurants do not pay to change scores.

Sources and licenses

Refresh

The pilot snapshot is dated 2026-10-15. YouTube rows are refreshed or deleted by pipeline/refresh-youtube.mjs when expires_at has passed. Georgia DPH collection is stopped after the HTTP 418.

Changelog

v0.1 — Atlanta pilot. Crowd ratings were never included. Hygiene was dropped after the DPH portal returned HTTP 418. The score is the weighted average of the families that are present, using the design weights divided by 0.93. Confidence is 1 − e^(−n/4).

What a free page shows

A free ZIP page, neighborhood page, and free JSON response show the name, the rank, the score, and one short reason in our own words. The reason names the outlet and the month, as in “Featured on Eater Atlanta's Essential 38, Oct 2026.” It is not a quotation of the outlet’s article, and it does not include a link. Paid lookups for agents are coming soon.

The same description is available as JSON at /v1/methodology.