Cadre analytique, indicateurs et pipeline — 74 villes, 31 pays

Auteur·rice

Vincent Roue

Date de publication

30 avril 2026

Cadre analytique

Question centrale

Comment se structurent les marchés Airbnb dans les grandes villes mondiales, et quels indicateurs permettent de comparer leur intensité, leur professionnalisation et leur impact potentiel sur le logement ?

L’observatoire couvre 74 villes, 31 pays, 4 continents + 3 sub_cities BAB + UCDB enrichment. Il mobilise 99 indicateurs (version 7.1) organisés en 8 familles thématiques pour répondre à cette question selon cinq axes complémentaires.

Hypothèses structurantes

Code Hypothèse Axe
H1 Les mégapoles (Paris, Londres) dominent en volume absolu mais pas en pression relative — les villes touristiques compactes (Florence, Lisbonne) affichent des ratios annonces/habitant plus élevés Pression
H2 Les marchés à forte proportion de logements entiers (> 80 %) signalent une professionnalisation avancée plutôt qu’un partage de résidence principale Structure
H3 La concentration de l’offre (quelques hôtes détenant une grande part des annonces) est plus forte dans les capitales et les places financières Concentration
H4 Les prix médians s’expliquent en partie par le niveau de développement (PIB, IDH) mais aussi par des facteurs d’attractivité touristique (climat, patrimoine) Prix
H5 Les dispositifs réglementaires (plafonds nuitées, licences) se traduisent par un taux de longue durée élevé — proxy mesurable sans données juridiques comparées Régulation

Axes d’analyse

Axe 1 — Pression sur le territoire

Question : quelle est l’intensité du marché Airbnb rapportée à la population et au parc de logements ?

Indicateurs mobilisés : prs_listings_1000hab_dense (indicateur principal), density_l_km2, listings_1000hsg, entire_1000hsg.

Problème de comparabilité résolu : les périmètres de scraping Inside Airbnb varient entre villes (commune stricte pour Paris, Grand Londres pour London, comté pour Nashville). L’indicateur de zone dense (GHS-POP ≥ 1 500 hab/km²) aligne numérateur et dénominateur sur le même polygone urbain, rendant les villes comparables indépendamment de leur découpage administratif.

Lecture : une pression de 20 ann./1000 hab. signifie qu’il y a 1 annonce active pour 50 habitants dans la zone dense. Les villes touristiques compactes (Florence, Lisbonne, Biarritz) affichent des ratios 3 à 5 fois supérieurs aux mégapoles (Tokyo, Istanbul).

Axe 2 — Structure et nature du marché

Question : le marché est-il dominé par des logements entiers (substituts au locatif) ou par du partage (chambres dans la résidence principale) ?

Indicateurs mobilisés : str_entire_pct, str_minnuits30_pct, str_minnuits90_pct, str_ratio_ann_hote, str_cap_pers_med.

Clé de lecture :

  • > 80 % entiers + ratio ann./hôte > 2 = marché professionnel (logements retirés du parc locatif)
  • < 60 % entiers = économie de partage mixte (chambres chez l’habitant)
  • > 30 % longue durée = effet régulation marqué (contrainte min_nights locale)

Axe 3 — Concentration et professionnalisation

Question : l’offre est-elle dispersée entre particuliers ou concentrée entre quelques opérateurs ?

Indicateurs mobilisés : cr_offre_5plus, cr_offre_10plus, cr_offre_top10host_pct, cr_hosts_offre50_pct.

Distinction fondamentale (numérateur) :

  • cr_host_* = % des hôtes dépassant un seuil → mesure la prévalence des pros
  • cr_offre_* = % des annonces détenues par ces hôtes → mesure leur emprise sur le marché

Un marché peut avoir peu de multi-hôtes (5 %) mais ceux-ci peuvent détenir 40 % de l’offre — la distinction hôtes/annonces révèle ce levier.

Axe 4 — Prix et positionnement

Question : comment se positionnent les marchés en termes de niveaux tarifaires et de dispersion ?

Indicateurs mobilisés : px_entire_med, px_private_med, px_entire_iqr, px_1br_med/px_2br_med/px_3brplus_med.

Choix méthodologique : les quartiles (Q1, Q3, IQR) sont calculés sur les logements entiers uniquement. Mélanger chambres privées (30 €) et penthouses (800 €) dans un même IQR n’a pas de sens comparatif. La restriction par type garantit l’homogénéité intra-distribution.

Axe 5 — Activité et performance

Question : quel est le niveau réel d’exploitation des annonces — fréquence, disponibilité, revenus ?

Indicateurs mobilisés : act_cal_ouvert_med, act_reserv_taux, act_revenu_med, actrv_avis_mois, act_superhost_pct.

