Airbnb
en Île-de-France
  • Offre et réservations
  • Types de locations
  • Prix et revenus
  • Contexte résidentiel
  • Indicateurs-clés
  • Focus Communes
  • Infos
  • La valeur des annonces Airbnb comparée au montant des loyers du parc locatif classique (2022)

Airbnb dans l’offre de logement métropolitain

Le suivi de l’évolution des locations Airbnb s’inscrit dans un contexte de crise du logement exacerbée par la raréfaction du parc de résidences principales financièrement accessibles, sous l’effet de la progression des résidences secondaires et de l’augmentation des prix à la location ou à l’achat d’un logement. Il est important de mettre en perspective la présence d’annonces Airbnb par rapport au contexte résidentiel de chaque territoire, à différentes échelles. Dans cette section, le contexte résidentiel se réfère d’une part à l’importance du parc de logements, qu’il s’agisse de résidences principales ou bien de résidences secondaires et occasionnelles, d’autre part à la valeur de ces biens, estimée pour 2022 à l’aide du montant des loyers du parc locatif classique.


Contexte résidentiel

Le nombre d’annonces Airbnb comparé à l’offre de logements

En moyenne, dans l’ensemble de la région, les logements ayant fait l’objet d’une annonce Airbnb pèsent très peu par rapport à l’ensemble des résidences principales : en 2022, cela concerne moins de 1 logement pour 100 logements en résidence principale. C’était moins de 0,5% en 2016.

À l’échelle départementale, le contraste est très marqué entre Paris, où il y a environ 6 hébergements ayant fait l’objet d’une annonce Airbnb pour 100 logements en résidence principale. Ce pourcentage est nettement plus faible en petite couronne : trois fois plus faible dans les Hauts-de-Seine (1,7%), quatre fois plus en Seine-Saint-Denis (1,5%) et dans le Val-de-Marne. En grande couronne, il est partout inférieur à 1%, sauf en Seine-et-Marne (1,3%).

Les communes où la présence des logements faisant l’objet d’une annonce Airbnb est la plus marquée correspondent pour l’essentiel aux arrondissements parisiens, mais aussi aux communes proches de Disneyland et à plusieurs communes limitrophes de Paris. En 2022, le 2e arrondissement se démarque nettement (>20%), suivi de quatre autres arrondissements parisiens centraux (1er, 3e, 4e et 8e) et de deux communes de Seine-et-Marne (entre 10% et 20%). Les autres communes où ce taux est supérieur à 5% sont le reste des arrondissements parisiens centraux (plus le 10e, le 11e et le 18e), Fontainebleau et plusieurs communes de banlieue (Puteaux, Clichy, Bagnolet, Pantin).

Appariement des données INSEE - Airbnb - Chambre des Notaires

Afin de comparer la quantité d’annonces Airbnb par rapport aux logements présents, nous avons réalisé un appariement entre les données d’AirDNA et les données de l’INSEE portant sur la structure du parc du logement. La source des données et les millésimes diffèrent selon les maillages :

  • À la commune et à l’IRIS, les données annuelles du recensement décrivent jusqu’en 2020 le nombre de résidences principales, secondaires et des logements vacants.

  • Au carroyage, deux millésimes sont disponibles : celui de 2015 et de 2017, et les données portent sur le nombre de ménages (équivalent au nombre de résidences principales). L’information sur le nombre total de logements n’est pas disponible au carreau.

Certaines études expriment l’intensité relative de la présence des annonces Airbnb en les rapportant au nombre total de logements. Nous avons privilégié une comparaison avec le total des résidences principales. L’inconvénient est que les logements mis en annonce dans Airbnb peuvent aussi bien correspondre à des résidences principales (locations occasionnelles dans la résidence principale) qu’à des résidences secondaires. L’avantage est que nous pouvons conserver la même variable de référence pour les différents maillages.

À quelle catégorie d’occupation correspondent les logements faisant l’objet d’annonces Airbnb ?

Lorsque les logements meublés sont mis en location pour des séjours touristiques, ils sont classés parmi les résidences secondaires dans le recensement de la population de l’INSEE (INSEE Flash Île-de-France n°61 oct. 2021). C’est la catégorisation qui sera retenue ici. Mais d’autres approches de la résidence secondaire n’incluent pas les locations meublées temporaires dans cette catégorie : c’est le cas, par exemple, d’études qui retiennent une approche fiscale de la résidence secondaire, basée sur la perception d’une taxe d’habitation (les locations meublées touristiques ne sont pas soumises à la taxe d’habitation), plutôt qu’une approche par les usages (INSEE Analyses Île-de-France n°122 novembre 2020).


viewof indics = Inputs.radio(indic, {label: "Indicateur :", value: "Nombre d'annonces pour 1000 logements en résidence principale"})
viewof annees = Inputs.range([2016,2022], {label: "Année :", value: 2022, step: 1})
mapslog = transpose(maps_log)
img3 = mapslog.filter(d => d.indic === indics & d.annee === annees)
html`<img src="${img3[0].chemin}" width="876"/>`

Types d’annonce et contexte résidentiel

[En construction]

Dans le prolongement de la classification qui conclut la section Type de locations, cette classification statistique intègre quatre nouvelles variables : la part d’annonces Airbnb sur le parc de résidences principales, la part des hébergements Airbnb loués plus de 120 nuitées sur le parc de résidences principales, le taux d’occupation ainsi que le prix médian par nuitée et par personne. 6 classes se dégagent parmi les communes franciliennes.

