Observatoire annonces loyer — taux de non-conformité encadrement

Mesure indépendante du respect de l'encadrement des loyers (loi 89-462 art. 17 + décret zone tendue) sur un échantillon d'annonces de location réelles publiées sur locservice.fr. Pipeline 100 % open source, méthodologie + caveats publics. Données du 17 mai 2026.

60,0 %
violations encadrement (in-scope)
95
annonces in-scope
38
violations clear (+10 %)
19
violations presumed (<+10 %)

In-scope = annonces dont la commune est en zone d'encadrement (Paris, Lyon, Villeurbanne, Lille MEL, Bordeaux Métropole, Montpellier 3M, Grenoble-Alpes Métropole, EPT Plaine Commune + Est Ensemble 93 — couverture scoring v0.2.0 alignée 31/31 communes du référentiel préfectoral, 17 communes scorées vague-8 : Paris/Lyon/Villeurbanne/Lille/Bordeaux/Montpellier/Grenoble/Fontaine/Aubervilliers/Montreuil/Pantin/Saint-Denis/Saint-Ouen/Le Bourget/Drancy/Aulnay-sous-Bois/Epinay-sur-Seine). 135 annonces hors zone ou hors mapping en baseline comparative (banlieue Lyon non concernée, MEL périphérique, Marseille / Aix + Nantes / Toulouse + Strasbourg / Nice / Rennes (Ille-et-Vilaine 35, zone tendue mais pas dans référentiel encadrement v2026) / Toulon (Var 83, zone tendue mais hors référentiel encadrement v2026) + communes 93 hors référentiel (Villemomble, Bobigny, Noisy-le-Grand, etc.), hors arrêté préfectoral) — voir onglet ci-dessous. Sample brut total N = 230 annonces uniques, déduplication par accommodation_id, couverture 14 villes / 14 départements (+ Seine-Saint-Denis 93 EPT Plaine Commune + Est Ensemble). Intervalle de confiance binomial 95 % (Wilson) sur le 60,0 % : [49,9 %, 69,3 %], ±9,7 points (marge réduite vs ±10 pts grâce extension N in-scope 84→95 vague-8 SSD).

Par ville (in-scope)

Paris
63 %
19 violations / 30 annonces (14 clear + 5 presumed). Studios meublés ≤ 20 m² massivement non-conformes.
Lyon
83 %
10 violations / 12 annonces (7 clear + 3 presumed). Lyon 3ᵉ / 7ᵉ / 9ᵉ : pattern systémique studios meublés.
Lille (MEL)
38 %
6 violations / 16 annonces (1 clear + 5 presumed). Plafond 23,4 €/m² dépassé sur petites surfaces meublées.
Villeurbanne
33 %
1 violation presumed / 3 annonces — sample faible (CI très large).