Précaution interprétative : l’occupation et les revenus sont des estimations Inside Airbnb (modèle San Francisco : reviews × 2 × durée séjour, cappé 70 %). Ils sous-estiment systématiquement les revenus réels et ne sont pas comparables aux données fiscales ou hôtelières. Leur valeur réside dans la comparaison relative entre villes (même biais partout).

Construction des indicateurs de pression territoriale

Le ratio “annonces pour 1 000 habitants” est l’indicateur le plus cité dans la littérature Airbnb (Barron-Kung-Proserpio, Wachsmuth, Garcia-Lopez et al.). Sa construction paraît triviale — diviser un comptage par une population. En pratique, il a concentré l’essentiel des difficultés méthodologiques du projet.

Le problème fondamental : trois périmètres qui ne s’alignent jamais

Source Ce qu’elle couvre Paris Istanbul
Inside Airbnb (numérateur) Zone scrapée (variable, non standardisée) ~105 km² (commune) ~5 343 km² (province)
Census national (dénominateur) Commune administrative 2,13 M hab 15,8 M hab
GHS-UCDB (référentiel morphologique) Agglomération continue 9,3 M hab / 1 421 km² 14,5 M hab / 2 100 km²

Diviser 53 000 annonces par 2,13 M habitants (Paris) vs 25 000 par 15,8 M (Istanbul) produit un ratio de 24,9 vs 1,6 — un facteur 15 dont l’essentiel est un artefact de périmètre, pas une différence réelle de pression. Istanbul concentre ses annonces sur ~50 km² de Beyoğlu/Fatih, pas sur l’ensemble de la province.

Approches testées et abandonnées

Approche 1 — Ratio brut commune (v1, janvier 2026)

Ratio listings / pop_commune × 1000. Simple, mais biaisé dès que le périmètre IA ≠ commune. Rendu les comparaisons impossible pour LA (comté = 10 422 km²), Nashville (comté = 1 363 km²), Bergamo (province = 2 747 km²).

Approche 2 — UCDB comme référentiel (testée, février 2026)

Utiliser la population UCDB (agglomération morphologique) comme dénominateur. Abandonnée : le périmètre UCDB déborde le périmètre IA dans 80 % des cas. Paris UCDB = 9,3 M → le ratio tombe à 5,7 (3× sous-estimé vs la réalité communale). Le numérateur et le dénominateur ne couvrent pas la même zone.

Approche 3 — Fenêtre 50 km autour du centre (testée, mars 2026)

Extraire la zone dense GHS-POP dans un buffer de 50 km autour du centre-ville. Abandonné pour 3 raisons :

  1. Le plus grand polygone dense pouvait être dans la mauvaise ville (San Francisco → polygone Oakland, Naples → polygone intérieur)
  2. Nashville et New Orleans avaient 0 % de couverture (centre-ville hors zone dense calculée)
  3. Corrélation avec les ratios de référence nationaux : r = 0,70 (médiocre)

Approche retenue — Zone dense intra-IA

Principe : au lieu de chercher un référentiel externe, utiliser le périmètre IA lui-même comme enveloppe, et calculer la population dense à l’intérieur de cette enveloppe.

listings_dense ∈ polygone_dense ⊂ périmètre_IA
pop_dense      ∈ polygone_dense ⊂ périmètre_IA
ratio = listings_dense / pop_dense × 1000

Numérateur et dénominateur portent sur le même polygone — le biais de périmètre est éliminé par construction.

Validation :

  • Paris : ratio_dense = 23,1 vs ratio_ref (INSEE commune) = 24,3 → Δ = 5 % (acceptable, l’écart vient de la pop GHS-POP légèrement supérieure à l’INSEE)
  • London : ratio_dense = 8,4 vs calcul Greater London = 7,2 → cohérent (zone dense < Grand Londres)
  • Corrélation ratio_dense vs ratio_ref (villes où le périmètre IA = commune) : r = 0,76 sur 73 villes

Indicateur complémentaire : % annonces en zone dense

L’indicateur prs_pct_listings_dense révèle la morphologie du marché :

  • > 90 % (Paris, Bangkok, Athènes) = marché purement urbain, toute l’offre est en centre dense
  • 50-90 % (Lisbonne, Bordeaux, Amsterdam) = offre mixte centre + périphérie
  • < 50 % (Nashville 22 %, Cape Town 51 %) = offre diffuse, le marché dépasse largement le centre

Ce chiffre qualifie la fiabilité même du ratio dense : un marché à 22 % en zone dense ne peut pas être correctement décrit par le seul ratio dense — il faut aussi regarder le ratio total.

Pipeline historique — Convergence vers un flux unique

Le pipeline a traversé 3 phases avant de se stabiliser :

