Methodology
Read scores next to communes of a similar size, not across sizes. The score measures how well a place is served relative to its own size band, and the size bands are coarse: nationally the mean score is 23 for the 24,844 communes under 1,000 people and 66 for the 1,038 communes at 10,000 and over. A town will almost always out-score a village, so “62 beats 55” is meaningful between two villages and misleading between a village and a town. We would rather say that plainly than imply a comparison the numbers do not support.
The vitality score is a weighted sum of components, each 0–1. Facility components use diminishing returns, 1 − exp(−n / n50), where n50 depends on the commune's population band. This is a presence model: the first bakery is worth 0.63 of the component and the sixteenth adds nothing, which suits the question “is this village alive?” but means the measure stops discriminating well above its useful range — every facility count in Marseille and Aix maps to 1.0. Substitutes (grocery or supermarket; nursery or primary school) count once. Component weights are relative: the total is divided by their sum, so the score always spans 0–100. The market component is 1 for a known or reported weekly market, 0.5 if seasonal, 0 otherwise, but carries a weight of 0 in the current model: we can only find a market day for about a quarter of communes, and whether we find one depends on how thoroughly the commune’s own website is written rather than on whether a market exists. Crediting it would reward better websites, so market days are collected and shown on the commune page but do not affect the score. Trend is the 30-year population change, saturating at ±50 %. Housing is 1 minus the second-home share divided by 50 %.
Model version fr-v0.2.
| Component | Weight |
|---|---|
| Daily food | 25 |
| Social | 20 |
| Market | 0 |
| Education | 10 |
| Health | 10 |
| Public & culture | 5 |
| Population trend | 10 |
| Housing mix | 5 |
Size bands (n50)
Population spans 0 to 2,103,778 across France while n50 spans 1 to 8, which is why larger communes score higher. A future version will set band thresholds per population band from national data, so that “Lively” means the same thing for a hamlet as for a town; today's thresholds are a single global set and do not.
The 6 communes with no inhabitants at all are the villages destroyed at Verdun in 1916 and never rebuilt, which remain communes in law.
| population < 1,000 | n50 = 1 |
| population < 3,000 | n50 = 2 |
| population < 10,000 | n50 = 4 |
| population < ∞ | n50 = 8 |
Sources
INSEE Base permanente des équipements 2025; INSEE SIRENE (active establishments, NAF-filtered; cafés/bars from NAF 56.30Z; cheese shops from 47.29Z with a name match); INSEE census population 1968–2023 and housing 2023; INSEE Code officiel géographique 2026; INSEE density grid; geo.api.gouv.fr for geometry; the Annuaire de l'administration for commune websites. Market days come from commune websites via an extraction step and are shown as reported until confirmed; they do not enter the score (see above). OpenStreetMap is used for display only and never enters the score.
Every commune page lists the references behind each statement. Counts are presence, not quality or opening hours; a facility recorded as absent may exist under a different activity code, and one recorded as present may have closed since the data vintage.