[plus d’éléments à venir]

html`<img src="${"img/rp/maps/typo_classif/typo_classif_2022_7var.png"}" width="790" height="500"/>`

Description des classes

  • Classe 1
  • Classe 2
  • Classe 3
  • Classe 4
  • Classe 5
  • Classe 6

Part des types d’annonces au sein de la classe 1 :

Profil

Présence marginale, commercial -

% occasionnel

32.8

% semi-commercial

45

% commercial

22.3

% airbnb / RP

0.8

pct 120 / RP

0.1

Taux d'occupation

38.3

Prix / personne

26.8

Effectif

47

Liste des communes :

viewof coms_1_7var = Inputs.select(liste_coms_1_7var)

Part des types d’annonce au sein de la commune

p_com_1_7var = transpose(profils_com_1_7var)
map_7var = p_com_1_7var.filter(d => d.Commune === coms_1_7var)
makeTable(map_7var);

Part des types d’annonces au sein de la classe 2 :

Profil

Moyen, semi-commercial

% occasionnel

28.5

% semi-commercial

39.9

% commercial

31.6

% airbnb / RP

1.3

pct 120 / RP

0.3

Taux d'occupation

50.2

Prix / personne

27.4

Effectif

103

Liste des communes :

viewof coms_2_7var = Inputs.select(liste_coms_2_7var)

Part des types d’annonce au sein de la commune

p_com_2_7var = transpose(profils_com_2_7var)
map2_7var = p_com_2_7var.filter(d => d.Commune === coms_2_7var)
makeTable(map2_7var);

Part des types d’annonces au sein de la classe 3 :

Profil

Présence marginale, commercial +

% occasionnel

29

% semi-commercial

29.1

% commercial

42

% airbnb / RP

0.8

pct 120 / RP

0.2

Taux d'occupation

39.2

Prix / personne

24.3

Effectif

41

Liste des communes :

viewof coms_3_7var = Inputs.select(liste_coms_3_7var)

Part des types d’annonce au sein de la commune

p_com_3_7var = transpose(profils_com_3_7var)
map3_7var = p_com_3_7var.filter(d => d.Commune === coms_3_7var)
makeTable(map3_7var);

Part des types d’annonces au sein de la classe 4 :

Profil

Présence importante, commercial +

% occasionnel

21.2

% semi-commercial

33.1

% commercial

45.7

% airbnb / RP

1.9

pct 120 / RP

0.6

Taux d'occupation

53.8

Prix / personne

27

Effectif

53

Liste des communes :

viewof coms_4_7var = Inputs.select(liste_coms_4_7var)

Part des types d’annonce au sein de la commune

p_com_4_7var = transpose(profils_com_4_7var)
map4_7var = p_com_4_7var.filter(d => d.Commune === coms_4_7var)
makeTable(map4_7var);

Part des types d’annonces au sein de la classe 5 :

Profil

Commercial ++, prix élevés

% occasionnel

18.6

% semi-commercial

23.3

% commercial

57.9

% airbnb / RP

9.6

pct 120 / RP

3.1

Taux d'occupation

61.3

Prix / personne

58.6

Effectif

10

Liste des communes :

viewof coms_5_7var = Inputs.select(liste_coms_5_7var)

Part des types d’annonce au sein de la commune

p_com_5_7var = transpose(profils_com_5_7var)
map5_7var = p_com_5_7var.filter(d => d.Commune === coms_5_7var)
makeTable(map5_7var);

Part des types d’annonces au sein de la classe 6 :

Profil

Commercial +++, locations permanentes

% occasionnel

10.6

% semi-commercial

18.3

% commercial

71.1

% airbnb / RP

5.5

pct 120 / RP

3

Taux d'occupation

54.4

Prix / personne

23.2

Effectif

13

Liste des communes :

viewof coms_6_7var = Inputs.select(liste_coms_6_7var)

Part des types d’annonce au sein de la commune

p_com_6_7var = transpose(profils_com_6_7var)
map6_7var = p_com_6_7var.filter(d => d.Commune === coms_6_7var)
makeTable(map6_7var);

Pistes à explorer

  • Annonces louées plus de 120 jours comparé à l’offre de résidences principales
  • Différence entre nombre d’annonces Airbnb et nombre d’annonces à la location en 2022 (source)

La valeur des annonces Airbnb comparée au montant des loyers du parc locatif classique (2022)

Pistes à explorer

  • Les prix des locations Airbnb comparés à la valeur des loyers du parc locatif classique (source)
  • Les prix des locations Airbnb comparés aux prix des transactions immobilières (données base BIEN)

function makeTable(tab) {
  const table = document.createElement('table');
  table.style = 'border: none; border-collapse: collapse;';
  const tbody = document.createElement('tbody');
  Object.keys(tab[0])
    .forEach((key) => {
      const tr = document.createElement('tr');
      const td1 = document.createElement('td');
      const td2 = document.createElement('td');
      td1.style = 'border-left: 1px solid #000; padding: 10px; background-color: #DDDDDD; border-bottom: 1px solid #000; border-right: 1px solid #000; border-top: 1px solid #000'
      td2.style = 'border-left: 1px solid #000; padding: 10px; border-bottom: 1px solid #000; border-right: 1px solid #000; border-top: 1px solid #000';
      td1.textContent = key;
      td2.textContent = tab[0][key];
      tr.appendChild(td1);
      tr.appendChild(td2);
      tbody.appendChild(tr);
    });
  table.appendChild(tbody);
  return table;
}