Phase Architecture Problème
v1 (jan. 2026) 2 pipelines parallèles : sumlistings (sp07+sp08) et gz (sp07b+sp08b) Chiffres divergents (787K vs 815K), maintenance double
v2 (fév. 2026) Pipeline gz unique (sp07b+sp08) mais KPI dispersés entre 2 CSV Jointures fragiles
v3 (avr. 2026) Pipeline unifié : sp07b → sp08 (tout en 1 CSV), GHS-POP mergé après sub_cities ✅ Retenu

Les indicateurs sum (prix, structure, concentration) et gz (notes, occupation, capacité) sont maintenant calculés dans le même script (sp08) depuis la même source (parquet gz consolidé). Un seul CSV de sortie, 76 colonnes.

Villes exclues — Résultat de l’audit GHS-POP

L’audit GHS-POP a permis d’identifier 3 villes dont le périmètre rendait toute comparaison impossible :

Ville Problème Chiffre clé Décision
Victoria (CAN) IA = île de Vancouver entière (4 846 km²) 23 % listings en zone dense, ratio IA/dense × 111 Exclue
Asheville (USA) Station de montagne, 294 listings en zone dense Trop fragile pour benchmark Exclue
Fort Worth (USA) Banlieue de Dallas, 377 listings dense Pas un marché autonome Exclue

À l’inverse, Nashville (22 % en dense, flag “partiel”) est conservée avec un CENTRE_FILTER (12 districts centraux) car le volume reste suffisant (6 786 listings, 1 481 en dense).

Autres choix méthodologiques

Pourquoi conserver les annonces longue durée ?

Les annonces avec minimum_nights ≥ 30 ne sont pas exclues mais signalées (is_longterm). Justification :

  1. Elles constituent un signal de régulation mesurable sans données juridiques (Istanbul 55 %, Barcelona 41 %)
  2. Elles font partie du marché réel (un hôte contraint à 30 nuits propose toujours son bien)
  3. Les exclure biaiserait les indicateurs de structure et de concentration

Pourquoi des agrégats calculés depuis les listings bruts ?

Les KPI pays/continent/monde sont calculés en agrégeant tous les listings (chaque listing pèse 1), pas en moyennant les KPI par ville. Raison : une moyenne des médianes donne un poids égal à Winnipeg (1 500 ann.) et Paris (53 000 ann.), produisant un biais de composition.

Pourquoi 10-2 000 € (et pas 10-1 000 €) ?

Le plafond initial de 1 000 € excluait les marchés premium légitimes (Hamptons, Malibu, Santorini en haute saison). Le seuil 2 000 € conserve le segment luxe tout en éliminant les erreurs de saisie manifestes (listings à 9 999 €/nuit).

Pourquoi conserver les annonces longue durée ?

Les annonces avec minimum_nights ≥ 30 ne sont pas exclues mais signalées (is_longterm). Justification :

  1. Elles constituent un signal de régulation mesurable sans données juridiques (Istanbul 55 %, Barcelona 41 %)
  2. Elles font partie du marché réel (un hôte contraint à 30 nuits propose toujours son bien)
  3. Les exclure biaiserait les indicateurs de structure et de concentration

Pourquoi des agrégats calculés depuis les listings bruts ?

Les KPI pays/continent/monde sont calculés en agrégeant tous les listings (chaque listing pèse 1), pas en moyennant les KPI par ville. Raison : une moyenne des médianes donne un poids égal à Winnipeg (1 500 ann.) et Paris (53 000 ann.), produisant un biais de composition.

Pourquoi 10-2 000 € (et pas 10-1 000 €) ?

Le plafond initial de 1 000 € excluait les marchés premium légitimes (Hamptons, Malibu, Santorini en haute saison). Le seuil 2 000 € conserve le segment luxe tout en éliminant les erreurs de saisie manifestes (listings à 9 999 €/nuit).

Pipeline de traitement

Afficher le code
flowchart TD
    A[Inside Airbnb<br/>74 villes × listings.csv.gz] --> B[sp07b — Consolidation<br/>+ cleaning + flags]
    B --> C[dblistingfull_2506_cons_global.parquet<br/>~810K listings × 30 cols]
    C --> D[sp08 — KPI par ville<br/>+ CENTRE_FILTERS + sub_cities]
    D --> E[kpi_global_by_city_2506.csv<br/>77 lignes × 76 cols]
    D --> F[kpi_global_by_aggregate_2506.csv<br/>36 lignes pays/continent/monde]
    G[GHS-POP raster 100m<br/>Mollweide 2025] --> H[audit_ghspop<br/>Zone dense intra-IA]
    H --> D
    I[city-reference.csv<br/>pop · housing · FX · filters] --> D
    J[GHS-UCDB R2024A<br/>IDH · PIB · climat] --> D

