Methodology
How we find, check and update every price, and what the numbers can't tell yet.
Where prices come from
We gather prices from five sources. Every price shows where it came from and when it was last checked.
- Electronic receipts (NFC-e) on Preço da Hora Bahia, run by Bahia's state treasury (SEFAZ-BA): the price paid in a real sale, at bars, restaurants, supermarkets and depósitos. We use only beer sold by the unit, and never anything about the buyer.
- Bars' own Instagram accounts, read through Meta's official API: artificial intelligence reads the prices in recent posts.
- Menu photos a bar sends us on the Send your menu page: artificial intelligence reads the prices, and the photos are not kept.
- Prices sent in by people out drinking, on the Send a price page.
- Public news and posts that reach us: artificial intelligence drafts the price, which goes through the same rules.
On 15 October 2026, 290 of the 351 bar prices on the site had last been checked on a receipt.
The list of bars and shops comes from OpenStreetMap, Overture Maps and the receipts themselves, which carry the seller's name and company number (CNPJ). Neighbourhoods follow the official boundaries. Automatic collection follows the good-neighbour rules described on our crawler's page.
Bars, supermarkets and depósitos
Only places where people sit down to drink enter the bars' ranking and map: bars, botecos, restaurants and beach kiosks. Supermarkets, corner shops and depósitos (drinks shops) sell to take away and have pages of their own, with their own price bands. When it isn't clear whether a place is a bar or a shop, the artificial intelligence reviewer weighs the activity registered for its company number, the maps and the prices. Until it decides, that place's prices stay off the site.
Shop prices change with every promotion: each shows its source and the date of the sale, and leaves the ranking after 14 days. We leave out one-person businesses without a trade name. A shop that doesn't want to be listed can tap “Your shop? Take it off the list” on its price. If SEFAZ-BA asks, we take every shop price off the site within 24 hours.
Alcohol-free beer
Alcohol-free beers (0.0%, such as Heineken 0.0, Brahma Zero and Corona Cero) are listed with their own prices, but in a ranking of their own, behind the “Alcohol-free” button on city and neighbourhood pages. “The cheapest beer”, the maps, the rankings and the Cerveja Barata Index are always about beer with alcohol, and alcohol-free beer never enters the medians we check prices against. On each bar's page it has a section of its own, with the 0.0% badge.
Price per litre
To compare cans, long necks, bottles and draught like for like, everything becomes Brazilian reais per litre: the price divided by the total volume, times 1,000 ml. We always show the real price and the format alongside.
- A 600 ml bottle for R$ 9,99: R$ 16,65/L.
- A bucket of 5 × 355 ml long necks for R$ 45: R$ 25,35/L.
- A 300 ml draught “em dobro” (two glasses) for R$ 8: R$ 13,33/L.
Service charges and cover charges are shown as notes next to the price, but the ranking uses the menu price. Open bar deals have their own list, with price and duration.
How a price goes live
No price goes live without passing automatic rules. The path depends on the source:
- A receipt where everything matches: goes live on its own when the place was found by an exact key (its company number or its map entry), the brand and format were recognised and the volume is written. The price must also be in the format's usual band, with no open dispute, and have moved no more than 35% from the last checked price. A new source starts on probation: its first runs go to review.
- The bar's own word: prices from a menu the bar sent (through the bar's own link, or with its name or logo on the menu) and from the bar's Instagram go live at once if they are within the format's bounds and close to what we compare them with: the same bar's previous price, or the neighbourhood's or the city's median. Far from it, they go to the reviewer.
- Everything else goes to an artificial intelligence reviewer: prices sent in by people, menus and posts that didn't come from the bar itself, new venues, prices outside the usual band or that changed a lot, disputes, and places that may be shops rather than bars. It gives each item a score from 0 to 1, the chance that it is right as it stands. Above our confidence threshold the item goes live, with the same checks as an approval by a person; below it, it stays off.
- Left to a person: happy hours and promotions without days and times, which someone completes before they go live, and privacy requests (under LGPD, Brazil's data protection law).
We set the threshold and can switch the reviewer off at any time; items then wait for a person. Every day we get a summary of what was approved and rejected, and every week a second AI model re-checks a sample of the decisions and shows where it disagrees. Every decision is logged, with its score and the reason.
| Format | Plausible minimum | Usual band | Plausible maximum |
|---|---|---|---|
| Can | R$ 6,00 | R$ 11,00 – R$ 40,00 | R$ 90,00 |
| Long neck | R$ 8,00 | R$ 17,00 – R$ 60,00 | R$ 130,00 |
| Bottle | R$ 6,00 | R$ 11,00 – R$ 40,00 | R$ 90,00 |
| Litre bottle | R$ 5,00 | R$ 9,00 – R$ 30,00 | R$ 60,00 |
| Draught | R$ 8,00 | R$ 15,00 – R$ 80,00 | R$ 180,00 |
| Tower | R$ 6,00 | R$ 12,00 – R$ 55,00 | R$ 120,00 |
Prices below the plausible minimum or above the plausible maximum are discarded before any review. Buckets and combos use the band of the unit format. Supermarkets and depósitos have bands of their own, lower ones.
Verification and freshness
A price counts as checked when it is approved (by the automatic rules, the artificial intelligence reviewer or a person), when a receipt shows the same price again, or when someone confirms it on the site while nobody disputes it.
- Up to 30 days: “verified X days ago”.
- 31 to 90 days: we show the verification date.
- 91 to 180 days: “may be out of date”, with a prominent confirm button.
- Over 180 days: out of the rankings, kept in the history only.
- At supermarkets and depósitos: out of the rankings after 14 days.
From three confirmations we show “confirmed by N people”.
The blue verified bar badge means the profile was claimed by the bar itself, which sent its prices: the owner or manager sent us the menu and the prices were approved. When the menu shows the bar's name or logo, artificial intelligence checks the name and approves the prices within the bounds; otherwise the artificial intelligence reviewer decides. It lasts 180 days and renews with each new approved menu. It is free and never changes the ranking, which is always by price per litre.
Updates
Preço da Hora's receipts are read about three times an hour, day and night, and the whole city is covered within a few days. The site is republished whenever the data changes, several times a day. The price pages show the date of their numbers, and every price when it was last checked. The Cerveja Barata Index comes out on the 1st of every month.
Corrections
Spotted a wrong price, or a bar that closed? There are three ways to correct it:
- Every price asks “Still this price?” with Yes and No. With two open disputes a price is marked as disputed and goes back for review; with three it leaves the site until it is checked again. A price checked again closes its disputes.
- “Report a problem” sends the price, or the bar, to the artificial intelligence reviewer. If the complaint holds, the price leaves the site, and a closed bar leaves the map.
- For anything else, write to contato@cervejabarata.com.br. Bars can send a new menu or ask for a correction or a removal on the For bars page or at bares@cervejabarata.com.br.
An approved correction shows on the site with the next publish, usually within a few hours.
Limitations
- Coverage is uneven. Bars that issue electronic receipts in the neighbourhoods with the most recorded sales show up more; street botecos, vendors and beach kiosks still have few prices. In Salvador, 38% of the 78 bars with prices are in three neighbourhoods: Pituba, Rio Vermelho and Caminho das Árvores.
- A receipt shows the price paid in one sale, which may have been that day's promotion.
- A shop price is not a bar price: supermarkets and depósitos sell to take away and have lists of their own.
- Medians only with at least five places behind them; below that, we don't publish the figure.
- Some names come from receipts and maps, and are sometimes spelled differently from the sign outside.
Sponsorship
Sponsored spots always carry a “Sponsored” label and never change the order of prices. Each city page has one spot (a card above the list and the red pin on the map), and each bairro page has one more, only for the bars in that bairro.
Cerveja Barata Index
Every month we compute the median price per litre by city, format, neighbourhood and brand, using the latest accepted price of each bar, beer and format over the previous 90 days. Only bar prices count: those of supermarkets and depósitos stay out. We only publish cuts with at least five bars, and compare them with official inflation for beer drunk out (Brazil's IPCA, from IBGE).
Sources and licences
- Cerveja Barata's data is open under the Open Database License (ODbL) 1.0: credit “Cerveja Barata (cervejabarata.com.br)”. The files are on the Open data page.
- Receipt prices: Preço da Hora Bahia, Bahia State Treasury (SEFAZ-BA).
- Bars and locations derived from OpenStreetMap: © OpenStreetMap contributors, under the ODbL.
- Overture Maps places: © Overture Maps Foundation, under the CDLA Permissive 2.0.
- Neighbourhood boundaries: GeoSalvador, Salvador City Council (Salvador); IBGE, 2022 Census (Lauro de Freitas).
- Maps: OpenFreeMap, © OpenMapTiles, data © OpenStreetMap contributors.
- Inflation for beer drunk out: IPCA, from IBGE.