We made an AI call 3,105 French boulangeries. The results are incredible.
01Why we did it
The Irish have the Guinndex. The French, a nation that has codified the baguette tradition in a 1993 decree¹, backed it by UNESCO², and litigated the use of the word boulangerie in court³, had — somehow, inexplicably, against all evidence of national character — failed to index the loaf itself. We are pleased to report that this oversight has been corrected. To our knowledge, no larger public dataset of baguette tradition prices, weights, and lengths exists anywhere on the open internet. We accept corrections (and pastries).
The personal reason is simpler. Twenty years ago, my brother and I used to fight over who got to fetch the bread. Whoever went came home rich in glory and in the cents left over from the change. The glory would vanish. The change would go to candies. The candies caused more fights. The fights, I now suspect, were the point.
It is 2026. The candies and the fights are long gone. We are still kids at heart with a soft spot for bread and for statistics. So we instructed a machine, named Brigitte, to telephone every boulangerie we could reach, ask each one the price of a baguette tradition, and deposit the result in a big spreadsheet. The result is a map. It is also a story about two brothers and what happens when the tools for building have, finally, outrun the things we know to build with them.
02The setup
Surprisingly, bakeries do not have APIs. They have phones. So the plan was:
- Get every bakery in a city.
- Call each one.
- Ask the price of a baguette tradition. When feeling it, get weight (g) and length (cm) too.
- Put it on a map.
- Write this blog.
Step one was Google Places API⁴: name, address, postal code, coordinates, phone. Paris came back at 1,193 bakeries across 20 arrondissements. Step two is where it gets interesting. We used a voice agent with an STT–LLM–TTS pipeline to dial each number, hold a short conversation in French, and extract a structured answer. The script is one sentence:
« Bonjour, c'est Brigitte, je fais une petite étude sur le prix de la baguette tradition. Combien la vendez-vous, s'il vous plaît ? »
Six possible outcomes per call: success, no_tradition (some bakeries don't sell one), refusal, callback_requested, hung_up, and no_answer. The hung-up bucket hides another story: most of those are voicemails, which we dialed back twice before giving up.
03From Paris to France
We meant to do Paris and stop. Three things changed our mind. First, we hated the idea of spamming the same Parisian bakeries with a fifth retry while bakers in Lille had never heard of us. Second, the moment the Paris dataset existed we became, inevitably, curious about the rest. Third, our friends in Bordeaux complained.
So Brigitte kept dialing. 57 cities, 3,105 unique numbers, 7,212 attempts later — an average of 2.3 calls per bakery — the survey covers Paris (290 priced loaves), Marseille (93), Lyon (66), Toulouse (65), Bordeaux (54), and 52 more towns of various sizes. The published index, after pruning entries with no coordinates or unparseable prices, holds 904 verified prices. Brigitte is still calling.
04Instruments
I studied philosophy and business. My co-author and brother studied cognitive science. Neither of us has produced a line of production code prior to this project. We mention this not as confession but as observation: 2026 is the year of the builder, and the requirements for entry to the discipline have collapsed in the manner of a soufflé removed prematurely from the oven. One can just build things, baby.
To build or not to build, that is the question. One must, however, have a dream. And we had a dream. We dreamed that one day, from the boulangeries of the Marais to the bakers of the Vieux-Port, from the hills of Montmartre to the supermarchés of Mérignac, the price of every baguette tradition in France would be accessible through a single digital map — sortable by city, filterable by weight. A lifelong dream, if you ask me. And we found a tech stack equal to the ambition.
HappyRobot⁵ for the voice agent. Building a French-speaking telephone agent from raw components would entail telephony, speech-to-text, a language model, text-to-speech, voice activity detection, turn-taking, interruption handling, and an end-to-end latency budget tight enough that the baker does not hang up. To which one must add: a job queue capable of paginating through thousands of numbers, retry logic, and a human-in-the-loop fallback for the recalcitrant cases (that is, ourselves on a telephone). Months of work, conservatively estimated. Using HappyRobot, we described our needs, supplied a CSV, received structured JSON via webhook. The matter was settled in a weekend.
Nerds will ask: HappyRobot VAD, Soniox STT, GPT-4.1 LLM, HappyRobot TTS.
Claude Code and Codex for everything else. From the price-parsing layer that turns un trente and à un euro trente comme tout le monde into 1.30, to the front-end map with its endless filters. Two years ago, this project does not happen. We engage a developer. We exhaust our funds or our patience, or, probably, both. The matter is shelved, as such matters are. As it stands, we described what we wanted, read what the model produced, executed it, repaired it where necessary, and iterated. We still do not know where the .md files live. Vibecoding: done.
05What we got wrong the first week
We did not encounter any specific hard technical barrier. Rather, we were obliged to learn how bakeries operate.
Calling during service is inadvisable. Brigitte's instructions were to conduct a conversation of reasonable depth with the baker on the matter of the loaf. This proved difficult between 07:00 and 09:00, and again between 12:00 and 14:00 — hours during which the baker is in possession of more pressing concerns. We adjusted the calling windows. Success rates responded.
Google Maps, against our expectations, performs admirably. A handful of bakeries had gone bankrupt or quietly altered their hours. The remainder were exactly where Google said they were, doing exactly what Google said they were doing. Big brother really has the data.
No-answer is not no. It is not-now. Three attempts per bakery, distributed across days and time windows, with exponential backoff, before the number is finally declared lost. The French Republic was owed a response on baguette prices. We were committed to providing one.
Some bakeries sell only the baguette ordinaire, not the tradition. We are unable to comment further. How could one?
Price extraction is harder than it looks. Bakers, regrettably, do not say "one euro thirty." Some say trente and trust you to supply the euro. Others say un euro trente comme tout le monde. Some quote a range. Some, surprisingly, do not know — a finding we are still processing. One said « ça dépend du jour, ma belle », which Brigitte handled with admirable composure: she did not feel seduced, and remained on topic. A professional happy robot. The parser had to handle all of that, and most of it we only discovered by listening to failed calls.
End to end: 3,105 numbers, 7,212 calls, 934 prices, 574 no-traditions, 1,069 hangups, 61 refusals. A 30 % rate of clean prices, which we'd take. We had to mettre la main à la pâte, as the French say. We know a bit more about how bakeries work now.
06What's in the data
The €1.30 spike is the headline. The edges are where the small stories live.
- Most expensive baguette tradition in our data: €1.90. A tie between Copenhagen Coffee Lab in Nice and a Carrefour City in Toulouse — a Danish coffee chain and a French convenience store, neither of them a baker's baker. The honest boulanger tops out around €1.75.
- Cheapest: €0.90 at Mando in Marseille. A few E.Leclerc drives in the suburbs of Bordeaux and Caen tie just above, at €0.92–0.94. The supermarket strategy is intact: bread is the loss-leader that brings you in for the chips.
- Best value: Intermarché in Mons-en-Barœul, €0.30 per 100 g — €0.95 for a 320 g loaf. The proper boulangerie winner is Le Petit Mitron in Lyon at €0.31/100 g (350 g for €1.10). Paris's previous champion, La Parisienne aux Halles, holds on at €0.33/100 g but loses the national crown to the provinces.
- Higher-rated bakeries charge less. Bakeries rated 4.5+ on Google average €1.26. Bakeries rated 3.0–4.0 average €1.34. The fancier ones give you the better deal. Could it be that French Google reviewers are quietly punishing the expensive baguette and rewarding the cheap one? That ratings measure the welcome laugh, not the taken loaf?
- Marie Blachère charges €1.10 for a 250 g baguette tradition, at every single location across France. Brioche Dorée varies (€1.00–1.40). PAUL varies wildly (€1.00–1.75). One of these chains believes in fixed pricing. The others believe in arbitrage.
Where you live, you eat the tradition. Where tourists go, you don't. Across the country, the rate of bakeries that simply don't sell a baguette tradition runs from 18 % to 47 % depending on the city. The bar below ranks them.
Inside Paris, the central and touristy arrondissements (1st, 3rd, 4th, 8th) are the worst offenders at 47–57 %. In residential Paris (14th, 18th, 20th) it falls to 8–15 %. The tradition is a neighbourhood good. Where there's no neighbourhood, there's no tradition.
The weight-to-value relationship is non-linear and favours the consumer for bigger loaves.
Bigger baguettes are radically cheaper per gram. The marginal cost of extra flour is essentially nothing. What you're really paying for is the labour, the rent, and the morning.
07What we'd build next
France was the pilot. We're going to keep going — smaller towns where the index probably matters more, the rural communes where there is exactly one bakery and it had better be open. We're also looking at the boulangerie ecosystem: which chains expand, which decline, which towns lose their last baker each year. The phone is still ringing.
Neither of us will ever again hold the office of celui qui va chercher le pain. We have aged out of it. But for some weeks now, my brother and I have been arguing over retry logic, transcript parsing, and the inevitable forthcoming Schnitzel Index (one ought not say this aloud). Same fight. Different bread.
If Brigitte misheard, or if your bakery is missing, you are invited to submit corrections. The project is non-commercial and will remain so — we ask only that you contribute in good faith, and in the service of the greater bread. May the flour be with you.