flowchart TD
    A[Inside Airbnb<br/>74 villes × listings.csv.gz] --> B[sp07b — Consolidation<br/>+ cleaning + flags]
    B --> C[dblistingfull_2506_cons_global.parquet<br/>~810K listings × 30 cols]
    C --> D[sp08 — KPI par ville<br/>+ CENTRE_FILTERS + sub_cities]
    D --> E[kpi_global_by_city_2506.csv<br/>77 lignes × 76 cols]
    D --> F[kpi_global_by_aggregate_2506.csv<br/>36 lignes pays/continent/monde]
    G[GHS-POP raster 100m<br/>Mollweide 2025] --> H[audit_ghspop<br/>Zone dense intra-IA]
    H --> D
    I[city-reference.csv<br/>pop · housing · FX · filters] --> D
    J[GHS-UCDB R2024A<br/>IDH · PIB · climat] --> D

Nettoyage (5 étapes)

Afficher le code
cleaning_steps <- tibble::tribble(
  ~Étape, ~Règle, ~Justification, ~Impact,
  "1", "Prix non null", "80 % des null-prix ont availability=0 → inactifs/retirés du marché", "~25 %",
  "2", "Disponibilité > 0", "Calendrier fermé = annonce non commercialisée", "~5 %",
  "3", "Exclure Hotel room", "Hôtels classiques, non comparables aux locations entre particuliers", "~1 %",
  "4", "Prix EUR ∈ [10, 2000]", "Aberrants : erreurs de saisie ou annonces fantômes", "~2-3 %",
  "5", "Flag is_longterm", "min_nights ≥ 30 conservé, signalé comme proxy régulation", "0 %"
)

reactable(cleaning_steps,
  columns = list(
    Étape = colDef(width = 55, align = "center"),
    Règle = colDef(width = 160),
    Justification = colDef(minWidth = 280),
    Impact = colDef(width = 75, align = "center")
  ),
  striped = TRUE, compact = TRUE, borderless = TRUE
)
Table 1

Rétention globale : ~65-70 % de la base brute → ~810 000 listings actifs.

Correction de périmètre (9 agglomérations)

Pour les villes où Inside Airbnb scrape un périmètre plus large que la commune-centre, un filtre CENTRE_FILTERS restreint les annonces au périmètre cohérent avec la population de référence :

Afficher le code
filters <- tibble::tribble(
  ~Ville, ~Méthode, ~Périmètre_retenu,
  "Bordeaux", "neighbourhood_group", "Commune de Bordeaux",
  "Lisbon", "neighbourhood_group", "Concelho de Lisboa",
  "Porto", "neighbourhood_group", "PORTO",
  "Bergamo", "neighbourhood", "Commune de Bergamo",
  "Los Angeles", "neighbourhood_group", "City of Los Angeles",
  "Geneva", "neighbourhood", "Commune de Genève",
  "Thessaloniki", "neighbourhood", "Municipalité de Thessalonique",
  "Nashville", "neighbourhood", "12 districts centraux",
  "Brussels", "neighbourhood", "5 communes centrales"
)

reactable(filters, striped = TRUE, compact = TRUE, borderless = TRUE,
  columns = list(Ville = colDef(width = 110), Méthode = colDef(width = 160)))
Table 2

Zone dense — Algorithme GHS-POP

  1. Charger les quartiers IA (GeoJSON) → dissoudre en polygone unique
  2. Réparer les géométries (buffer(0)) et reprojeter en Mollweide (surfaces égales)
  3. Lire le raster GHS-POP 2025 (100 m) sur l’emprise du polygone
  4. Seuil : pixels ≥ 15 hab/pixel = 1 500 hab/km² (définition GHSL Urban Centre, standard EU/ONU)
  5. Vectoriser les pixels denses → polygones
  6. Filtrer : garder les polygones ≥ 30 % de la surface du plus grand (exclut îlots parasites)
  7. Fermeture morphologique : buffer(250 m) + buffer(-250 m) → comble les trous inter-zones
  8. Calculer pop_dense = somme population dans le polygone résultant
  9. Jointure spatiale listings → polygone dense = n_listings_dense
  10. Calculer prs_listings_1000hab_dense = listings_dense / pop_dense × 1000
  11. Indicateur complémentaire densite_top_5km2 = densité dans les 500 pixels les plus peuplés

Fiabilité : 76 villes fiables (aire ≥ 5 km², n ≥ 200 listings), 1 partielle (Nashville).

Analyse multivariée (ACP + classification)

L’ACP porte sur 12 variables actives sélectionnées pour couvrir les 5 axes sans redondance, complétées par 12 variables supplémentaires (contexte UCDB, volumes).