Pattern : 20 / 22 violations clear concernent des studios meublés ≤ 30 m², cohérent avec l'audit DRIHL 2022 — la cible favorite de l'arrêté préfectoral (plafond /m² s'écrase sur petite surface). Top excès : Paris 4ᵉ 10 m² à +175 % du plafond max.

Top 5 violations clear du sample

Paris 4ᵉ — 10 m² meublé
+175,0 %
110 €/m² vs plafond max 40 €/m² · 1 100 €/mois · DPE D
Paris 15ᵉ — 16 m² meublé
+86,7 %
74,69 €/m² vs plafond max 40 €/m² · 1 195 €/mois · DPE E (interdit 2034)
Paris 13ᵉ — 11 m² meublé
+81,8 %
72,73 €/m² vs plafond max 40 €/m² · 800 €/mois · DPE C
Lyon 3ᵉ — 20 m² meublé
+80,7 %
36,50 €/m² vs plafond max 20,20 €/m² · 730 €/mois · DPE C
Paris 7ᵉ — 14 m² meublé
+78,6 %
71,43 €/m² vs plafond max 40 €/m² · 1 000 €/mois · DPE C

Caveats — à lire avant de citer ce chiffre

N = 95 in-scope (sample brut 230 annonces uniques / 14 villes / 14 départements, dont 135 hors zone tendue). Intervalle de confiance binomial 95 % (Wilson) sur le 60,0 % : [49,9 %, 69,3 %], demi-largeur ± 9,7 points (marge réduite vs ± 10 pts grâce à l'extension scoring vague-8 SSD EPT 93). Cette page sera ré-éditée à mesure que N grandit (objectif : N ≥ 200 in-scope sous 14 j, CI ± 7 pts).
Plafond appliqué = plafond_max meublé par commune (40 €/m² Paris, 20,20 €/m² Lyon, 23,40 €/m² Lille). Le vrai loyer médian majoré varie par arrondissement × type × époque. Conséquence : tout loyer > plafond_max est quasi-certainement illégal ; un loyer < plafond_max n'est pas automatiquement légal. V0 = lower bound sur le % réel de non-conformité.
"Meublé" inféré du titre (pattern FR "meublé/meublée/meublés"). Si non détecté, plafond meublé appliqué quand même (conservatif : sous-estime, plafond meublé > plafond nu).
0 violation DPE G sur 230 annonces du sample alors que les G représentent ~17 % du parc 2023. Probable biais Locservice : soit bailleurs G filtrent leurs annonces, soit la plateforme. À monitorer en croisant avec ADEME — cf. observatoire DPE F/G. Note : 5 DPE F observés (Paris/Lyon meublés) — futurs interdits 2028.
Pas de PII vendeur stockée : seuls le hash de l'URL annonce + ville + loyer + surface + DPE sont conservés. Conforme RGPD art. 6.1.e (intérêt général : observatoire de conformité légale).

Détail du sample

VilleSurfaceLoyer€/m²PlafondVerdictDPEAction
Paris 04 (75004)10 m² meublé1100 €110,0040,00clear +175,0 %DSignaler →
Paris 15 (75015)16 m² meublé1195 €74,6940,00clear +86,7 %ESignaler →
Paris 13 (75013)11 m² meublé800 €72,7340,00clear +81,8 %CSignaler →
Lyon 03 (69003)20 m² meublé730 €36,5020,20clear +80,7 %CSignaler →
Paris 07 (75007)14 m² meublé1000 €71,4340,00clear +78,6 %CSignaler →
Paris 01 (75001)12 m² meublé850 €70,8340,00clear +77,1 %DSignaler →
Paris 12 (75012)10 m² meublé700 €70,0040,00clear +75,0 %DSignaler →
Lyon 03 (69003)20 m² meublé700 €35,0020,20clear +73,3 %CSignaler →
Paris 09 (75009)14 m² meublé920 €65,7140,00clear +64,3 %DSignaler →
Lyon 07 (69007)18 m² meublé580 €32,2220,20clear +59,5 %FSignaler →
Paris 01 (75001)20 m² meublé1200 €60,0040,00clear +50,0 %ESignaler →
Lyon 03 (69003)27 m² meublé800 €29,6320,20clear +46,7 %DSignaler →
Lille (59000)16 m² meublé535 €33,4423,40clear +42,9 %BSignaler →
Lyon 03 (69003)24 m² meublé670 €27,9220,20clear +38,2 %DSignaler →
Paris 06 (75006)40 m² meublé2150 €53,7540,00clear +34,4 %FSignaler →
Paris 01 (75001)25 m² meublé1280 €51,2040,00clear +28,0 %FSignaler →
Paris 18 (75018)15 m² meublé760 €50,6740,00clear +26,7 %DSignaler →
Paris 14 (75014)16 m² meublé800 €50,0040,00clear +25,0 %ESignaler →
Lyon 09 (69009)40 m² meublé996 €24,9020,20clear +23,3 %ESignaler →
Paris 15 (75015)27 m² meublé1300 €48,1540,00clear +20,4 %DSignaler →
Paris 03 (75003)30 m² meublé1400 €46,6740,00clear +16,7 %DSignaler →
Lyon 09 (69009)25 m² meublé560 €22,4020,20clear +10,9 %ESignaler →
Paris 18 (75018)22 m² meublé956 €43,4540,00presumed +8,6 %ESignaler →
Paris 19 (75019)12 m² meublé521 €43,4240,00presumed +8,6 %DSignaler →
Paris 14 (75014)30 m² meublé1260 €42,0040,00presumed +5,0 %DSignaler →
Paris 17 (75017)30 m² meublé1254 €41,8040,00presumed +4,5 %ESignaler →
Villeurbanne (69100)29 m² meublé600 €20,6919,80presumed +4,5 %DSignaler →
Lille (59000)25 m²611 €24,4423,40presumed +4,4 %CSignaler →
Lille (59000)25 m²611 €24,4423,40presumed +4,4 %CSignaler →
Lille (59000)21 m²506 €24,1023,40presumed +3,0 %CSignaler →
Lyon 02 (69002)58 m² meublé1200 €20,6920,20presumed +2,4 %DSignaler →
Lille (59000)33 m²790 €23,9423,40presumed +2,3 %DSignaler →
Paris 17 (75017)14 m² meublé570 €40,7140,00presumed +1,8 %DSignaler →
Lyon 08 (69008)90 m²1850 €20,5620,20presumed +1,8 %CSignaler →
Lille (59000)16 m²380 €23,7523,40presumed +1,5 %DSignaler →
Lyon 03 (69003)31 m² meublé630 €20,3220,20presumed +0,6 %DSignaler →
Paris 14 (75014)30 m²1085 €36,1740,00conformeE
Paris 14 (75014)25 m² meublé816 €32,6440,00conformeC
Paris 18 (75018)20 m² meublé800 €40,0040,00conformeE
Paris 10 (75010)20 m² meublé750 €37,5040,00conformeF
Lille (59000)35 m²700 €20,0023,40conformeC
Villeurbanne (69100)34 m²585 €17,2119,80conformeD
Lyon 01 (69001)47 m²750 €15,9620,20conformeD
Lille (59000)23 m² meublé525 €22,8323,40conformeD
Lille (59000)63 m²950 €15,0823,40conformeB
Paris 10 (75010)45 m² meublé1350 €30,0040,00conformeE
Paris 10 (75010)50 m²1500 €30,0040,00conformeC
Lyon 03 (69003)32 m² meublé620 €19,3820,20conformeB
Paris 12 (75012)77 m²2280 €29,6140,00conformeE
Paris 17 (75017)49 m² meublé1890 €38,5740,00conformeD
Lille (59000)32 m² meublé650 €20,3123,40conformeD
Lille (59000)80 m² meublé1150 €14,3823,40conformeB
Paris 18 (75018)24 m²950 €39,5840,00conformeD
Paris 12 (75012)50 m² meublé1640 €32,8040,00conformeE
Lille (59000)35 m² meublé660 €18,8623,40conformeD
Lille (59000)31 m² meublé697 €22,4823,40conformeD
Paris 16 (75016)36 m² meublé1250 €34,7240,00conformeE
Lille (59000)35 m²700 €20,0023,40conformeD
Villeurbanne (69100)30 m² meublé580 €19,3319,80conformeD
Lille (59000)70 m² meublé1590 €22,7123,40conformeC
Lille (59000)30 m² meublé585 €19,5023,40conformeD

Annonces hors zone tendue encadrement (Aix-en-Provence, Marseille arrondissements non concernés en 2026, communes périphériques + round-3 villes baseline : Nantes 44, Toulouse 31, Bordeaux 33 + round-4 villes baseline : Strasbourg 67, Nice 06 + round-5 villes baseline : Montpellier 34 (in-scope référentiel mais CP non encore mappés scoring v0.1.0), Rennes 35 (hors référentiel v2026) + round-6 villes baseline : Grenoble 38 (zone tendue mais hors référentiel encadrement v2026) + round-7 villes baseline : Toulon 83 (zone tendue mais hors référentiel encadrement v2026) + round-8 communes baseline 93 hors référentiel : Villemomble (93250), Noisy-le-Grand (93160), Le Raincy (93340), Drancy (93700 hors-scope CP), Le Bourget (93350) — préfectures sans arrêté préfectoral d'encadrement, ajoutées le 17 mai 2026 pour étendre la base de comparaison). Pas de plafond légal applicable. Données affichées à titre comparatif (135 annonces au total).

VilleSurfaceLoyer€/m²DPE
Vaulx-en-Velin (69120)16 m² meublé600 €37,50C
Corbas (69960)13 m² meublé450 €34,62A
Vénissieux (69200)24 m² meublé730 €30,42B
Caluire-et-Cuire (69300)24 m² meublé715 €29,79D
Aix-en-Provence (13080)18 m² meublé530 €29,44C
Douai (59500)20 m² meublé560 €28,00D
Villeneuve-d'Ascq (59491)19 m² meublé530 €27,89D
Villeneuve-d'Ascq (59491)13 m² meublé360 €27,69D
Loos (59120)27 m² meublé700 €25,93D
Loos (59120)26 m²655 €25,19C
Feyzin (69320)24 m² meublé600 €25,00D
Aix-en-Provence (13080)20 m² meublé500 €25,00C
Aix-en-Provence (13080)45 m² meublé970 €21,56E
Marseille 11 (13011)61 m²1291 €21,16C
Salon-de-Provence (13300)50 m² meublé1040 €20,80A
Bouc-Bel-Air (13320)45 m² meublé900 €20,00C
Vaulx-en-Velin (69120)30 m² meublé600 €20,00A
La Ciotat (13600)28 m² meublé555 €19,82D
Aix-en-Provence (13080)70 m²1340 €19,14D
Caluire-et-Cuire (69300)50 m² meublé950 €19,00D
Douai (59500)30 m² meublé550 €18,33D
Saint-Symphorien-d'Ozon (69360)32 m² meublé540 €16,88C
Marseille 09 (13009)40 m²670 €16,75C
Caluire-et-Cuire (69300)54 m²900 €16,67C
Arles (13104)27 m² meublé450 €16,67C
Valenciennes (59300)54 m²880 €16,30C
Champagne-au-Mont-d'Or (69410)57 m² meublé920 €16,14E
Valenciennes (59300)25 m² meublé400 €16,00D
Craponne (69290)67 m²1055 €15,75C
Valenciennes (59300)29 m²450 €15,52D
Valenciennes (59300)36 m²535 €14,86D
Hallennes-lez-Haubourdin (59320)65 m²959 €14,75B
Douai (59500)40 m²590 €14,75D
Écully (69130)68 m²998 €14,68E
Caluire-et-Cuire (69300)70 m² meublé1000 €14,29D
Craponne (69290)100 m²1300 €13,00B
Craponne (69290)100 m²1300 €13,00A
Valenciennes (59300)49 m² meublé580 €11,84D
Fenain (59179)95 m²793 €8,35C
— Round-3 (17 mai 2026) : Nantes / Toulouse / Bordeaux (60 annonces, hors zone tendue) —
Bordeaux (33000)20 m² meublé800 €40,00C
Gironde (33170)14 m²525 €37,50D
Toulouse (31000)15 m² meublé530 €35,33D
Gironde (33600)17 m²585 €34,41D
Bordeaux (33000)56 m²1850 €33,04D
Toulouse (31000)17 m² meublé540 €31,76D
Toulouse (31000)20 m² meublé600 €30,00E
Loire-Atlantique (44840)18 m² meublé540 €30,00D
Bordeaux (33000)22 m²636 €28,91D
Nantes (44000)18 m² meublé520 €28,89C
Gironde (33400)28 m² meublé800 €28,57D
Toulouse (31000)50 m² meublé1410 €28,20D
Toulouse (31000)17 m² meublé470 €27,65E
Bordeaux (33000)20 m² meublé535 €26,75C
Bordeaux (33000)43 m² meublé1150 €26,74B
Toulouse (31000)24 m² meublé630 €26,25C
Bordeaux (33000)20 m² meublé520 €26,00E
Nantes (44000)25 m² meublé650 €26,00D
Toulouse (31000)24 m² meublé600 €25,00D
Loire-Atlantique (44400)12 m² meublé300 €25,00C
Nantes (44000)21 m² meublé514 €24,48D
Nantes (44000)16 m² meublé390 €24,38C
Loire-Atlantique (44980)16 m² meublé380 €23,75C
Toulouse (31000)22 m²520 €23,64C
Toulouse (31000)38 m² meublé870 €22,89E
Bordeaux (33000)33 m²750 €22,73C
Bordeaux (33000)33 m² meublé750 €22,73C
Nantes (44000)35 m² meublé795 €22,71C
Toulouse (31000)45 m² meublé1020 €22,67A
Gironde (33320)28 m² meublé620 €22,14B
Bordeaux (33000)33 m²720 €21,82E
Gironde (33400)32 m²696 €21,75D
Toulouse (31000)70 m² meublé1500 €21,43C
Bordeaux (33000)50 m² meublé1070 €21,40C
Toulouse (31000)30 m² meublé640 €21,33D
Nantes (44000)50 m²1065 €21,30D
Toulouse (31000)33 m² meublé690 €20,91C
Nantes (44000)30 m² meublé620 €20,67C
Bordeaux (33000)80 m²1610 €20,12D
Nantes (44000)30 m² meublé600 €20,00D
Nantes (44000)40 m² meublé800 €20,00D
Bordeaux (33000)31 m²597 €19,26D
Gironde (33600)57 m²1078 €18,91D
Nantes (44000)38 m²675 €17,76C
Haute-Garonne (31570)42 m² meublé730 €17,38D
Gironde (33110)48 m² meublé818 €17,04D
Nantes (44000)77 m² meublé1295 €16,82D
Nantes (44000)63 m²1010 €16,03C
Toulouse (31000)25 m² meublé395 €15,80F
Bordeaux (33000)150 m² meublé2150 €14,33C
Nantes (44000)78 m²1099 €14,09E
Loire-Atlantique (44570)74 m²1015 €13,72C
Toulouse (31000)70 m² meublé920 €13,14C
Haute-Garonne (31600)100 m²1150 €11,50D
Haute-Garonne (31270)160 m²1800 €11,25C
Loire-Atlantique (44140)80 m²750 €9,38C
Loire-Atlantique (44860)117 m²1080 €9,23E
Haute-Garonne (31550)110 m²800 €7,27B
Haute-Garonne (31700)90 m² meublé400 €4,44D

Méthodologie — reproduire ce chiffre

  1. Source primaire : locservice.fr — robots.txt permissif sur les pages publiques de listings (audit 17 mai 2026 in cf. ci-dessous). LeBonCoin, SeLoger et PAP disallow leurs pages d'annonces aux crawlers : non utilisés.
  2. Crawler : wedge-tool/crawler/locservice_v0.py, Python stdlib only, User-Agent BailleurVerifCompliance/0.1 (+https://bailleurverif.fr; contact@bailleurverif.fr) public-interest housing-compliance research, pace 30 s entre requêtes, 0 PII vendeur (hash URL + ville + loyer + surface + DPE).
  3. Scoring : wedge-tool/scoring/conformity_score.py v0.2.0 (extension run-222 : couverture totale 31/31 communes référentiel = +14 communes vs v0.1.0 — ajout Bordeaux Métropole, Montpellier 3M, Grenoble-Alpes Métropole + secteurs OLAP, EPT Est Ensemble + Plaine Commune). Pour chaque annonce in-scope : (a) infère "meublé" via regex titre, (b) lookup commune → plafond €/m² depuis encadrement-loyer-france-2026.json (31 communes), (c) compare €/m² au plafond_max : verdict "clear" si > +10 %, "presumed" si 0 < excess ≤ +10 %, "none" sinon.
  4. Échantillonnage 17 mai 2026 : 6 vagues de crawls — vague 1 (~08:30Z) 5 Paris + 10 Lille (Nord 59) + 10 Lyon (Rhône 69) + 10 Marseille (Bouches-du-Rhône 13 hors zone) = 35 annonces. Vague 2 (~09:42Z) 30 Paris + 30 Lyon + 30 Lille = 90 annonces. Vague 3 (~10:13Z) 20 Nantes (Loire-Atlantique 44) + 20 Toulouse (Haute-Garonne 31) + 20 Bordeaux (Gironde 33) = 60 annonces baseline hors zone. Vague 4 (~16:30-16:41Z) 5 Strasbourg (Bas-Rhin 67) + 10 Nice (Alpes-Maritimes 06) = 15 annonces baseline hors zone. Vague 5 (~17:01-17:06Z) 10 Montpellier (Hérault 34) + 10 Rennes (Ille-et-Vilaine 35) = 20 annonces (Montpellier in-scope reference mais CP non mappés scoring v0.1.0 ; Rennes hors référentiel encadrement v2026 malgré classement zone tendue). Vague 6 (~17:43-17:48Z) 10 Grenoble (Isère 38, zone tendue mais hors référentiel encadrement v2026) = 10 annonces baseline hors zone. Vague 7 (~18:29-18:34Z) 10 Toulon (Var 83, zone tendue mais hors référentiel encadrement v2026) = 10 annonces baseline hors zone. Vague 8 (~20:31-20:38Z) 15 Seine-Saint-Denis (93, EPT Plaine Commune + Est Ensemble — couverture département entier in-scope référentiel pour 18 communes : Aubervilliers/Pantin/Saint-Denis/Saint-Ouen/Montreuil/La Courneuve/Bagnolet/Bobigny/Bondy/Drancy/Les Lilas/Noisy-le-Sec/Romainville/Epinay-sur-Seine/L'Île-Saint-Denis/Pierrefitte-sur-Seine/Stains/Villetaneuse) = 15 annonces dont 11 in-scope (Aubervilliers ×2 + Montreuil ×2 + Pantin + Saint-Denis + Saint-Ouen + Le Bourget + Drancy + Aulnay-sous-Bois + Epinay-sur-Seine). Déduplication par accommodation_id sur les 260 lignes brutes → 230 annonces uniques (couverture 14 villes / 14 départements). In-scope encadrement effectif (scoring v0.2.0) : 95 (30 Paris + 16 Lille MEL + 13 Bordeaux + 12 Lyon + 6 Montpellier + 3 Villeurbanne + 2 Aubervilliers + 2 Fontaine + 2 Grenoble + 2 Montreuil + 1 Pantin + 1 Saint-Denis + 1 Saint-Ouen + 1 Le Bourget + 1 Drancy + 1 Aulnay-sous-Bois + 1 Epinay-sur-Seine). Hors zone : 135.
  5. Hypothèse plafond : on applique le plafond_max de la commune (cas le plus favorable au bailleur). Plafond réel = loyer médian majoré pour la combinaison (arrondissement × type × époque) selon arrêté préfectoral. V0 = donc lower bound sur la non-conformité réelle.
  6. Reproductibilité : code source intégral sur GitHub (Creariax5/bailleurverif), JSONL brut et scoré téléchargeable.
  7. Téléchargement direct : observatoire-annonces-loyer-2026-05-17.csv (230 lignes × 23 colonnes, 36 KB, licence ouverte Etalab 2.0, prêt Excel/R/pandas). 0 PII vendeur (URL hashée).
Audit robots.txt 4 sources FR (17 mai 2026)
  • LeBonCoin : header *"forbidden... access only with special permission"* + whitelist Google/Yahoo/Bing/Yandex. ❌ Non utilisé.
  • SeLoger : Disallow: /*/classified-search?* + /*/detail.htm. ❌ Non utilisé.
  • PAP : Disallow: /annonce/location-* sur tous types. ❌ Pages détail non crawlées (sitemap éventuel V1).
  • Locservice.fr : User-agent: * + Disallow restreint aux sections compte/admin (/cgu, /contact, /proprietaire/, etc.). Listings publics /{dept}-XX/location-*.html : autorisés. ✅

Générer un courrier de signalement à la préfecture

Vous avez identifié une annonce qui dépasse le plafond d'encadrement légal ou qui propose un logement classé DPE F ou G ? Renseignez les éléments factuels ci-dessous : nous générons un brouillon de courrier prêt à imprimer ou copier dans votre client mail, adressé au service compétent de votre département (DRIHL en Île-de-France, DDETS ailleurs). Aucune donnée nominative sur le bailleur n'est conservée — nous stockons seulement le département, le type de violation et un hash anonymisé.

Compteur public : courrier(s) généré(s) au total via cet observatoire. Aucune donnée personnelle d'usager ni de bailleur n'est conservée.

Pourquoi cet observatoire ?

Mise à jour : 17 mai 2026. Signalement d'erreur, partenariat presse ou question méthodologique : contact@bailleurverif.fr. Données publiées sous licence ouverte Etalab 2.0.