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
- Critics use the strongest tier we can cite. Michelin star or a James Beard Award winner is 100. A Bib Gourmand, or a Beard semifinalist or finalist, is 90. Eater 38, AJC, Atlanta Magazine, or a Michelin recommended listing is 80. A single favorable mention is 65.
- Social, for this pilot, is a public YouTube video. We do not read the title. The claim names the channel and the upload month and year. Sentiment stays neutral, so the signal is 50, and the family still counts. The formula is 50 + 50 × ((positive − negative) / n) × min(1, ln(n+1) / ln(9)).
- Consensus is 25 points per distinct press outlet, capped at 100. It is present whenever a critic or award citation is present.
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
- OpenStreetMap names, addresses, and coordinates, © OpenStreetMap contributors, ODbL. Census ZCTA 2020 polygons are public-domain Census TIGER data.
- Critic and award pages: Eater Atlanta, The Infatuation, Atlanta Magazine, the Atlanta Journal-Constitution, Atlanta Eats, the Michelin Guide, and the James Beard Foundation. We store a link, a date, and a short fact in our own words. A citation is kept only when that page lists the place as its own entry and the normalized name matches a restaurant within 150 meters. The street number is not the match key, and a guide street number is not copied into OpenStreetMap.
- YouTube links found through public web search. No YouTube Data API. Links expire after 30 days.
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.