Variables actives

Afficher le code
df_ind |>
  filter(acp == "act") |>
  select(Variable = variable, Indicateur = medium, Axe = theme, Unité = unit) |>
  reactable(striped = TRUE, compact = TRUE, borderless = TRUE,
    columns = list(Variable = colDef(width = 200), Indicateur = colDef(width = 250),
                   Axe = colDef(width = 60), Unité = colDef(width = 80)))
Table 3

Critères de sélection :

  • 1-2 indicateurs par axe (pression, prix, structure, concentration, activité)
  • Pas de redondance (pas Q1 et Q3 et IQR ensemble)
  • Couverture ≥ 95 % (pas de NA massifs)
  • Robustesse aux outliers (médianes plutôt que moyennes)

Variables supplémentaires

Afficher le code
df_ind |>
  filter(acp %in% c("supq", "supql")) |>
  select(Variable = variable, Indicateur = medium, Rôle = acp) |>
  mutate(Rôle = case_when(Rôle == "supq" ~ "Suppl. quanti", Rôle == "supql" ~ "Suppl. quali")) |>
  reactable(striped = TRUE, compact = TRUE, borderless = TRUE,
    columns = list(Variable = colDef(width = 200), Indicateur = colDef(width = 250), Rôle = colDef(width = 120)))
Table 4

Traitements préalables :

  • Log-transformation de prs_listings_1000hab_dense (distribution très asymétrique, facteur 1:80)
  • Centrage-réduction (unités hétérogènes : %, €/nuit, j/an, ratio)
  • Exclusions : sub_cities BAB (pas des villes autonomes) + Nashville (périmètre partiel)

Classification (HCPC)

Classification hiérarchique sur composantes principales (k = 4-6 clusters), méthode Ward. Objectif : identifier des profils-types de marchés (ex : capitales professionnalisées, stations balnéaires compactes, métropoles régulées, marchés émergents).

Comparabilité et précautions d’interprétation

Ce qui est comparable entre villes

Indicateur Pourquoi comparable Condition
prs_listings_1000hab_dense Même périmètre dense partout Zone dense GHS-POP fiable
px_entire_med Type homogène + EUR Conversion au taux fixe
str_entire_pct Ratio interne à chaque ville Aucune
cr_offre_5plus Même seuil partout Taille marché comparable

Ce qui n’est pas directement comparable

Indicateur Biais Précaution
cr_offre_top10host_pct Sensible à la taille du marché (500 vs 50 000 ann.) Comparer villes de taille similaire
listings_1000hab (non dense) Dépend du périmètre administratif Utiliser la variante _dense
act_revenu_med Estimation conservatrice (cappée 70 %) Comparaison relative uniquement
Prix Biarritz dense GHS-POP exclut 40 % pop pavillonnaire Utiliser INSEE pour France

Limites structurelles

  1. Source unique : Airbnb seulement (pas Booking, Vrbo, location directe)
  2. Coupe transversale : juin 2025, pas de tendance temporelle
  3. Prix listé ≠ payé : frais ménage, dynamic pricing, réductions longue durée non captés
  4. Biais de scraping : annonces visibles à un instant T, pas les supprimées/pausées
  5. Régulation non mesurée directement : le % longue durée est un proxy, pas un indicateur juridique

Référence des indicateurs

Afficher le code
df_ind |>
  filter(!is.na(note_lecture) & note_lecture != "") |>
  select(Indicateur = medium, `Note de lecture` = note_lecture) |>
  reactable(striped = TRUE, compact = TRUE, borderless = TRUE,
    columns = list(Indicateur = colDef(width = 250), `Note de lecture` = colDef(minWidth = 400)))

Dictionnaire complet (99 indicateurs)

Afficher le code
df_ind |>
  select(Variable = variable, Label = medium, Thème = theme,
         Type = type, Unité = unit, Polarité = polarity, Source = source) |>
  reactable(
    striped = TRUE, compact = TRUE, borderless = TRUE,
    searchable = TRUE, filterable = TRUE, defaultPageSize = 20,
    columns = list(
      Variable = colDef(width = 180),
      Label = colDef(width = 230),
      Thème = colDef(width = 55, align = "center"),
      Type = colDef(width = 55, align = "center"),
      Unité = colDef(width = 80),
      Polarité = colDef(width = 65, align = "center",
        cell = function(value) if (value == -1) "↑ déf." else if (value == 1) "↑ fav." else "—"),
      Source = colDef(width = 55, align = "center")
    )
  )
Table 5

Glossaire des indicateurs

Ce glossaire reprend les indicateurs utilisés tout au long du rapport, en mettant en évidence leur label court (colonnes de tableau), leur label moyen (titres de graphique) et leur lecture interprétative. Les noms de variables sont les ancres stables ; les labels short et medium sont récupérés dynamiquement depuis le ddict du projet.

