Where the figures come from
Every price BRIVEO publishes comes from DVF (Demandes de valeurs foncières), the register of property transfers published as open data by the French tax authority, the DGFiP. It records sales that were actually signed before a notary, not asking prices.
The database we hold covers sales recorded from 1 January 2023 to 31 December 2025. That end date is our vintage: we read it from the table itself rather than writing it down, so it follows the next release on its own and can never quietly become false.
The vintage we hold is the second half of 2025, and we loaded it on 24 April 2026. The DGFiP publishes every six months, so a gap between those two dates is normal; we show it rather than hide it, because a figure whose age is unknown cannot be checked.
One sale is one observation, never one line
DVF does not store one line per sale: it stores one line per LOT. A single transaction carrying a block of 200 flats produces 200 lines, and each one repeats the TOTAL value of the transaction while carrying only its own floor area.
Dividing line by line therefore manufactures a false price per lot, and a block sale manufactures as many false points as it has lots, enough to become the majority and carry the median away. We aggregate per transaction before computing anything.
What we publish, and the thresholds below which we stay silent
For each commune we publish the median price per square metre, the interquartile range when enough sales carry it, and the number of sales over twelve months. Nothing else.
A commune page opens as soon as one housing sale is published there. Its twelve-month median and index only appear from 25 sales over twelve months, or when a property is listed on BRIVEO in that commune. Below that, the page shows the published sales one by one and, from 8 sales of one type among those it shows, their median, named as such. A few pages opened under an older threshold also remain online. Below 25 sales, a commune page shows its medians with the number of sales the commune recorded over twelve months, so that you can judge what they are worth.
Our open data exports and the price widget are stricter. No commune below 25 sales over twelve months appears in them, and the price of a property type is only given from 10 sales of that type over twelve months. A median computed on so few sales is not a market median, it is an impression, and a figure that someone else will quote must not be one.
A median computed on a single sale is the price of that sale, and no commune page shows it. The median price of a property type covers at most 5 years of sales, the number of sales shown only twelve months. The page therefore only publishes that price when its figures prove that at least 2 sales carry it, through at least 2 sales over twelve months, through an interquartile range whose two bounds differ, or through the row of that type in the table by property type, which requires 8 sales over the same window. Otherwise it leaves that price out, with the average floor area, and says so under the figure.
Below 4 sales, the median and the two bounds of the interquartile range are enough to recover the price of each one. The range is therefore only shown when the figures of the page prove at least 4 sales.
We never publish a minimum or a maximum. An extreme value IS an identifiable transaction, and republishing it falls under article R112 A-3 of the French Book of Tax Procedures.
Which commune a sale belongs to
A commune is identified by its INSEE code, never by its name: French commune names are not unique. Saint-Denis exists both in Seine-Saint-Denis and on Réunion Island, Grigny in two different departments, Merville in two more.
Its postal code is the one carried by the majority of its own sales, not the largest of them. A large commune has several, and the largest is often a fringe code shared with its neighbour.
The figures of a commune are computed on all of its sales, under every one of its postal codes, the commune being identified by its INSEE code. In Paris, Marseille and Lyon, they are computed on postal codes 75001 to 75020, 13001 to 13016 and 69001 to 69009, district by district. The commune page states under its figures which postal codes they cover. Before the switch to commune-wide computation, only the sales of the majority postal code counted, and a page not yet recomputed says so under its figures.
What we do not cover, and why
DVF does not cover Bas-Rhin (67), Haut-Rhin (68) and Moselle (57), which come under the Alsace-Moselle land book system, nor Mayotte (976). We publish no price per square metre for those departments. BRIVEO does operate there, but a valuation rests on departmental references rather than comparable local sales, and it is announced as indicative.
Sale volumes are counted over the twelve months preceding the computation. Since the database stops at 31 December 2025, that window is in practice shorter than twelve months for the most recent computations. We state it here rather than let the label suggest otherwise.
The confidence level of a valuation, and what it measures
A property valuation starts from the comparable DVF sales retained within a radius around the property, a radius adapted to the density of the postal code. Outlying sales are discarded before any computation, using an interquartile filter. The range shown is the interval between the first and third quartile of the price per square metre of those sales, multiplied by the floor area of the property. The central price is the median.
The confidence level (Indicative, Approximate, Fair, Reliable) measures one thing, the number of comparable sales retained. It is not a percentage of accuracy, and we publish none, because nothing in our computation measures one. The number of sales required for each level is lower when the point designates the exact parcel of the property, because the sales gathered are then those of its immediate surroundings.
The level is never raised by a correction, it can only go down. It is capped at Fair when the postal code covers several communes and the commune is not specified, lowered by one step when the local price references or the available DVF sales are old, capped at Fair in the overseas departments DVF covers, and capped at Indicative in the departments DVF does not cover.
Reusing our figures
Every page shows its source, the period covered, the number of sales and the date the figure was computed. You may quote them by naming BRIVEO and the DVF/DGFiP source.
The raw data is public and free: anyone can recompute what we publish.
Download the data
One CSV file, one row per published commune, sorted by INSEE code, under the Etalab open licence. No commune below 25 sales over twelve months, no minimum and no maximum. The per-type floor is 10 sales over twelve months, and a price is only given when its property type reaches it. UTF-8 encoding, comma separator, decimal point, empty cell when a figure is missing or withheld.
Download the CSV file of communesTo show the price of one commune on your own site, with its source, use the price widget.
One JSON document per commune
The same figures, commune by commune, keyed by INSEE code, with their full provenance.
https://briveo.fr/donnees/{code INSEE}
What /donnees/06088 returns right now.
{
"commune": {
"nom": "Nice",
"codeInsee": "06088",
"codePostal": "06000",
"codesPostaux": [
"06000",
"06200",
"06100",
"06300"
],
"codeDepartement": "06",
"departement": "Alpes-Maritimes",
"region": "Provence-Alpes-Côte d'Azur"
},
"prix": {
"appartement": {
"medianeEurM2": 4750,
"quartileBasEurM2": 3692.31,
"quartileHautEurM2": 6000,
"ventes12Mois": 7496
},
"maison": {
"medianeEurM2": 5657.07,
"ventes12Mois": 290
}
},
"provenance": {
"source": "Demandes de valeurs foncières (DVF), Direction générale des finances publiques (DGFiP)",
"jeuDeDonnees": "https://www.data.gouv.fr/fr/datasets/demandes-de-valeurs-foncieres/",
"licence": "https://www.etalab.gouv.fr/licence-ouverte-open-licence",
"couvertureDebut": "2023-01-01",
"couvertureFin": "2025-12-31",
"calculeLe": "2026-10-30",
"perimetre": "commune",
"codesPostauxDuCalcul": [
"06000",
"06200",
"06100",
"06300"
],
"seuilDePublicationVentes12Mois": 25,
"seuilParTypeDeBienVentes12Mois": 10,
"methode": "https://briveo.fr/methode"
},
"limites": [
"Aucun minimum ni maximum n'est publié : un extremum est une transaction identifiable (article R112 A-3 du Livre des procédures fiscales).",
"Les médianes portent sur les cinq dernières années de données disponibles ; les volumes sur les douze mois précédant le calcul. La base s'arrêtant à la date de couverture ci-dessus, cette fenêtre est en pratique plus courte.",
"DVF ne couvre ni le Bas-Rhin (67), ni le Haut-Rhin (68), ni la Moselle (57), ni Mayotte (976).",
"Une commune étendue porte plusieurs codes postaux : `codePostal` est celui que porte la majorité de ses ventes, `codesPostaux` les donne tous. La clé stable est le code INSEE.",
"Depuis le 30 septembre 2026, le calcul porte sur la commune entière (code INSEE) : `provenance.codesPostauxDuCalcul` liste les codes couverts. Une ligne calculée avant cette date ne porte que son code postal majoritaire, jusqu'à son recalcul.",
"Un type de bien qui compte moins de 10 ventes sur douze mois n'a pas d'entrée dans « prix », parce qu'une médiane sur si peu de ventes peut être le prix d'une vente réelle."
],
"page": "https://briveo.fr/immobilier/nice"
}
What each column means
- code_insee
- Official code of the commune (INSEE). It is the stable key of each row, never the name.
- commune
- Name of the commune, as DVF spells it.
- code_departement
- Code of the département.
- codes_postaux_du_calcul
- Postal codes whose sales were used in the computation, separated by a space. Since the move to commune-level computation, the computation covers the whole commune, identified by its INSEE code, and the list gives all its postal codes; sales under a code shared with a neighbouring commune count only for their own commune. A row computed before that move carries only its majority postal code, and a shared code then counted the sales of both communes.
- prix_median_appartement_eur_m2
- Median price per square metre of flats, in euros, over sales recorded between couverture_debut and couverture_fin. Empty when flat sales over twelve months do not reach the per-type floor given on this page.
- quartile_bas_appartement_eur_m2
- First quartile of the price per square metre of flats, in euros. A quarter of sales lie below it. Empty in the same cases as the median price.
- quartile_haut_appartement_eur_m2
- Third quartile of the price per square metre of flats, in euros. A quarter of sales lie above it. Empty in the same cases as the median price.
- ventes_12_mois_appartement
- Number of flat sales counted over twelve months, using the window described on this page.
- prix_median_maison_eur_m2
- Median price per square metre of houses, in euros, over the same period as flats. Empty when house sales over twelve months do not reach the per-type floor.
- ventes_12_mois_maison
- Number of house sales counted over twelve months, using the same window.
- calcule_le
- Date on which the figures of the row were computed.
- couverture_debut
- Date of the first sale present in the DVF database we hold.
- couverture_fin
- Date of the last sale present in the DVF database we hold, that is the vintage.
- url_page
- Public page of the commune on briveo.fr.
- url_json
- JSON export of the commune, with its full provenance.