Pression territoriale

On parle d’indicateurs de pression territoriale pour mesurer l’intensité d’implantation d’Airbnb sur les territoires — combien d’annonces par habitant, par km², ou pour 1 000 logements. Ils répondent à la question : quelle empreinte Airbnb prend-il dans la ville ?

L’indicateur de référence du projet est prs_listings_1000hab_dense, calé sur le périmètre GHS-POP zone dense pour assurer la comparabilité inter-villes mondiale.

  • Annonces / 1 000 hab. zone dense (Ann./1Khab dns) — Annonces pour 1 000 habitants en zone dense (GHS-POP ≥ 1 500 hab/km²). Sens : pression démographique relative — combien d’annonces par tranche de population dans le polygone urbain dense. Neutralise les différences de délimitation communale entre villes. Indicateur clé du projet pour comparaisons inter-villes mondiales.

  • Densité annonces en zone dense (Ann./km² dense) — Nombre d’annonces par km² dans la zone dense. Sens : intensité spatiale du marché Airbnb. Indépendant de la population résidente. Paris ≈ 588/km², London ≈ 390/km².

  • % annonces en zone dense (% ann. denses) — Part des annonces situées dans la zone dense. Sens : concentration géographique du marché. 100% = purement urbain (Paris, Bangkok). < 50% = offre diffuse étalée sur un périmètre large (Cape Town 51%, Nashville 22%).

  • [??listings_1000hsg] ([??listings_1000hsg]) — Densité Airbnb pour 1 000 logements du parc résidentiel. Sens : ponction potentielle sur le marché résidentiel — quel rapport entre offre Airbnb et stock de logements existants. Permet de mesurer la tension locative induite par l’activité Airbnb.

  • [??listings_1000rp] ([??listings_1000rp]) — Annonces pour 1 000 résidences principales (INSEE). Sens : pression sur le logement habité au quotidien. Variable de référence pour les villes françaises, source INSEE.

Professionnalisation et concentration de l’offre

Le marché Airbnb est partagé entre des particuliers occasionnels et des opérateurs commerciaux qui gèrent plusieurs annonces. Cette section décrit la pyramide des hôtes selon leur niveau de professionnalisation, et la concentration de l’offre entre les plus gros acteurs.

Les quatre niveaux d’hôtes

Nous classons les hôtes en quatre niveaux selon le nombre d’annonces qu’ils gèrent : - single-host : 1 annonce — loueur particulier occasionnel, modèle Airbnb originel - semi-pro : 2 à 4 annonces — multi-host de petite taille (investisseur, conciergerie débutante) - pro : 5 à 9 annonces — multi-host d’échelle commerciale - superpro : ≥ 10 annonces — conciergerie ou opérateur professionnel à grande échelle

Le terme multi-host désigne génériquement tous les hôtes au-delà de single-host (≥ 2 annonces) — terminologie d’Adamiak (2018, 2022) reprise par la littérature comparative urbaine.

Indicateurs cumulés (seuils croissants)

Comptent tous les hôtes au-delà d’un seuil. Un superpro est aussi compté dans multi-host. Utilisés pour les comparaisons inter-villes et l’analyse multivariée.

  • % Hosts multi-host (≥ 2 ann.) (% multi-host) — Part des hôtes gérant au moins 2 annonces. Sens : taux global de professionnalisation. À l’échelle mondiale, ≈ 26% des hôtes sont multi-host mais ils détiennent ≈ 63% des annonces.

  • % Hosts pro et superpro (≥ 5 ann.) (%host pro&sup) — Part des hôtes gérant au moins 5 annonces. Sens : taux de professionnalisation effective — au-delà de la simple gestion de patrimoine. À l’échelle mondiale, ≈ 6,5% des hôtes contrôlent ≈ 40% des annonces.

  • % Hosts superpro (≥ 10 ann.) (% host superpro) — Part des hôtes gérant au moins 10 annonces. Sens : opérateurs commerciaux purs — conciergeries, gestionnaires multi-bien. 2,4% des hôtes mondiaux concentrent ≈ 29% de l’offre. Indicateur fort de la pression réglementaire.

Indicateurs exclusifs (composition du marché)

Comptent les hôtes appartenant à une seule classe. Somment à 100% par construction. Utilisés pour les graphiques de composition (stacked bar par ville).

  • % Hosts mono-host (1 ann. unique) (% host mono) — Part des hôtes ne gérant qu’une seule annonce. Sens : poids du modèle pair-à-pair originel.

  • % Hosts semi-pro (2-4 ann.) (% host semi-pro) — Part des hôtes gérant 2 à 4 annonces. Sens : multi-host de petite taille — souvent investisseurs de patrimoine.

  • % Hosts pro (5-9 ann.) (% host pro) — Part des hôtes gérant 5 à 9 annonces. Sens : multi-host d’échelle commerciale.

  • [??cr_host_superpro_pct] ([??cr_host_superpro_pct]) — Part des hôtes gérant 10 annonces ou plus. Sens : opérateur professionnel à grande échelle.

Concentration globale du marché

Mesurent la distribution de l’offre entre hôtes — qui détient quoi.

  • % Hôtes pour 50 % de l’offre (Lorenz) (% h. pr 50% off.) — Part des hôtes nécessaires pour détenir 50% des annonces. Sens : concentration totale du marché. Plus la valeur est faible, plus le marché est concentré entre quelques acteurs. Florence ≈ 12%, Tokyo ≈ 35%.

  • % Offre détenue par top 10 hôtes (absolu) (% off. top10 h.) — Part des annonces détenues par les 10 plus gros hôtes. Sens : pouvoir de marché des leaders — concentration ratio standard en analyse industrielle.

Grille Adamiak — type × pro

Pour caractériser la composition du marché, nous utilisons une grille croisée à quatre catégories proposée par Adamiak (2018, 2022) et reprise par APUR (2024). Elle croise le type de logement (entier vs chambre) avec le niveau professionnel (single vs multi).

  • % Logt entiers de mono-host (%logt ent.mono h) — Logement entier géré par un host à 1 annonce unique. Sens : particulier qui loue son logement quand il part — modèle pair-à-pair pur. Faible signal d’impact sur le marché résidentiel.

  • % Logt entiers de multi-host (%logt ent.multi h) — Logement entier géré par un multi-host (≥ 2 annonces). Sens : professionnalisation locative pure — signal régulation prioritaire. Pro qui gère plusieurs logements entiers (= autant de logements potentiellement retirés du parc résidentiel).

  • % Chambres de mono-host (%chbr mono h.) — Chambre privée gérée par un host single (1 annonce au total). Sens : couchsurfing payant, étudiants louant une chambre chez eux — modèle peu impactant sur le marché résidentiel.

  • % Chambres de multi-host (%chbr multi h.) — Chambre privée gérée par un multi-host (≥ 2 annonces). Sens : modèle hostel ou colocation organisée — opérateurs commerciaux gérant plusieurs chambres en location courte durée.

Les quatre catégories somment à 100% par construction. La part de logements entiers de multi-host est l’indicateur le plus parlant pour mesurer la professionnalisation locative et la pression sur le marché résidentiel.

⚠️ La grille Adamiak utilise un seuil binaire (single = 1 annonce, multi = ≥ 2 annonces), différent de notre découpage pyramidal à 4 niveaux (single-host, semi-pro, pro, superpro). Les deux logiques sont complémentaires — la pyramide capte la granularité de la professionnalisation, la grille Adamiak capte le croisement type × pro pour comparabilité avec la littérature.

Structure de l’offre

Caractérisent la nature de l’offre Airbnb — types de logement, durée minimum, capacité, modes de réservation.

  • % Logements entiers (% ann. logt ent) — Part des logements entiers dans l’offre active. Sens : indicateur clé de la transformation de l’usage résidentiel. Plus de logements entiers = plus de patrimoine retiré du marché long terme. Moyenne mondiale ≈ 75%.

  • % Longue durée (≥ 30 nuits) (% durée min>30j) — Part des annonces avec minimum de séjour ≥ 30 nuits. Sens : proxy de régulation locale ou de bail mobilité. Plus le seuil est élevé, plus la ville pousse les hôtes vers le moyen terme.

  • % Longue durée (≥ 90 nuits) (% durée min>90j) — Part des annonces avec minimum ≥ 90 nuits. Sens : régulation très restrictive — bascule vers le marché de la location étudiante / professionnelle.

  • Capacité d’accueil médiane (Capacité méd.) — Nombre médian de personnes accueillies par annonce. Sens : taille moyenne des logements offerts. Capacité élevée = logements grands, plutôt familiaux ou groupes ; capacité faible = studios, chambres.

  • Ratio annonces par host (Ann./host) — Nombre moyen d’annonces par hôte. Sens : indicateur synthétique de professionnalisation — un ratio > 2 signale un marché majoritairement professionnel.

  • % Réservation instantanée (% Réserv. inst.) — Part des annonces en réservation sans validation hôte. Sens : proxy de professionnalisation opérationnelle — les opérateurs grands automatisent leur gestion.

Prix

Les indicateurs de prix mesurent les niveaux tarifaires par segment d’offre. Le prix de référence du projet est le prix médian des logements entiers, comparable entre villes pour le segment le plus représentatif du marché.

  • Prix méd. logement entier (Prix méd. ent.) — Prix médian par nuit en EUR, logements entiers uniquement. Sens : niveau tarifaire de référence pour comparaisons inter-villes — le segment “logement entier” est le plus homogène et représente la majorité de l’offre. Indicateur central de positionnement de marché.

Activité commerciale

Les indicateurs d’activité mesurent l’usage commercial réel des annonces. Deux familles très différentes à ne pas confondre.

⚠️ Disponibilité observée vs Occupation estimée — deux concepts distincts

  • Disponibilité (act_cal_*) : nombre de jours ouverts à la réservation sur le calendrier public au moment du scrape. Donnée observée mais imparfaite — on ne distingue pas les jours bloqués volontairement par l’hôte (vacances, travaux) des jours déjà réservés par un guest. Une valeur faible peut signifier annonce très demandée OU annonce fermée à la location ; à croiser avec les reviews pour interpréter.
  • Occupation estimée (act_reserv_*) : nombre de jours estimés réservés, calculé par le modèle dit San Francisco d’Inside Airbnb (reviews × 2 × durée moyenne séjour, cappé à 70%). Donnée modélisée dont les biais sont documentés ; sa valeur réside dans la comparaison relative entre villes où le biais est constant.
  • Revenu estimé (act_revenu_*) : revenu annuel calculé comme occupation estimée × prix moyen. Donnée doublement modélisée — cumule les biais de l’occupation estimée et de la moyenne de prix.

Disponibilité observée (calendrier)

  • Calendrier ouvert médian (j/an) (Cal. ouvert méd.) — Nombre médian de jours ouverts à la réservation sur 365 (champ availability_365). Sens : ouverture moyenne du calendrier hôte. Une annonce à 0 jour est soit fermée volontairement soit déjà entièrement réservée — interpréter avec les reviews.

  • Calendrier ouvert moyen (j/an) (Cal. ouvert moy.) — Moyenne du calendrier ouvert. Plus sensible aux annonces à calendrier totalement libre (365 j). Sens : complément de la médiane pour évaluer l’asymétrie de la distribution.

  • % Annonces calendrier ouvert ≥ 180j (% cal.ouv ≥180j) — Part des annonces dont le calendrier est ouvert plus de 6 mois par an. Sens : proxy d’activité professionnelle — un particulier ouvre rarement son calendrier > 180 jours (logement habité). Au-delà = location dédiée.

Occupation estimée (modèle San Francisco)

  • Occupation estimée médiane (j/an) (Occup. est. méd) — Jours estimés réservés par an (modèle SF d’Inside Airbnb). Sens : niveau d’activité commerciale. Sous-estime le réel (modèle conservateur cappé à 70%) mais comparable entre villes.

  • Occupation estimée moyenne (j/an) (Occup. est. moy) — Moyenne de l’occupation estimée — tirée vers le haut par les annonces très réservées. Sens : complément de la médiane pour évaluer l’asymétrie de la distribution.

  • Taux occupation estimé (max 70%) (Taux occ. est.) — Occupation estimée rapportée à 365 jours, exprimée en pourcentage. Plafonné à 70% par construction du modèle SF. Sens : proxy de performance commerciale — Florence ≈ 35-45%, Paris ≈ 30-40%, Tokyo ≈ 25-35%.

  • % Annonces occupation est. ≥ 30j (%occ.est. ≥30j) — Part des annonces ayant une activité significative (≥ 1 mois occupé par an estimé). Sens : filtre les annonces dormantes ou très occasionnelles.

  • % Annonces occupation est. ≥ 180j (%occ.est. ≥180j) — Part des annonces à forte occupation estimée (≥ 6 mois/an). Sens : proxy de gestion professionnelle à temps plein. À comparer avec act_cal_180j_pct — l’écart révèle les annonces ouvertes mais peu réservées.

Revenu estimé

  • Revenu estimé médian (€/an) (Revenu est.méd.) — Revenu annuel estimé médian par annonce (modèle SF — bookings × LoS × prix). Sens : niveau de monétisation typique. Estimation conservatrice ; valeurs réelles probablement supérieures de 30-100%.

  • Revenu estimé moyen (€/an) (Revenu est.moy.) — Moyenne de la distribution. Tirée vers le haut par les très grosses annonces. Sens : complément de la médiane pour évaluer l’asymétrie de la distribution.

Statut Airbnb

  • % Annonces gérées par superhost (% Superhost) — Part des annonces gérées par un hôte au statut Superhost (label Airbnb officiel — critères de qualité, taux de réponse, taux d’annulation). Sens : proxy de qualité gestion et d’expérience hôte. Plus une ville a de superhosts, plus le marché est mature.