Administration

← Retour

Log : 20260315_143542

=== CRAWL 20260315_143542 ===
Trigger: manual
Started: 2026-03-15T14:35:42.174524
============================================================

Récupération de la page 1/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=1
  → 35 annonces récupérées (total en mémoire: 35)
Export de 35 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 2/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=2
  → 35 annonces récupérées (total en mémoire: 70)
Export de 70 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 3/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=3
  → 35 annonces récupérées (total en mémoire: 105)
Export de 105 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 4/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=4
  → 35 annonces récupérées (total en mémoire: 140)
Export de 140 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 5/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=5
  → 35 annonces récupérées (total en mémoire: 175)
Export de 175 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 6/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=6
  → 35 annonces récupérées (total en mémoire: 210)
Export de 210 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 7/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=7
  → 35 annonces récupérées (total en mémoire: 245)
Export de 245 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 8/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=8
  → 35 annonces récupérées (total en mémoire: 280)
Export de 280 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 9/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=9
  → 35 annonces récupérées (total en mémoire: 315)
Export de 315 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 10/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=10
  → 35 annonces récupérées (total en mémoire: 350)
Export de 350 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 11/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=11
  → 35 annonces récupérées (total en mémoire: 385)
Export de 385 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 12/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=12
  → 35 annonces récupérées (total en mémoire: 420)
Export de 420 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 13/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=13
  → 35 annonces récupérées (total en mémoire: 455)
Export de 455 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 14/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=14
  → 35 annonces récupérées (total en mémoire: 490)
Export de 490 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 15/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=15
  → 35 annonces récupérées (total en mémoire: 525)
Export de 525 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 16/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=16
  → 35 annonces récupérées (total en mémoire: 560)
Export de 560 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 17/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=17
  → 35 annonces récupérées (total en mémoire: 595)
Export de 595 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 18/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=18
  → 35 annonces récupérées (total en mémoire: 630)
Export de 630 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 19/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=19
  → 35 annonces récupérées (total en mémoire: 665)
Export de 665 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 20/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=20
  → 35 annonces récupérées (total en mémoire: 700)
Export de 700 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 21/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=21
  → 35 annonces récupérées (total en mémoire: 735)
Export de 735 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 22/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=22
  → 35 annonces récupérées (total en mémoire: 770)
Export de 770 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 23/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=23
  → 35 annonces récupérées (total en mémoire: 805)
Export de 805 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 24/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=24
  → 35 annonces récupérées (total en mémoire: 840)
Export de 840 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 25/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=25
  → 35 annonces récupérées (total en mémoire: 875)
Export de 875 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 26/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=26
  → 35 annonces récupérées (total en mémoire: 910)
Export de 910 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 27/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=27
  → 35 annonces récupérées (total en mémoire: 945)
Export de 945 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 28/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=28
  → 35 annonces récupérées (total en mémoire: 980)
Export de 980 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 29/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=29
  → 35 annonces récupérées (total en mémoire: 1015)
Export de 1015 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 30/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=30
  → 35 annonces récupérées (total en mémoire: 1050)
Export de 1050 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 31/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=31
  → 35 annonces récupérées (total en mémoire: 1085)
Export de 1085 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 32/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=32
  → 35 annonces récupérées (total en mémoire: 1120)
Export de 1120 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 33/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=33
  → 35 annonces récupérées (total en mémoire: 1155)
Export de 1155 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 34/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=34
  → 35 annonces récupérées (total en mémoire: 1190)
Export de 1190 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 35/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=35
  → 35 annonces récupérées (total en mémoire: 1225)
Export de 1225 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 36/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=36
  → 35 annonces récupérées (total en mémoire: 1260)
Export de 1260 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 37/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=37
  → 35 annonces récupérées (total en mémoire: 1295)
Export de 1295 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 38/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=38
  → 35 annonces récupérées (total en mémoire: 1330)
Export de 1330 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 39/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=39
  → 35 annonces récupérées (total en mémoire: 1365)
Export de 1365 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 40/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=40
  → 35 annonces récupérées (total en mémoire: 1400)
Export de 1400 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.
Récupération de la page 41/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000&regdate=2016-max&u_car_brand=RENAULT&u_car_model=RENAULT_Clio&gearbox=1&seats=5%2C4&order=asc&page=41
  → 35 annonces récupérées (total en mémoire: 1435)
Export de 1435 annonces vers /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv réussi.

Terminé : 1435 annonces au total dans /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv
INFO: Model fallback : clio_4
INFO: Schéma initialisé dans /home/ubuntu/app/db/lbc.sqlite
════════════════════════════════════════════════════════════
  📦 MIGRATION CSV → SQLite unifié
════════════════════════════════════════════════════════════

📂 leboncoin_ads_clio_4_20260315_143543.csv
   ✅ 1435 lus, 1435 insérés, 0 ignorés, 0 erreurs

────────────────────────────────────────────────────────────
  📊 TOTAL : 1435 lus, 1435 insérés
  💾 Base : /home/ubuntu/app/db/lbc.sqlite
  📌 5031 annonces en base
════════════════════════════════════════════════════════════
INFO: 1426 list_id lus dans le CSV.
INFO: 423 annonces actives en base pour renault clio_4.
INFO: 423 annonce(s) marquées indisponibles.
════════════════════════════════════════════════════════════
  CHECK DISPONIBILITÉ
  CSV   : leboncoin_ads_clio_4_20260315_143543.csv
  Brand : renault  |  Modèle : clio_4
════════════════════════════════════════════════════════════

  Annonces dans le CSV    : 1426
  Annonces actives en DB  : 423
  Absentes du crawl       : 423
  Marquées indisponibles  : 423
════════════════════════════════════════════════════════════

  Vérification :
  SELECT list_id, available, unavailable_detected_at FROM ads WHERE available = 0;
══════════════════════════════════════════════════════════════════════
  🚗 ANALYSEUR LEBONCOIN - Analyses Descriptives Véhicules
══════════════════════════════════════════════════════════════════════
  💾 Base SQLite       : /home/ubuntu/app/db/lbc.sqlite
  📁 Dossier figures  : /home/ubuntu/app/stats/clio_4/figures
  🔍 Modèle filtré    : clio_4
  📊 Graphiques       : Non
══════════════════════════════════════════════════════════════════════
📂 Chargement depuis SQLite : /home/ubuntu/app/db/lbc.sqlite
   ✅ 670 annonces chargées (modèle 'clio_4')

======================================================================
📊 EXPLORATION DES DONNÉES BRUTES
======================================================================

📌 Nombre total d'annonces : 670

📋 Premières lignes (colonnes parsées) :
      list_id                                                                          subject  price_eur  year_model  mileage_km     fuel    brand   model owner_type first_publication_date
0  3118025641                               Renault clio 4 1.5 dci 2019 entretenu chez renault       7990        2019      113000   diesel  renault  clio_4    private    2025-12-27 01:30:58
1  3143719888             Renault clio 4 phase 2 0.9 tce 90cv energy limited entretien complet       7990        2018       95000  essence  renault  clio_4        pro    2026-02-12 11:14:08
2  3141083795  Renault Clio 4/IV Authentique / 1.2 16 V 75 ch / 88280 kms / Entretiens à jours       5990        2014       88280  essence  renault  clio_4        pro    2026-02-07 16:41:23
3  3147329929                                                                           Clio 4       4000        2014      100000  essence  renault  clio_4    private    2026-02-18 19:23:14
4  3146265269                                                                           Clio 4       7900        2016       88500  essence  renault  clio_4    private    2026-02-16 19:27:05

❓ Valeurs manquantes par colonne clé :
   list_id                        :    0 manquantes (0.0%)
   subject                        :    0 manquantes (0.0%)
   price_eur                      :    0 manquantes (0.0%)
   year_model                     :    0 manquantes (0.0%)
   mileage_km                     :    0 manquantes (0.0%)
   fuel                           :    0 manquantes (0.0%)
   brand                          :    0 manquantes (0.0%)
   model                          :    0 manquantes (0.0%)
   owner_type                     :    0 manquantes (0.0%)
   first_publication_date         :    0 manquantes (0.0%)

📅 Période couverte :
   Première publication : 2025-02-01 08:49:00
   Dernière publication : 2026-03-08 23:27:36
   Durée : 400 jours

👤 Répartition par type de vendeur :
   private         :  416 (62.1%)
   pro             :  254 (37.9%)

⛽ Répartition par carburant :
   essence              :  349 (52.1%)
   diesel               :  320 (47.8%)
   autre                :    1 (0.1%)

🏭 Top 10 marques :
   renault              :  670 (100.0%)

🧮 Création des colonnes calculées...
   ✅ Colonnes ajoutées : age_years, km_per_year, price_per_km

🧹 Nettoyage des données...

   📊 Rapport de nettoyage :
      prix_aberrants            :    0 lignes supprimées
      km_aberrants              :    0 lignes supprimées
      annee_aberrante           :    0 lignes supprimées
      age_negatif               :    0 lignes supprimées
      ─────────────────────────────────────────────
      Total supprimé          :    0
      Restantes               :  670 / 670
      Pourcentage conservé    : 100.0%

🔍 Détection des outliers (méthode IQR)...
   price_eur            :   24 outliers (3.6%)
      Bornes IQR : [5,175 ; 10,015]
   mileage_km           :   15 outliers (2.2%)
      Bornes IQR : [25,500 ; 221,500]
   age_years            :    2 outliers (0.3%)
      Bornes IQR : [5 ; 13]

   📌 Total d'annonces outliers (au moins 1 variable) : 34 (5.1%)
   ⚠️  Les outliers sont identifiés mais NON supprimés.

======================================================================
📊 RÉSUMÉ APRÈS NETTOYAGE
======================================================================
   Nombre d'annonces restantes : 670
   Dont outliers identifiés    : 34
   Annonces non-outliers       : 636

   Plages de valeurs :
      price_eur            : [     3,490 ;      9,000]  (moy:      7,531)
      mileage_km           : [       216 ;    272,000]  (moy:    125,047)
      year_model           : [     2,014 ;      2,024]  (moy:      2,017)
      age_years            : [         2 ;         12]  (moy:          9)
      km_per_year          : [        27 ;     36,333]  (moy:     14,229)

   💾 670 annonces enrichies persistées dans SQLite

🔎 Détection des annonces suspectes...
   ⚠️  1 signaux de suspicion détectés
      km_trop_bas_diesel: 1
   💾 1 signaux persistés dans SQLite

======================================================================
📊 STATISTIQUES DESCRIPTIVES GLOBALES
======================================================================

📊 Tableau récapitulatif (valeurs brutes) :
   Variable  Count          Mean        Median          Std    Min           Q1            Q3           Max          IQR
  price_eur    670   7531.435821   7799.000000  1042.958700 3490.0  6990.000000   8200.000000   9000.000000  1210.000000
 mileage_km    670 125046.728358 115900.000000 40986.903788  216.0 99000.000000 148000.000000 272000.000000 49000.000000
 year_model    670   2016.937313   2017.000000     1.587209 2014.0  2016.000000   2018.000000   2024.000000     2.000000
  age_years    670      9.062687      9.000000     1.587209    2.0     8.000000     10.000000     12.000000     2.000000
km_per_year    670  14228.614484  13596.428571  5291.599419   27.0 10095.959596  17377.777778  36333.333333  7281.818182

📊 Tableau formaté :
   Variable Count     Mean   Median       Std   Min       Q1       Q3      Max     IQR
  price_eur   670    7,531    7,799  1,042.96 3,490    6,990    8,200    9,000   1,210
 mileage_km   670  125,047  115,900 40,986.90   216   99,000  148,000  272,000  49,000
 year_model   670    2,017    2,017      1.59 2,014    2,016    2,018    2,024       2
  age_years   670      9.1      9.0      1.59   2.0      8.0     10.0     12.0     2.0
km_per_year   670 14,228.6 13,596.4  5,291.60  27.0 10,096.0 17,377.8 36,333.3 7,281.8

📝 INTERPRÉTATION DES STATISTIQUES :
--------------------------------------------------

   📌 price_eur :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Faible dispersion (CV = 14%, σ = 1,043)
      → Étendue : [3,490 ; 9,000] (IQR = 1,210)

   📌 mileage_km :
      → Distribution asymétrique DROITE (moyenne 125,047 > médiane 115,900)
        Quelques valeurs élevées tirent la moyenne vers le haut.
      → Dispersion MODÉRÉE (CV = 33%, σ = 40,987)
      → Étendue : [216 ; 272,000] (IQR = 49,000)

   📌 year_model :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Faible dispersion (CV = 0%, σ = 2)
      → Étendue : [2,014 ; 2,024] (IQR = 2)

   📌 age_years :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Faible dispersion (CV = 18%, σ = 2)
      → Étendue : [2 ; 12] (IQR = 2)

   📌 km_per_year :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Dispersion MODÉRÉE (CV = 37%, σ = 5,292)
      → Étendue : [27 ; 36,333] (IQR = 7,282)

======================================================================
📊 DISTRIBUTIONS PAR CATÉGORIES
======================================================================

📊 Prix moyen par année modèle...

   📋 Table : Prix par année modèle
   ---------------------------------------------------------------------------
    Année    Nb   Prix moy   Prix méd   Décote %
   ---------------------------------------------------------------------------
     2014    53      6,972      7,200        N/A
     2015    55      7,319      7,600      -5.0%
     2016   171      7,362      7,500      -0.6%
     2017   152      7,657      7,800      -4.0%
     2018   117      7,595      7,800      +0.8%
     2019    93      7,751      7,990      -2.0%
     2020    25      8,340      8,500      -7.6%
     2021     2      8,640      8,640      -3.6%

   📌 Décote annuelle moyenne : -3.1%

📊 Prix moyen par tranche de kilométrage...

   📋 Table : Prix par tranche de km
   ----------------------------------------------------------------------
        Tranche    Nb   Prix moy   Prix méd      Var %
   ----------------------------------------------------------------------
          0-20k     2      7,525      7,525        N/A
         20-50k     5      7,876      7,990      +4.7%
         50-80k    56      7,837      7,990      -0.5%
        80-120k   319      7,634      7,900      -2.6%
       120-160k   153      7,786      7,900      +2.0%
       160-200k   100      7,164      7,000      -8.0%
          200k+    35      6,000      5,990     -16.2%

📊 Prix moyen par âge...

   📋 Table : Prix par âge
   -----------------------------------------------------------------
     Âge    Nb   Prix moy   Décote %
   -----------------------------------------------------------------
       5     2      8,640        N/A
       6    25      8,340      -3.5%
       7    93      7,751      -7.1%
       8   117      7,595      -2.0%
       9   152      7,657      +0.8%
      10   171      7,362      -3.9%
      11    55      7,319      -0.6%
      12    53      6,972      -4.7%

   📌 La décote ralentit significativement à 8 ans

📊 Prix par type de carburant...

   📋 Table : Prix par carburant
   ----------------------------------------------------------------------
         Carburant    Nb   Prix moy   Prix méd
   ----------------------------------------------------------------------
            diesel   320      7,415      7,750
           essence   349      7,634      7,800

   📌 Carburant avec prix médian le plus élevé : essence (7,800€)
   📌 Carburant avec prix médian le plus bas : diesel (7,750€)

📊 Prix par type de vendeur...

   📋 Table : Prix par type de vendeur
   ------------------------------------------------------------
         Type    Nb   Prix moy   Prix méd
   ------------------------------------------------------------
      private   416      7,414      7,595
          pro   254      7,724      7,990

   📌 Test Mann-Whitney (médiane) : p = 0.0044
   ✅ Différence SIGNIFICATIVE (p < 0.05)
   📌 Écart médian Pro - Particulier : +395€

📊 Prix par modèle de véhicule...
   ℹ️ Un seul modèle détecté (clio_4) — comparaison non applicable

   ✅ Toutes les distributions par catégorie sauvegardées dans /home/ubuntu/app/stats/clio_4/figures

======================================================================
📊 ANALYSES AVANCÉES - SEUILS PSYCHOLOGIQUES
======================================================================

📊 Analyse des seuils de kilométrage...

   📋 Taux de décote par tranche de 10k km :
   --------------------------------------------------
        30k : décote  -11.6% (n=  3)
        40k : décote   15.5% (n=  2) ⚡
        50k : décote   -6.4% (n= 12)
        60k : décote   -7.4% (n= 15)
        70k : décote    3.5% (n= 29)
        80k : décote   -0.4% (n= 47)
        90k : décote    1.6% (n= 68)
       100k : décote    2.0% (n= 90)
       110k : décote    0.4% (n=114)
       120k : décote   -2.7% (n= 39)
       130k : décote   -2.4% (n= 42)
       140k : décote    0.1% (n= 44)
       150k : décote    6.8% (n= 28)
       160k : décote   -1.9% (n= 27)
       170k : décote    2.3% (n= 29)
       180k : décote    4.7% (n= 19)
       190k : décote    5.0% (n= 25)
       200k : décote   -2.1% (n= 12)
       210k : décote   10.0% (n=  8) ⚡
       220k : décote    7.0% (n=  5)
       230k : décote    0.3% (n=  4)
       250k : décote    6.7% (n=  2)
       270k : décote   30.2% (n=  2) ⚡

   📌 Seuils où la décote s'accélère (> 8%) :
      → 40k km : 15.5%
      → 210k km : 10.0%
      → 270k km : 30.2%
   ✅ Sauvegardé : /home/ubuntu/app/stats/clio_4/figures/seuils_km.png

📊 Analyse des seuils d'âge...

   📋 Taux de décote par année d'âge :
   ---------------------------------------------
     6 ans : décote    3.5% (n= 25)
     7 ans : décote    7.1% (n= 93)
     8 ans : décote    2.0% (n=117) 🐢 LENTE
     9 ans : décote   -0.8% (n=152) 🐢 LENTE
    10 ans : décote    3.9% (n=171)
    11 ans : décote    0.6% (n= 55) 🐢 LENTE
    12 ans : décote    4.7% (n= 53)

   📌 Décote lente (< 5% par an) :
      → 6 ans : 3.5%
      → 8 ans : 2.0%
      → 9 ans : -0.8%
      → 10 ans : 3.9%
      → 11 ans : 0.6%
      → 12 ans : 4.7%
   ✅ Sauvegardé : /home/ubuntu/app/stats/clio_4/figures/seuils_age.png

======================================================================
📊 IDENTIFICATION DES BONNES AFFAIRES
======================================================================

📊 Construction du modèle de prix attendu...
   📌 Modèle : prix = -161.42 × âge + -0.0089 × km + 10,107
   📌 R² = 0.179
📊 Calcul des écarts de prix...

   📋 Classification des annonces :
      🌟 Excellente affaire        :   45 (  6.7%)
      👍 Bonne affaire             :   94 ( 14.0%)
      📊 Prix marché               :  381 ( 56.9%)
      💰 Cher                      :  128 ( 19.1%)
      🔴 Très cher                 :   22 (  3.3%)
📊 Graphique : Distribution des écarts de prix...
   ✅ Sauvegardé : /home/ubuntu/app/stats/clio_4/figures/ecarts_prix.png

   🌟 TOP 10 MEILLEURES AFFAIRES (écart le plus négatif) :
   ====================================================================================================
    1. [3154311236] Renault Clio 4 1.5 dCi 2016 – Diesel – Société – 1
       Prix:    3,800€ | Attendu:    7,131€ | Écart:  -46.7% | Année: 2016 | Km: 153,000
    2. [3147329929] Clio 4
       Prix:    4,000€ | Attendu:    7,280€ | Écart:  -45.1% | Année: 2014 | Km: 100,000
    3. [3144664626] Clio 4 retour de vol
       Prix:    4,800€ | Attendu:    8,488€ | Écart:  -43.4% | Année: 2019 | Km: 55,000
    4. [3150370688] Clio 4
       Prix:    3,490€ | Attendu:    6,090€ | Écart:  -42.7% | Année: 2016 | Km: 270,000
    5. [3138542846] Clio 4 essence retour vol
       Prix:    4,500€ | Attendu:    7,442€ | Écart:  -39.5% | Année: 2015 | Km: 100,000
    6. [3158250069] Renault Clio 1.5 dci 90cv contrôle technique ok
       Prix:    3,900€ | Attendu:    6,395€ | Écart:  -39.0% | Année: 2018 | Km: 272,000
    7. [3144128404] Clio 4
       Prix:    4,980€ | Attendu:    8,087€ | Écart:  -38.4% | Année: 2019 | Km: 100,000
    8. [3156843508] Renault Clio IV BUSINESS dCi 75 E6C
       Prix:    4,900€ | Attendu:    7,952€ | Écart:  -38.4% | Année: 2019 | Km: 115,208
    9. [3143852062] Renault Clio IV SOCIETE DCI 75 ENERGY AIR
       Prix:    4,900€ | Attendu:    7,766€ | Écart:  -36.9% | Année: 2017 | Km: 99,816
   10. [3125005510] Clio 4 Urgent
       Prix:    5,000€ | Attendu:    7,800€ | Écart:  -35.9% | Année: 2017 | Km: 96,000

   🔴 TOP 10 ANNONCES SURÉVALUÉES (écart le plus positif) :
   ====================================================================================================
    1. [3101566836] Renault CLIO IV 1.5 DCI 75CH ENERGY BUSINESS 5P
       Prix:    8,990€ | Attendu:    7,025€ | Écart:  +28.0% | Année: 2016 | Km: 165,000
    2. [3155921737] Renault CLIO IV 1.5 DCI 90CH ENERGY BUSINESS 82G 5
       Prix:    8,490€ | Attendu:    6,761€ | Écart:  +25.6% | Année: 2016 | Km: 194,600
    3. [3155418369] Renault CLIO IV 1.5 DCI 90CH ENERGY BUSINESS 82G 5
       Prix:    8,490€ | Attendu:    6,761€ | Écart:  +25.6% | Année: 2016 | Km: 194,600
    4. [3146601766] Clio 4
       Prix:    8,990€ | Attendu:    7,168€ | Écart:  +25.4% | Année: 2017 | Km: 167,000
    5. [3143614646] Renault Clio 1.5 dCi 90ch energy Intens 5p
       Prix:    8,999€ | Attendu:    7,195€ | Écart:  +25.1% | Année: 2016 | Km: 145,846
    6. [3149138836] Renault CLIO IV 1.5 DCI 75CH ENERGY BUSINESS 5P
       Prix:    8,980€ | Attendu:    7,204€ | Écart:  +24.7% | Année: 2017 | Km: 163,000
    7. [3144108186] Renault CLIO IV 1.5 DCI 75CH ENERGY BUSINESS 5P
       Prix:    8,980€ | Attendu:    7,204€ | Écart:  +24.7% | Année: 2017 | Km: 163,000
    8. [3091105346] Clio 4 diesel
       Prix:    8,900€ | Attendu:    7,186€ | Écart:  +23.9% | Année: 2016 | Km: 146,900
    9. [3152461391] Renault Clio 1.5 DCI 90 INTENS
       Prix:    8,990€ | Attendu:    7,281€ | Écart:  +23.5% | Année: 2018 | Km: 172,500
   10. [3132646043] RENAULT CLIO IV 1.5 dci 75 cv
       Prix:    8,990€ | Attendu:    7,283€ | Écart:  +23.4% | Année: 2016 | Km: 136,000

======================================================================
📊 TABLEAU DE BORD RÉCAPITULATIF
======================================================================

   ┌──────────────────────────────────────────────────┐
   │ Nombre total d'annonces      │                670 │
   │ Prix moyen                   │            7,531 € │
   │ Prix médian                  │            7,799 € │
   │ Km moyen                     │         125,047 km │
   │ Km médian                    │         115,900 km │
   │ Âge moyen                    │            9.1 ans │
   │ Âge médian                   │            9.0 ans │
   │ Km/an moyen                  │       14,229 km/an │
   └──────────────────────────────────────────────────┘

   ✅ Sauvegardé : /home/ubuntu/app/stats/clio_4/figures/dashboard_kpis.png

======================================================================
💡 INSIGHTS PRINCIPAUX
======================================================================

   🎯 Âge optimal d'achat : ~12 ans (meilleur rapport prix/ancienneté)
   ⚡ Seuil km critique : la décote s'accélère le plus autour de (260000, 280000]
   ⛽ Carburant tenant le mieux sa valeur : diesel (prix/âge le plus élevé)
   👔 Les pros vendent 5.2% plus cher que les particuliers (médiane)
   🔄 Km/an médian : 13,596 km → Profil dominant : 10-15k (Normal)
   🏭 Top 3 marques = 100% du marché : renault (670)

======================================================================
💡 RECOMMANDATIONS
======================================================================

   🛒 POUR UN ACHETEUR :
   --------------------------------------------------
   • Sweet spot : véhicules de 5-8 ans, 60-120k km
     Prix moyen dans cette fourchette : 7,902€
     (133 annonces disponibles)
   • Prix médian du marché : 7,799€ → cible < 7,019€ pour une bonne affaire
   • Privilégier les annonces de particuliers si budget serré
   • Vérifier le km/an : < 15 000 km/an = usage normal

   💰 POUR UN VENDEUR :
   --------------------------------------------------
   • Prix médian du marché : 7,799€
   • Positionner légèrement sous le marché pour vendre vite (-5% à -10%)
   • Les véhicules < 115,900 km se vendent mieux
   • Mettre en avant un faible km/an si applicable

   🎯 SEGMENTS DE MARCHÉ :
   --------------------------------------------------
   • Budget (190 annonces) :
     Prix : 3,490€ - 6,990€
     Âge moyen : 9.4 ans | Km moyen : 144,235
   • Milieu de gamme (314 annonces) :
     Prix : 6,999€ - 8,200€
     Âge moyen : 9.3 ans | Km moyen : 117,795
   • Premium (166 annonces) :
     Prix : 8,280€ - 9,000€
     Âge moyen : 8.3 ans | Km moyen : 116,800

======================================================================
💾 EXPORT DES RÉSULTATS EN BASE SQLite
======================================================================
   📌 Run #23 créé
   🔍 Modèle : clio_4
   📎 670 annonces liées au run
   ✅ Stats descriptives : 5 variables
   ✅ Modèle régression : 2 coefficients (R²=0.179)
   ✅ Référentiel prix : 40 segments
   ✅ Classifications deal : 670 annonces

   💾 Tout exporté dans /home/ubuntu/app/db/lbc.sqlite

══════════════════════════════════════════════════════════════════════
  ✅ ANALYSE TERMINÉE en 5.7 secondes
  📊 670 annonces analysées  (run #23)
  🔍 Modèle           : clio_4
  💾 Base SQLite      : /home/ubuntu/app/db/lbc.sqlite
  📁 Figures          : /home/ubuntu/app/stats/clio_4/figures
══════════════════════════════════════════════════════════════════════
Récupération de la page 1/2 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=toyota+yaris&price=3000-9000&regdate=2016-max&gearbox=1&seats=5%2C4&u_car_brand=TOYOTA&order=asc&page=1
  → 35 annonces récupérées (total en mémoire: 35)
Export de 35 annonces vers /home/ubuntu/app/leboncoin_ads_yaris_20260315_143803.csv réussi.
Récupération de la page 2/2 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=toyota+yaris&price=3000-9000&regdate=2016-max&gearbox=1&seats=5%2C4&u_car_brand=TOYOTA&order=asc&page=2
  → 13 annonces récupérées (total en mémoire: 48)
Export de 48 annonces vers /home/ubuntu/app/leboncoin_ads_yaris_20260315_143803.csv réussi.

Terminé : 48 annonces au total dans /home/ubuntu/app/leboncoin_ads_yaris_20260315_143803.csv
INFO: Model fallback : yaris
INFO: Schéma initialisé dans /home/ubuntu/app/db/lbc.sqlite
════════════════════════════════════════════════════════════
  📦 MIGRATION CSV → SQLite unifié
════════════════════════════════════════════════════════════

📂 leboncoin_ads_yaris_20260315_143803.csv
   ✅ 48 lus, 48 insérés, 0 ignorés, 0 erreurs

────────────────────────────────────────────────────────────
  📊 TOTAL : 48 lus, 48 insérés
  💾 Base : /home/ubuntu/app/db/lbc.sqlite
  📌 5048 annonces en base
════════════════════════════════════════════════════════════
INFO: 48 list_id lus dans le CSV.
INFO: 60 annonces actives en base pour toyota yaris.
INFO: 17 annonce(s) marquées indisponibles.
════════════════════════════════════════════════════════════
  CHECK DISPONIBILITÉ
  CSV   : leboncoin_ads_yaris_20260315_143803.csv
  Brand : toyota  |  Modèle : yaris
════════════════════════════════════════════════════════════

  Annonces dans le CSV    : 48
  Annonces actives en DB  : 60
  Absentes du crawl       : 17
  Marquées indisponibles  : 17
════════════════════════════════════════════════════════════

  Vérification :
  SELECT list_id, available, unavailable_detected_at FROM ads WHERE available = 0;
══════════════════════════════════════════════════════════════════════
  🚗 ANALYSEUR LEBONCOIN - Analyses Descriptives Véhicules
══════════════════════════════════════════════════════════════════════
  💾 Base SQLite       : /home/ubuntu/app/db/lbc.sqlite
  📁 Dossier figures  : /home/ubuntu/app/stats/yaris/figures
  🔍 Modèle filtré    : yaris
  📊 Graphiques       : Non
══════════════════════════════════════════════════════════════════════
📂 Chargement depuis SQLite : /home/ubuntu/app/db/lbc.sqlite
   ✅ 86 annonces chargées (modèle 'yaris')

======================================================================
📊 EXPLORATION DES DONNÉES BRUTES
======================================================================

📌 Nombre total d'annonces : 86

📋 Premières lignes (colonnes parsées) :
      list_id                                subject  price_eur  year_model  mileage_km     fuel   brand  model owner_type first_publication_date
0  3149141739           TOYOTA YARIS 69 VVT-i Active       7490        2015      132826  essence  toyota  yaris        pro    2026-02-22 05:48:49
1  3045595309       Toyota Yaris 69 VVT-I DYNAMIC 5P       8200        2015      110000  essence  toyota  yaris        pro    2025-08-25 15:40:00
2  3122430376  TOYOTA YARIS 1.3 VVT-i 69 CH TENDANCE       6990        2015      134360  essence  toyota  yaris        pro    2026-01-04 17:35:29
3  3151345668                           Toyota Yaris       2500        2016      150000   diesel  toyota  yaris    private    2026-02-25 20:06:54
4  3152706239                           Toyota yaris       7700        2017      119800   diesel  toyota  yaris    private    2026-02-28 12:41:35

❓ Valeurs manquantes par colonne clé :
   list_id                        :    0 manquantes (0.0%)
   subject                        :    0 manquantes (0.0%)
   price_eur                      :    0 manquantes (0.0%)
   year_model                     :    0 manquantes (0.0%)
   mileage_km                     :    0 manquantes (0.0%)
   fuel                           :    0 manquantes (0.0%)
   brand                          :    0 manquantes (0.0%)
   model                          :    0 manquantes (0.0%)
   owner_type                     :    0 manquantes (0.0%)
   first_publication_date         :    0 manquantes (0.0%)

📅 Période couverte :
   Première publication : 2025-06-13 15:11:00
   Dernière publication : 2026-03-14 15:25:03
   Durée : 274 jours

👤 Répartition par type de vendeur :
   pro             :   48 (55.8%)
   private         :   38 (44.2%)

⛽ Répartition par carburant :
   essence              :   73 (84.9%)
   diesel               :   13 (15.1%)

🏭 Top 10 marques :
   toyota               :   86 (100.0%)

🧮 Création des colonnes calculées...
   ✅ Colonnes ajoutées : age_years, km_per_year, price_per_km

🧹 Nettoyage des données...

   📊 Rapport de nettoyage :
      prix_aberrants            :    0 lignes supprimées
      km_aberrants              :    0 lignes supprimées
      annee_aberrante           :    0 lignes supprimées
      age_negatif               :    0 lignes supprimées
      ─────────────────────────────────────────────
      Total supprimé          :    0
      Restantes               :   86 / 86
      Pourcentage conservé    : 100.0%

🔍 Détection des outliers (méthode IQR)...
   price_eur            :    1 outliers (1.2%)
      Bornes IQR : [5,240 ; 11,240]
   mileage_km           :    1 outliers (1.2%)
      Bornes IQR : [22,472 ; 216,957]
   age_years            :    9 outliers (10.5%)
      Bornes IQR : [8 ; 12]

   📌 Total d'annonces outliers (au moins 1 variable) : 10 (11.6%)
   ⚠️  Les outliers sont identifiés mais NON supprimés.

======================================================================
📊 RÉSUMÉ APRÈS NETTOYAGE
======================================================================
   Nombre d'annonces restantes : 86
   Dont outliers identifiés    : 10
   Annonces non-outliers       : 76

   Plages de valeurs :
      price_eur            : [     2,500 ;      9,000]  (moy:      8,012)
      mileage_km           : [    15,333 ;    200,000]  (moy:    118,594)
      year_model           : [     2,015 ;      2,023]  (moy:      2,017)
      age_years            : [         3 ;         11]  (moy:          9)
      km_per_year          : [     5,111 ;     25,000]  (moy:     12,767)

   💾 86 annonces enrichies persistées dans SQLite

🔎 Détection des annonces suspectes...
   ✅ Aucune annonce suspecte détectée

======================================================================
📊 STATISTIQUES DESCRIPTIVES GLOBALES
======================================================================

📊 Tableau récapitulatif (valeurs brutes) :
   Variable  Count          Mean        Median          Std     Min           Q1       Q3      Max          IQR
  price_eur     86   8011.697674   8200.000000  1134.714974  2500.0  7490.000000   8990.0   9000.0  1500.000000
 mileage_km     86 118594.360465 115320.000000 35011.134352 15333.0 95403.750000 144025.0 200000.0 48621.250000
 year_model     86   2016.616279   2016.000000     1.381973  2015.0  2016.000000   2017.0   2023.0     1.000000
  age_years     86      9.383721     10.000000     1.381973     3.0     9.000000     10.0     11.0     1.000000
km_per_year     86  12766.894917  12738.636364  4076.071929  5111.0  9770.464286  14470.0  25000.0  4699.535714

📊 Tableau formaté :
   Variable Count     Mean   Median       Std     Min      Q1       Q3      Max     IQR
  price_eur    86    8,012    8,200  1,134.71   2,500   7,490    8,990    9,000   1,500
 mileage_km    86  118,594  115,320 35,011.13  15,333  95,404  144,025  200,000  48,621
 year_model    86    2,017    2,016      1.38   2,015   2,016    2,017    2,023       1
  age_years    86      9.4     10.0      1.38     3.0     9.0     10.0     11.0     1.0
km_per_year    86 12,766.9 12,738.6  4,076.07 5,111.0 9,770.5 14,470.0 25,000.0 4,699.5

📝 INTERPRÉTATION DES STATISTIQUES :
--------------------------------------------------

   📌 price_eur :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Faible dispersion (CV = 14%, σ = 1,135)
      → Étendue : [2,500 ; 9,000] (IQR = 1,500)

   📌 mileage_km :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Dispersion MODÉRÉE (CV = 30%, σ = 35,011)
      → Étendue : [15,333 ; 200,000] (IQR = 48,621)

   📌 year_model :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Faible dispersion (CV = 0%, σ = 1)
      → Étendue : [2,015 ; 2,023] (IQR = 1)

   📌 age_years :
      → Distribution asymétrique GAUCHE (moyenne 9 < médiane 10)
        Quelques valeurs basses tirent la moyenne vers le bas.
      → Faible dispersion (CV = 15%, σ = 1)
      → Étendue : [3 ; 11] (IQR = 1)

   📌 km_per_year :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Dispersion MODÉRÉE (CV = 32%, σ = 4,076)
      → Étendue : [5,111 ; 25,000] (IQR = 4,700)

======================================================================
📊 DISTRIBUTIONS PAR CATÉGORIES
======================================================================

📊 Prix moyen par année modèle...

   📋 Table : Prix par année modèle
   ---------------------------------------------------------------------------
    Année    Nb   Prix moy   Prix méd   Décote %
   ---------------------------------------------------------------------------
     2015    16      7,880      7,980        N/A
     2016    33      7,731      7,990      +1.9%
     2017    18      8,408      8,700      -8.8%
     2018    10      8,284      8,990      +1.5%
     2019     8      8,545      8,895      -3.2%

   📌 Décote annuelle moyenne : -2.1%

📊 Prix moyen par tranche de kilométrage...

   📋 Table : Prix par tranche de km
   ----------------------------------------------------------------------
        Tranche    Nb   Prix moy   Prix méd      Var %
   ----------------------------------------------------------------------
          0-20k     1      5,250      5,250        N/A
         50-80k    10      8,763      8,990     +66.9%
        80-120k    34      8,331      8,650      -4.9%
       120-160k    31      7,772      7,990      -6.7%
       160-200k     9      7,269      6,990      -6.5%
          200k+     1      6,500      6,500     -10.6%

📊 Prix moyen par âge...

   📋 Table : Prix par âge
   -----------------------------------------------------------------
     Âge    Nb   Prix moy   Décote %
   -----------------------------------------------------------------
       7     8      8,545        N/A
       8    10      8,284      -3.1%
       9    18      8,408      +1.5%
      10    33      7,731      -8.0%
      11    16      7,880      +1.9%

   📌 La décote ralentit significativement à 11 ans

📊 Prix par type de carburant...

   📋 Table : Prix par carburant
   ----------------------------------------------------------------------
         Carburant    Nb   Prix moy   Prix méd
   ----------------------------------------------------------------------
            diesel    13      7,536      8,000
           essence    73      8,096      8,490

   📌 Carburant avec prix médian le plus élevé : essence (8,490€)
   📌 Carburant avec prix médian le plus bas : diesel (8,000€)

📊 Prix par type de vendeur...

   📋 Table : Prix par type de vendeur
   ------------------------------------------------------------
         Type    Nb   Prix moy   Prix méd
   ------------------------------------------------------------
      private    38      7,820      8,000
          pro    48      8,163      8,490

   📌 Test Mann-Whitney (médiane) : p = 0.4727
   ❌ Différence NON significative (p >= 0.05)
   📌 Écart médian Pro - Particulier : +490€

📊 Prix par modèle de véhicule...
   ℹ️ Un seul modèle détecté (yaris) — comparaison non applicable

   ✅ Toutes les distributions par catégorie sauvegardées dans /home/ubuntu/app/stats/yaris/figures

======================================================================
📊 ANALYSES AVANCÉES - SEUILS PSYCHOLOGIQUES
======================================================================

📊 Analyse des seuils de kilométrage...

   📋 Taux de décote par tranche de 10k km :
   --------------------------------------------------
        60k : décote    0.6% (n=  6)
        70k : décote   -3.4% (n=  2)
        80k : décote    7.2% (n=  4)
        90k : décote   -3.1% (n= 11)
       100k : décote    4.6% (n=  9)
       110k : décote    0.7% (n= 10)
       120k : décote   -3.2% (n=  7)
       130k : décote    6.8% (n=  7)
       140k : décote    2.1% (n= 12)
       150k : décote    8.2% (n=  5)
       160k : décote    4.1% (n=  2)
       170k : décote  -15.5% (n=  5)
       180k : décote   17.0% (n=  2) ⚡

   📌 Seuils où la décote s'accélère (> 8%) :
      → 150k km : 8.2%
      → 180k km : 17.0%
   ✅ Sauvegardé : /home/ubuntu/app/stats/yaris/figures/seuils_km.png

📊 Analyse des seuils d'âge...

   📋 Taux de décote par année d'âge :
   ---------------------------------------------
     8 ans : décote    3.1% (n= 10)
     9 ans : décote   -1.5% (n= 18) 🐢 LENTE
    10 ans : décote    8.0% (n= 33)
    11 ans : décote   -1.9% (n= 16) 🐢 LENTE

   📌 Décote lente (< 5% par an) :
      → 8 ans : 3.1%
      → 9 ans : -1.5%
      → 11 ans : -1.9%
   ✅ Sauvegardé : /home/ubuntu/app/stats/yaris/figures/seuils_age.png

======================================================================
📊 IDENTIFICATION DES BONNES AFFAIRES
======================================================================

📊 Construction du modèle de prix attendu...
   📌 Modèle : prix = 11.95 × âge + -0.0106 × km + 9,161
   📌 R² = 0.106
📊 Calcul des écarts de prix...

   📋 Classification des annonces :
      🌟 Excellente affaire        :    4 (  4.7%)
      👍 Bonne affaire             :   11 ( 12.8%)
      📊 Prix marché               :   55 ( 64.0%)
      💰 Cher                      :   14 ( 16.3%)
      🔴 Très cher                 :    2 (  2.3%)
📊 Graphique : Distribution des écarts de prix...
   ✅ Sauvegardé : /home/ubuntu/app/stats/yaris/figures/ecarts_prix.png

   🌟 TOP 10 MEILLEURES AFFAIRES (écart le plus négatif) :
   ====================================================================================================
    1. [3151345668] Toyota Yaris
       Prix:    2,500€ | Attendu:    7,685€ | Écart:  -67.5% | Année: 2016 | Km: 150,000
    2. [3152322073] Toyota Yaris 1.0 VVTI PRO EXPORT (0101261)
       Prix:    5,250€ | Attendu:    9,034€ | Écart:  -41.9% | Année: 2023 | Km: 15,333
    3. [3157660912] Toyota Yaris
       Prix:    5,500€ | Attendu:    8,097€ | Écart:  -32.1% | Année: 2018 | Km: 109,000
    4. [3161632025] Toyota Yaris III - 5P - 2016
       Prix:    5,500€ | Attendu:    7,579€ | Écart:  -27.4% | Année: 2016 | Km: 160,000
    5. [3159781517] Toyota Yaris-III Phase-2 1.3VTTi 16V 99Cv 1ère Mai
       Prix:    5,950€ | Attendu:    7,354€ | Écart:  -19.1% | Année: 2016 | Km: 181,093
    6. [3096659493] Toyota Yaris 3
       Prix:    6,300€ | Attendu:    7,740€ | Écart:  -18.6% | Année: 2015 | Km: 146,000
    7. [3156006972] Toyota yaris
       Prix:    7,000€ | Attendu:    8,376€ | Écart:  -16.4% | Année: 2016 | Km: 85,000
    8. [3152415215] Toyota Yaris 3
       Prix:    6,500€ | Attendu:    7,740€ | Écart:  -16.0% | Année: 2015 | Km: 146,000
    9. [3141203799] Renault Twingo 1.0 SCe 70ch Stop&Start limited eco
       Prix:    7,490€ | Attendu:    8,610€ | Écart:  -13.0% | Année: 2016 | Km: 63,000
   10. [3141411534] TOYOTA YARIS 3 phase 2
       Prix:    6,600€ | Attendu:    7,434€ | Écart:  -11.2% | Année: 2016 | Km: 173,600

   🔴 TOP 10 ANNONCES SURÉVALUÉES (écart le plus positif) :
   ====================================================================================================
    1. [3151218398] TOYOTA Yaris 3 Phase 2 / 1.3 VVTi 16V 100 cv *Fini
       Prix:    8,990€ | Attendu:    7,408€ | Écart:  +21.3% | Année: 2016 | Km: 176,000
    2. [3157352360] Toyota Yaris III 1.5 VVT-i 110 ch – Design Y20-201
       Prix:    8,900€ | Attendu:    7,383€ | Écart:  +20.5% | Année: 2019 | Km: 175,000
    3. [3153117476] Toyota Yaris 70 VVT-i France 5p MY19
       Prix:    8,990€ | Attendu:    7,625€ | Écart:  +17.9% | Année: 2018 | Km: 153,356
    4. [3006906577] Toyota Yaris III 69 VVT-i France
       Prix:    8,990€ | Attendu:    7,783€ | Écart:  +15.5% | Année: 2016 | Km: 140,770
    5. [3135900987] TOYOTA YARIS RC18 110 VVT-i COLLECTION
       Prix:    8,990€ | Attendu:    7,821€ | Écart:  +15.0% | Année: 2018 | Km: 135,000
    6. [3146935741] Toyota Yaris 1.4 D-4D 90 Business
       Prix:    8,990€ | Attendu:    7,895€ | Écart:  +13.9% | Année: 2017 | Km: 129,178
    7. [3151923222] Toyota Yaris 110 VVT-i Design Y20 5p RC19
       Prix:    8,990€ | Attendu:    7,896€ | Écart:  +13.9% | Année: 2019 | Km: 126,787
    8. [3154060767] Toyota yaris
       Prix:    9,000€ | Attendu:    7,927€ | Écart:  +13.5% | Année: 2017 | Km: 126,126
    9. [3154999177] Toyota Yaris 1.4 l D4D
       Prix:    8,900€ | Attendu:    7,874€ | Écart:  +13.0% | Année: 2016 | Km: 132,200
   10. [3159149873] Toyota YARIS 69 VVT-I FRANCE 5P
       Prix:    8,990€ | Attendu:    8,017€ | Écart:  +12.1% | Année: 2017 | Km: 117,640

======================================================================
📊 TABLEAU DE BORD RÉCAPITULATIF
======================================================================

   ┌──────────────────────────────────────────────────┐
   │ Nombre total d'annonces      │                 86 │
   │ Prix moyen                   │            8,012 € │
   │ Prix médian                  │            8,200 € │
   │ Km moyen                     │         118,594 km │
   │ Km médian                    │         115,320 km │
   │ Âge moyen                    │            9.4 ans │
   │ Âge médian                   │           10.0 ans │
   │ Km/an moyen                  │       12,767 km/an │
   └──────────────────────────────────────────────────┘

   ✅ Sauvegardé : /home/ubuntu/app/stats/yaris/figures/dashboard_kpis.png

======================================================================
💡 INSIGHTS PRINCIPAUX
======================================================================

   🎯 Âge optimal d'achat : ~11 ans (meilleur rapport prix/ancienneté)
   ⚡ Seuil km critique : la décote s'accélère le plus autour de (40000, 60000]
   ⛽ Carburant tenant le mieux sa valeur : essence (prix/âge le plus élevé)
   👔 Les pros vendent 6.1% plus cher que les particuliers (médiane)
   🔄 Km/an médian : 12,739 km → Profil dominant : 10-15k (Normal)
   🏭 Top 3 marques = 100% du marché : toyota (86)

======================================================================
💡 RECOMMANDATIONS
======================================================================

   🛒 POUR UN ACHETEUR :
   --------------------------------------------------
   • Sweet spot : véhicules de 5-8 ans, 60-120k km
     Prix moyen dans cette fourchette : 8,585€
     (10 annonces disponibles)
   • Prix médian du marché : 8,200€ → cible < 7,380€ pour une bonne affaire
   • Privilégier les annonces de particuliers si budget serré
   • Vérifier le km/an : < 15 000 km/an = usage normal

   💰 POUR UN VENDEUR :
   --------------------------------------------------
   • Prix médian du marché : 8,200€
   • Positionner légèrement sous le marché pour vendre vite (-5% à -10%)
   • Les véhicules < 115,320 km se vendent mieux
   • Mettre en avant un faible km/an si applicable

   🎯 SEGMENTS DE MARCHÉ :
   --------------------------------------------------
   • Budget (25 annonces) :
     Prix : 2,500€ - 7,490€
     Âge moyen : 9.6 ans | Km moyen : 133,271
   • Milieu de gamme (55 annonces) :
     Prix : 7,500€ - 8,990€
     Âge moyen : 9.3 ans | Km moyen : 113,872
   • Premium (6 annonces) :
     Prix : 8,999€ - 9,000€
     Âge moyen : 9.0 ans | Km moyen : 100,730

======================================================================
💾 EXPORT DES RÉSULTATS EN BASE SQLite
======================================================================
   📌 Run #24 créé
   🔍 Modèle : yaris
   📎 86 annonces liées au run
   ✅ Stats descriptives : 5 variables
   ✅ Modèle régression : 2 coefficients (R²=0.106)
   ✅ Référentiel prix : 20 segments
   ✅ Classifications deal : 86 annonces

   💾 Tout exporté dans /home/ubuntu/app/db/lbc.sqlite

══════════════════════════════════════════════════════════════════════
  ✅ ANALYSE TERMINÉE en 3.8 secondes
  📊 86 annonces analysées  (run #24)
  🔍 Modèle           : yaris
  💾 Base SQLite      : /home/ubuntu/app/db/lbc.sqlite
  📁 Figures          : /home/ubuntu/app/stats/yaris/figures
══════════════════════════════════════════════════════════════════════
Récupération de la page 1/4 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=i20&price=3000-9000&regdate=2016-max&gearbox=1&seats=5%2C4&u_car_brand=HYUNDAI&u_car_model=HYUNDAI_i20&order=asc&page=1
  → 35 annonces récupérées (total en mémoire: 35)
Export de 35 annonces vers /home/ubuntu/app/leboncoin_ads_i20_20260315_143812.csv réussi.
Récupération de la page 2/4 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=i20&price=3000-9000&regdate=2016-max&gearbox=1&seats=5%2C4&u_car_brand=HYUNDAI&u_car_model=HYUNDAI_i20&order=asc&page=2
  → 35 annonces récupérées (total en mémoire: 70)
Export de 70 annonces vers /home/ubuntu/app/leboncoin_ads_i20_20260315_143812.csv réussi.
Récupération de la page 3/4 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=i20&price=3000-9000&regdate=2016-max&gearbox=1&seats=5%2C4&u_car_brand=HYUNDAI&u_car_model=HYUNDAI_i20&order=asc&page=3
  → 35 annonces récupérées (total en mémoire: 105)
Export de 105 annonces vers /home/ubuntu/app/leboncoin_ads_i20_20260315_143812.csv réussi.
Récupération de la page 4/4 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=i20&price=3000-9000&regdate=2016-max&gearbox=1&seats=5%2C4&u_car_brand=HYUNDAI&u_car_model=HYUNDAI_i20&order=asc&page=4
  → 15 annonces récupérées (total en mémoire: 120)
Export de 120 annonces vers /home/ubuntu/app/leboncoin_ads_i20_20260315_143812.csv réussi.

Terminé : 120 annonces au total dans /home/ubuntu/app/leboncoin_ads_i20_20260315_143812.csv
INFO: Model fallback : i20
INFO: Schéma initialisé dans /home/ubuntu/app/db/lbc.sqlite
════════════════════════════════════════════════════════════
  📦 MIGRATION CSV → SQLite unifié
════════════════════════════════════════════════════════════

📂 leboncoin_ads_i20_20260315_143812.csv
   ✅ 120 lus, 120 insérés, 0 ignorés, 0 erreurs

────────────────────────────────────────────────────────────
  📊 TOTAL : 120 lus, 120 insérés
  💾 Base : /home/ubuntu/app/db/lbc.sqlite
  📌 5083 annonces en base
════════════════════════════════════════════════════════════
INFO: 120 list_id lus dans le CSV.
INFO: 145 annonces actives en base pour hyundai i20.
INFO: 25 annonce(s) marquées indisponibles.
════════════════════════════════════════════════════════════
  CHECK DISPONIBILITÉ
  CSV   : leboncoin_ads_i20_20260315_143812.csv
  Brand : hyundai  |  Modèle : i20
════════════════════════════════════════════════════════════

  Annonces dans le CSV    : 120
  Annonces actives en DB  : 145
  Absentes du crawl       : 25
  Marquées indisponibles  : 25
════════════════════════════════════════════════════════════

  Vérification :
  SELECT list_id, available, unavailable_detected_at FROM ads WHERE available = 0;
══════════════════════════════════════════════════════════════════════
  🚗 ANALYSEUR LEBONCOIN - Analyses Descriptives Véhicules
══════════════════════════════════════════════════════════════════════
  💾 Base SQLite       : /home/ubuntu/app/db/lbc.sqlite
  📁 Dossier figures  : /home/ubuntu/app/stats/i20/figures
  🔍 Modèle filtré    : i20
  📊 Graphiques       : Non
══════════════════════════════════════════════════════════════════════
📂 Chargement depuis SQLite : /home/ubuntu/app/db/lbc.sqlite
   ✅ 193 annonces chargées (modèle 'i20')

======================================================================
📊 EXPLORATION DES DONNÉES BRUTES
======================================================================

📌 Nombre total d'annonces : 193

📋 Premières lignes (colonnes parsées) :
      list_id                                     subject  price_eur  year_model  mileage_km     fuel    brand model owner_type first_publication_date
0  3068840554                      HYUNDAI i20 1.2 Initia       8990        2020       91000  essence  hyundai   i20        pro    2025-10-04 11:09:00
1  3150341430                   Hyundai i20 1.2 75 Initia       8990        2019       93859  essence  hyundai   i20        pro    2026-02-24 00:06:00
2  3142118035            Hyundai i20 1.6 CRDI - 16V TURBO       7990        2016      129000   diesel  hyundai   i20        pro    2026-02-09 11:27:08
3  3144114421       Hyundai I20 1.0 T-GDI 100CH INTUITIVE       8990        2019      138310  essence  hyundai   i20        pro    2026-02-13 02:48:08
4  3143181277  GARANTIE 12 MOIS / Crit'air 1 / HYUNAI I20       8990        2015       59700  essence  hyundai   i20        pro    2026-02-11 10:52:53

❓ Valeurs manquantes par colonne clé :
   list_id                        :    0 manquantes (0.0%)
   subject                        :    0 manquantes (0.0%)
   price_eur                      :    0 manquantes (0.0%)
   year_model                     :    0 manquantes (0.0%)
   mileage_km                     :    0 manquantes (0.0%)
   fuel                           :    0 manquantes (0.0%)
   brand                          :    0 manquantes (0.0%)
   model                          :    0 manquantes (0.0%)
   owner_type                     :    0 manquantes (0.0%)
   first_publication_date         :    0 manquantes (0.0%)

📅 Période couverte :
   Première publication : 2025-04-14 15:12:00
   Dernière publication : 2026-03-15 10:37:25
   Durée : 334 jours

👤 Répartition par type de vendeur :
   private         :  106 (54.9%)
   pro             :   87 (45.1%)

⛽ Répartition par carburant :
   essence              :  154 (79.8%)
   diesel               :   38 (19.7%)
   autre                :    1 (0.5%)

🏭 Top 10 marques :
   hyundai              :  193 (100.0%)

🧮 Création des colonnes calculées...
   ✅ Colonnes ajoutées : age_years, km_per_year, price_per_km

🧹 Nettoyage des données...

   📊 Rapport de nettoyage :
      prix_aberrants            :    0 lignes supprimées
      km_aberrants              :    0 lignes supprimées
      annee_aberrante           :    0 lignes supprimées
      age_negatif               :    0 lignes supprimées
      ─────────────────────────────────────────────
      Total supprimé          :    0
      Restantes               :  193 / 193
      Pourcentage conservé    : 100.0%

🔍 Détection des outliers (méthode IQR)...
   price_eur            :    2 outliers (1.0%)
      Bornes IQR : [4,750 ; 10,750]
   mileage_km           :    4 outliers (2.1%)
      Bornes IQR : [27,700 ; 220,500]
   age_years            :   18 outliers (9.3%)
      Bornes IQR : [8 ; 12]

   📌 Total d'annonces outliers (au moins 1 variable) : 24 (12.4%)
   ⚠️  Les outliers sont identifiés mais NON supprimés.

======================================================================
📊 RÉSUMÉ APRÈS NETTOYAGE
======================================================================
   Nombre d'annonces restantes : 193
   Dont outliers identifiés    : 24
   Annonces non-outliers       : 169

   Plages de valeurs :
      price_eur            : [     3,800 ;      9,000]  (moy:      7,735)
      mileage_km           : [        95 ;    230,567]  (moy:    123,367)
      year_model           : [     2,015 ;      2,020]  (moy:      2,017)
      age_years            : [         6 ;         11]  (moy:          9)
      km_per_year          : [        12 ;     24,308]  (moy:     13,472)

   💾 193 annonces enrichies persistées dans SQLite

🔎 Détection des annonces suspectes...
   ⚠️  3 signaux de suspicion détectés
      km_trop_bas_essence: 1
      km_trop_bas_diesel: 2
   💾 3 signaux persistés dans SQLite

======================================================================
📊 STATISTIQUES DESCRIPTIVES GLOBALES
======================================================================

📊 Tableau récapitulatif (valeurs brutes) :
   Variable  Count          Mean   Median          Std      Min       Q1       Q3           Max     IQR
  price_eur    193   7734.528497   7990.0  1106.398479 3800.000   7000.0   8500.0   9000.000000  1500.0
 mileage_km    193 123367.430052 124500.0 36358.187225   95.000 100000.0 148200.0 230567.000000 48200.0
 year_model    193   2016.683938   2016.0     1.207011 2015.000   2016.0   2017.0   2020.000000     1.0
  age_years    193      9.316062     10.0     1.207011    6.000      9.0     10.0     11.000000     1.0
km_per_year    193  13471.958867  13284.2  4275.708353   11.875  10505.9  16400.0  24308.166667  5894.1

📊 Tableau formaté :
   Variable Count     Mean   Median       Std   Min       Q1       Q3      Max     IQR
  price_eur   193    7,735    7,990  1,106.40 3,800    7,000    8,500    9,000   1,500
 mileage_km   193  123,367  124,500 36,358.19    95  100,000  148,200  230,567  48,200
 year_model   193    2,017    2,016      1.21 2,015    2,016    2,017    2,020       1
  age_years   193      9.3     10.0      1.21   6.0      9.0     10.0     11.0     1.0
km_per_year   193 13,472.0 13,284.2  4,275.71  11.9 10,505.9 16,400.0 24,308.2 5,894.1

📝 INTERPRÉTATION DES STATISTIQUES :
--------------------------------------------------

   📌 price_eur :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Faible dispersion (CV = 14%, σ = 1,106)
      → Étendue : [3,800 ; 9,000] (IQR = 1,500)

   📌 mileage_km :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Dispersion MODÉRÉE (CV = 29%, σ = 36,358)
      → Étendue : [95 ; 230,567] (IQR = 48,200)

   📌 year_model :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Faible dispersion (CV = 0%, σ = 1)
      → Étendue : [2,015 ; 2,020] (IQR = 1)

   📌 age_years :
      → Distribution asymétrique GAUCHE (moyenne 9 < médiane 10)
        Quelques valeurs basses tirent la moyenne vers le bas.
      → Faible dispersion (CV = 13%, σ = 1)
      → Étendue : [6 ; 11] (IQR = 1)

   📌 km_per_year :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Dispersion MODÉRÉE (CV = 32%, σ = 4,276)
      → Étendue : [12 ; 24,308] (IQR = 5,894)

======================================================================
📊 DISTRIBUTIONS PAR CATÉGORIES
======================================================================

📊 Prix moyen par année modèle...

   📋 Table : Prix par année modèle
   ---------------------------------------------------------------------------
    Année    Nb   Prix moy   Prix méd   Décote %
   ---------------------------------------------------------------------------
     2015    25      7,574      7,800        N/A
     2016    77      7,595      7,900      -0.3%
     2017    48      7,607      7,700      -0.2%
     2018    25      8,038      8,480      -5.7%
     2019    13      8,395      8,490      -4.4%
     2020     5      8,684      8,980      -3.4%

   📌 Décote annuelle moyenne : -2.8%

📊 Prix moyen par tranche de kilométrage...

   📋 Table : Prix par tranche de km
   ----------------------------------------------------------------------
        Tranche    Nb   Prix moy   Prix méd      Var %
   ----------------------------------------------------------------------
          0-20k     2      7,250      7,250        N/A
         20-50k     2      8,490      8,490     +17.1%
         50-80k    19      8,474      8,500      -0.2%
        80-120k    66      8,170      8,490      -3.6%
       120-160k    71      7,715      7,900      -5.6%
       160-200k    30      6,498      5,995     -15.8%
          200k+     3      6,130      5,900      -5.7%

📊 Prix moyen par âge...

   📋 Table : Prix par âge
   -----------------------------------------------------------------
     Âge    Nb   Prix moy   Décote %
   -----------------------------------------------------------------
       6     5      8,684        N/A
       7    13      8,395      -3.3%
       8    25      8,038      -4.2%
       9    48      7,607      -5.4%
      10    77      7,595      -0.2%
      11    25      7,574      -0.3%

   📌 La décote ralentit significativement à 10 ans

📊 Prix par type de carburant...

   📋 Table : Prix par carburant
   ----------------------------------------------------------------------
         Carburant    Nb   Prix moy   Prix méd
   ----------------------------------------------------------------------
            diesel    38      7,183      7,295
           essence   154      7,866      7,994

   📌 Carburant avec prix médian le plus élevé : essence (7,994€)
   📌 Carburant avec prix médian le plus bas : diesel (7,295€)

📊 Prix par type de vendeur...

   📋 Table : Prix par type de vendeur
   ------------------------------------------------------------
         Type    Nb   Prix moy   Prix méd
   ------------------------------------------------------------
      private   106      7,607      7,875
          pro    87      7,889      7,990

   📌 Test Mann-Whitney (médiane) : p = 0.2045
   ❌ Différence NON significative (p >= 0.05)
   📌 Écart médian Pro - Particulier : +115€

📊 Prix par modèle de véhicule...
   ℹ️ Un seul modèle détecté (i20) — comparaison non applicable

   ✅ Toutes les distributions par catégorie sauvegardées dans /home/ubuntu/app/stats/i20/figures

======================================================================
📊 ANALYSES AVANCÉES - SEUILS PSYCHOLOGIQUES
======================================================================

📊 Analyse des seuils de kilométrage...

   📋 Taux de décote par tranche de 10k km :
   --------------------------------------------------
        40k : décote  -17.1% (n=  2)
        50k : décote   -2.9% (n=  2)
        60k : décote    7.6% (n=  6)
        70k : décote   -7.0% (n= 11)
        80k : décote    2.9% (n=  7)
        90k : décote   -0.0% (n= 18)
       100k : décote    3.8% (n= 26)
       110k : décote    1.6% (n= 15)
       120k : décote    5.9% (n= 20)
       130k : décote   -3.4% (n= 22)
       140k : décote   -2.3% (n= 18)
       150k : décote    1.5% (n= 11)
       160k : décote    4.0% (n= 12)
       170k : décote   24.0% (n= 12) ⚡
       180k : décote   -9.1% (n=  5)

   📌 Seuils où la décote s'accélère (> 8%) :
      → 170k km : 24.0%
   ✅ Sauvegardé : /home/ubuntu/app/stats/i20/figures/seuils_km.png

📊 Analyse des seuils d'âge...

   📋 Taux de décote par année d'âge :
   ---------------------------------------------
     7 ans : décote    3.3% (n= 13)
     8 ans : décote    4.2% (n= 25)
     9 ans : décote    5.4% (n= 48)
    10 ans : décote    0.2% (n= 77) 🐢 LENTE
    11 ans : décote    0.3% (n= 25) 🐢 LENTE

   📌 Décote lente (< 5% par an) :
      → 7 ans : 3.3%
      → 8 ans : 4.2%
      → 10 ans : 0.2%
      → 11 ans : 0.3%
   ✅ Sauvegardé : /home/ubuntu/app/stats/i20/figures/seuils_age.png

======================================================================
📊 IDENTIFICATION DES BONNES AFFAIRES
======================================================================

📊 Construction du modèle de prix attendu...
   📌 Modèle : prix = -198.53 × âge + -0.0148 × km + 11,404
   📌 R² = 0.286
📊 Calcul des écarts de prix...

   📋 Classification des annonces :
      🌟 Excellente affaire        :   13 (  6.7%)
      👍 Bonne affaire             :   22 ( 11.4%)
      📊 Prix marché               :  120 ( 62.2%)
      💰 Cher                      :   35 ( 18.1%)
      🔴 Très cher                 :    3 (  1.6%)
📊 Graphique : Distribution des écarts de prix...
   ✅ Sauvegardé : /home/ubuntu/app/stats/i20/figures/ecarts_prix.png

   🌟 TOP 10 MEILLEURES AFFAIRES (écart le plus négatif) :
   ====================================================================================================
    1. [3150513139] Hyundai i20 essence
       Prix:    3,800€ | Attendu:    7,656€ | Écart:  -50.4% | Année: 2015 | Km: 106,000
    2. [3160167161] Hyundai i20 2017
       Prix:    4,000€ | Attendu:    7,831€ | Écart:  -48.9% | Année: 2017 | Km: 121,054
    3. [3132112485] Vend ou échange
       Prix:    5,500€ | Attendu:    9,216€ | Écart:  -40.3% | Année: 2015 | Km: 296
    4. [3146778483] HYUNDAI i20 II 5 Portes Phase 2 1.2 i 16V 84 cv
       Prix:    4,990€ | Attendu:    7,308€ | Écart:  -31.7% | Année: 2018 | Km: 170,000
    5. [3141044598] Hyundai i20
       Prix:    5,600€ | Attendu:    7,919€ | Écart:  -29.3% | Année: 2016 | Km: 101,653
    6. [3154012812] Hyundai
       Prix:    5,100€ | Attendu:    6,911€ | Écart:  -26.2% | Année: 2016 | Km: 170,000
    7. [3159144757] Hyundai i20 1.2 essence 2016 – CT OK – pneus neufs
       Prix:    5,400€ | Attendu:    7,079€ | Écart:  -23.7% | Année: 2016 | Km: 158,600
    8. [3139554030] Hyundai i20 coupe 1.2 84 cv intuitive 3 portes
       Prix:    5,500€ | Attendu:    7,205€ | Écart:  -23.7% | Année: 2018 | Km: 177,000
    9. [3144748405] Hyundai i20 1.2 Go Klima RadioCD
       Prix:    5,385€ | Attendu:    7,023€ | Écart:  -23.3% | Année: 2017 | Km: 175,866
   10. [3159939727] Hyundai i20
       Prix:    5,500€ | Attendu:    6,999€ | Écart:  -21.4% | Année: 2016 | Km: 164,000

   🔴 TOP 10 ANNONCES SURÉVALUÉES (écart le plus positif) :
   ====================================================================================================
    1. [3105795045] HYUNDAI I20 Coupé 1.0 TGDi 120 CV 03/2016 1 ERE MA
       Prix:    8,990€ | Attendu:    6,985€ | Écart:  +28.7% | Année: 2016 | Km: 165,000
    2. [3158481657] Hyundai i20
       Prix:    8,900€ | Attendu:    7,286€ | Écart:  +22.2% | Année: 2016 | Km: 144,600
    3. [3109227704] Hyundai i20 crdi 75ch edition navy
       Prix:    8,900€ | Attendu:    7,373€ | Écart:  +20.7% | Année: 2017 | Km: 152,154
    4. [3151384014] Hyundai i20
       Prix:    8,500€ | Attendu:    7,111€ | Écart:  +19.5% | Année: 2015 | Km: 143,000
    5. [3152500439] Hyundai i20 1.0 T-GDi 100 UEFA EURO 2016
       Prix:    8,489€ | Attendu:    7,112€ | Écart:  +19.4% | Année: 2016 | Km: 156,400
    6. [2972084163] HYUNDAI I20 1.2i - 84 BERLINE Initia
       Prix:    8,990€ | Attendu:    7,612€ | Écart:  +18.1% | Année: 2015 | Km: 109,000
    7. [3140396976] HYUNDAI i20 1.1 CRDi 75 Intuitive
       Prix:    8,900€ | Attendu:    7,634€ | Écart:  +16.6% | Année: 2016 | Km: 121,000
    8. [3155001248] Vente voiture hyundai i20
       Prix:    8,500€ | Attendu:    7,337€ | Écart:  +15.8% | Année: 2018 | Km: 168,000
    9. [3114355690] Hyundai i20 - 1.4 CRDi 90cv - Pack Euro
       Prix:    7,000€ | Attendu:    6,055€ | Écart:  +15.6% | Année: 2016 | Km: 228,000
   10. [3127100076] Hyndai i20 2016 100cv
       Prix:    8,900€ | Attendu:    7,707€ | Écart:  +15.5% | Année: 2016 | Km: 116,000

======================================================================
📊 TABLEAU DE BORD RÉCAPITULATIF
======================================================================

   ┌──────────────────────────────────────────────────┐
   │ Nombre total d'annonces      │                193 │
   │ Prix moyen                   │            7,735 € │
   │ Prix médian                  │            7,990 € │
   │ Km moyen                     │         123,367 km │
   │ Km médian                    │         124,500 km │
   │ Âge moyen                    │            9.3 ans │
   │ Âge médian                   │           10.0 ans │
   │ Km/an moyen                  │       13,472 km/an │
   └──────────────────────────────────────────────────┘

   ✅ Sauvegardé : /home/ubuntu/app/stats/i20/figures/dashboard_kpis.png

======================================================================
💡 INSIGHTS PRINCIPAUX
======================================================================

   🎯 Âge optimal d'achat : ~11 ans (meilleur rapport prix/ancienneté)
   ⚡ Seuil km critique : la décote s'accélère le plus autour de (40000, 60000]
   ⛽ Carburant tenant le mieux sa valeur : essence (prix/âge le plus élevé)
   👔 Les pros vendent 1.5% plus cher que les particuliers (médiane)
   🔄 Km/an médian : 13,284 km → Profil dominant : 10-15k (Normal)
   🏭 Top 3 marques = 100% du marché : hyundai (193)

======================================================================
💡 RECOMMANDATIONS
======================================================================

   🛒 POUR UN ACHETEUR :
   --------------------------------------------------
   • Sweet spot : véhicules de 5-8 ans, 60-120k km
     Prix moyen dans cette fourchette : 8,477€
     (22 annonces disponibles)
   • Prix médian du marché : 7,990€ → cible < 7,191€ pour une bonne affaire
   • Privilégier les annonces de particuliers si budget serré
   • Vérifier le km/an : < 15 000 km/an = usage normal

   💰 POUR UN VENDEUR :
   --------------------------------------------------
   • Prix médian du marché : 7,990€
   • Positionner légèrement sous le marché pour vendre vite (-5% à -10%)
   • Les véhicules < 124,500 km se vendent mieux
   • Mettre en avant un faible km/an si applicable

   🎯 SEGMENTS DE MARCHÉ :
   --------------------------------------------------
   • Budget (51 annonces) :
     Prix : 3,800€ - 7,000€
     Âge moyen : 9.6 ans | Km moyen : 148,785
   • Milieu de gamme (96 annonces) :
     Prix : 7,200€ - 8,500€
     Âge moyen : 9.4 ans | Km moyen : 121,857
   • Premium (46 annonces) :
     Prix : 8,600€ - 9,000€
     Âge moyen : 8.8 ans | Km moyen : 98,339

======================================================================
💾 EXPORT DES RÉSULTATS EN BASE SQLite
======================================================================
   📌 Run #25 créé
   🔍 Modèle : i20
   📎 193 annonces liées au run
   ✅ Stats descriptives : 5 variables
   ✅ Modèle régression : 2 coefficients (R²=0.286)
   ✅ Référentiel prix : 25 segments
   ✅ Classifications deal : 193 annonces

   💾 Tout exporté dans /home/ubuntu/app/db/lbc.sqlite

══════════════════════════════════════════════════════════════════════
  ✅ ANALYSE TERMINÉE en 3.8 secondes
  📊 193 annonces analysées  (run #25)
  🔍 Modèle           : i20
  💾 Base SQLite      : /home/ubuntu/app/db/lbc.sqlite
  📁 Figures          : /home/ubuntu/app/stats/i20/figures
══════════════════════════════════════════════════════════════════════
Récupération de la page 1/10 avec l'URL: https://www.leboncoin.fr/recherche?category=5&text=berlingo+xl&u_utility_brand=CITROEN&u_utility_model=CITROEN_Berlingo&page=1
  → 35 annonces récupérées (total en mémoire: 35)
Export de 35 annonces vers /home/ubuntu/app/leboncoin_ads_berlingo_20260315_143828.csv réussi.
Récupération de la page 2/10 avec l'URL: https://www.leboncoin.fr/recherche?category=5&text=berlingo+xl&u_utility_brand=CITROEN&u_utility_model=CITROEN_Berlingo&page=2
  → 35 annonces récupérées (total en mémoire: 70)
Export de 70 annonces vers /home/ubuntu/app/leboncoin_ads_berlingo_20260315_143828.csv réussi.
Récupération de la page 3/10 avec l'URL: https://www.leboncoin.fr/recherche?category=5&text=berlingo+xl&u_utility_brand=CITROEN&u_utility_model=CITROEN_Berlingo&page=3
  → 35 annonces récupérées (total en mémoire: 105)
Export de 105 annonces vers /home/ubuntu/app/leboncoin_ads_berlingo_20260315_143828.csv réussi.
Récupération de la page 4/10 avec l'URL: https://www.leboncoin.fr/recherche?category=5&text=berlingo+xl&u_utility_brand=CITROEN&u_utility_model=CITROEN_Berlingo&page=4
  → 35 annonces récupérées (total en mémoire: 140)
Export de 140 annonces vers /home/ubuntu/app/leboncoin_ads_berlingo_20260315_143828.csv réussi.
Récupération de la page 5/10 avec l'URL: https://www.leboncoin.fr/recherche?category=5&text=berlingo+xl&u_utility_brand=CITROEN&u_utility_model=CITROEN_Berlingo&page=5
  → 35 annonces récupérées (total en mémoire: 175)
Export de 175 annonces vers /home/ubuntu/app/leboncoin_ads_berlingo_20260315_143828.csv réussi.
Récupération de la page 6/10 avec l'URL: https://www.leboncoin.fr/recherche?category=5&text=berlingo+xl&u_utility_brand=CITROEN&u_utility_model=CITROEN_Berlingo&page=6
  → 35 annonces récupérées (total en mémoire: 210)
Export de 210 annonces vers /home/ubuntu/app/leboncoin_ads_berlingo_20260315_143828.csv réussi.
Récupération de la page 7/10 avec l'URL: https://www.leboncoin.fr/recherche?category=5&text=berlingo+xl&u_utility_brand=CITROEN&u_utility_model=CITROEN_Berlingo&page=7
  → 35 annonces récupérées (total en mémoire: 245)
Export de 245 annonces vers /home/ubuntu/app/leboncoin_ads_berlingo_20260315_143828.csv réussi.
Récupération de la page 8/10 avec l'URL: https://www.leboncoin.fr/recherche?category=5&text=berlingo+xl&u_utility_brand=CITROEN&u_utility_model=CITROEN_Berlingo&page=8
  → 35 annonces récupérées (total en mémoire: 280)
Export de 280 annonces vers /home/ubuntu/app/leboncoin_ads_berlingo_20260315_143828.csv réussi.
Récupération de la page 9/10 avec l'URL: https://www.leboncoin.fr/recherche?category=5&text=berlingo+xl&u_utility_brand=CITROEN&u_utility_model=CITROEN_Berlingo&page=9
  → 35 annonces récupérées (total en mémoire: 315)
Export de 315 annonces vers /home/ubuntu/app/leboncoin_ads_berlingo_20260315_143828.csv réussi.
Récupération de la page 10/10 avec l'URL: https://www.leboncoin.fr/recherche?category=5&text=berlingo+xl&u_utility_brand=CITROEN&u_utility_model=CITROEN_Berlingo&page=10
  → 10 annonces récupérées (total en mémoire: 325)
Export de 325 annonces vers /home/ubuntu/app/leboncoin_ads_berlingo_20260315_143828.csv réussi.

Terminé : 325 annonces au total dans /home/ubuntu/app/leboncoin_ads_berlingo_20260315_143828.csv
INFO: Model fallback : berlingo
INFO: Schéma initialisé dans /home/ubuntu/app/db/lbc.sqlite
════════════════════════════════════════════════════════════
  📦 MIGRATION CSV → SQLite unifié
════════════════════════════════════════════════════════════

📂 leboncoin_ads_berlingo_20260315_143828.csv
   ✅ 325 lus, 325 insérés, 0 ignorés, 0 erreurs

────────────────────────────────────────────────────────────
  📊 TOTAL : 325 lus, 325 insérés
  💾 Base : /home/ubuntu/app/db/lbc.sqlite
  📌 5135 annonces en base
════════════════════════════════════════════════════════════
INFO: 322 list_id lus dans le CSV.
INFO: 379 annonces actives en base pour citroen berlingo.
INFO: 57 annonce(s) marquées indisponibles.
════════════════════════════════════════════════════════════
  CHECK DISPONIBILITÉ
  CSV   : leboncoin_ads_berlingo_20260315_143828.csv
  Brand : citroen  |  Modèle : berlingo
════════════════════════════════════════════════════════════

  Annonces dans le CSV    : 322
  Annonces actives en DB  : 379
  Absentes du crawl       : 57
  Marquées indisponibles  : 57
════════════════════════════════════════════════════════════

  Vérification :
  SELECT list_id, available, unavailable_detected_at FROM ads WHERE available = 0;
══════════════════════════════════════════════════════════════════════
  🚗 ANALYSEUR LEBONCOIN - Analyses Descriptives Véhicules
══════════════════════════════════════════════════════════════════════
  💾 Base SQLite       : /home/ubuntu/app/db/lbc.sqlite
  📁 Dossier figures  : /home/ubuntu/app/stats/berlingo/figures
  🔍 Modèle filtré    : berlingo
  📊 Graphiques       : Non
══════════════════════════════════════════════════════════════════════
📂 Chargement depuis SQLite : /home/ubuntu/app/db/lbc.sqlite
   ✅ 463 annonces chargées (modèle 'berlingo')

======================================================================
📊 EXPLORATION DES DONNÉES BRUTES
======================================================================

📌 Nombre total d'annonces : 463

📋 Premières lignes (colonnes parsées) :
      list_id                                                                                     subject  price_eur  year_model  mileage_km    fuel    brand     model owner_type first_publication_date
0  3137494988                                           Citroen berlingo xl 3 places 130 ch eat8 19990 ht      23988        2025          50  diesel  citroen  berlingo        pro    2026-02-01 11:46:21
1  3127792883  CITROEN BERLINGO XL 950kg 1.5 BlueHDi 100ch Control BVM5 S&S 2pl - GARANTIE 6 MOIS MINIMUM      14990        2020       25000  diesel  citroen  berlingo        pro    2026-01-14 15:23:00
2  3140287724                                                                            Berlingo XL 2019      12500        2019       70000  diesel  citroen  berlingo    private    2026-02-06 10:22:45
3  3088625727                                                       Citroën Berlingo BHDI 100 CLUB XL BVM      13990        2020      105583  diesel  citroen  berlingo        pro    2025-11-07 09:24:00
4  3136059936                                                                                 Berlingo xl      17000        2021       65000  diesel  citroen  berlingo    private    2026-01-29 18:26:54

❓ Valeurs manquantes par colonne clé :
   list_id                        :    0 manquantes (0.0%)
   subject                        :    0 manquantes (0.0%)
   price_eur                      :    0 manquantes (0.0%)
   year_model                     :    0 manquantes (0.0%)
   mileage_km                     :    0 manquantes (0.0%)
   fuel                           :    0 manquantes (0.0%)
   brand                          :    0 manquantes (0.0%)
   model                          :    0 manquantes (0.0%)
   owner_type                     :    0 manquantes (0.0%)
   first_publication_date         :    0 manquantes (0.0%)

📅 Période couverte :
   Première publication : 2025-02-11 15:13:00
   Dernière publication : 2026-03-15 12:39:04
   Durée : 396 jours

👤 Répartition par type de vendeur :
   pro             :  385 (83.2%)
   private         :   78 (16.8%)

⛽ Répartition par carburant :
   diesel               :  450 (97.2%)
   électrique           :   10 (2.2%)
   essence              :    3 (0.6%)

🏭 Top 10 marques :
   citroen              :  463 (100.0%)

🧮 Création des colonnes calculées...
   ✅ Colonnes ajoutées : age_years, km_per_year, price_per_km

🧹 Nettoyage des données...

   📊 Rapport de nettoyage :
      prix_aberrants            :    0 lignes supprimées
      km_aberrants              :    2 lignes supprimées
      annee_aberrante           :    0 lignes supprimées
      age_negatif               :   11 lignes supprimées
      ─────────────────────────────────────────────
      Total supprimé          :   13
      Restantes               :  450 / 463
      Pourcentage conservé    : 97.2%

🔍 Détection des outliers (méthode IQR)...
   price_eur            :    3 outliers (0.7%)
      Bornes IQR : [-1,010 ; 30,990]
   mileage_km           :    4 outliers (0.9%)
      Bornes IQR : [-92,340 ; 247,404]
   age_years            :    3 outliers (0.7%)
      Bornes IQR : [-3 ; 13]

   📌 Total d'annonces outliers (au moins 1 variable) : 7 (1.6%)
   ⚠️  Les outliers sont identifiés mais NON supprimés.

======================================================================
📊 RÉSUMÉ APRÈS NETTOYAGE
======================================================================
   Nombre d'annonces restantes : 450
   Dont outliers identifiés    : 7
   Annonces non-outliers       : 443

   Plages de valeurs :
      price_eur            : [     2,800 ;     38,190]  (moy:     15,136)
      mileage_km           : [         1 ;    309,000]  (moy:     82,266)
      year_model           : [     2,009 ;      2,025]  (moy:      2,021)
      age_years            : [         1 ;         17]  (moy:          5)
      km_per_year          : [         1 ;     56,667]  (moy:     14,036)

   💾 450 annonces enrichies persistées dans SQLite

🔎 Détection des annonces suspectes...
   ⚠️  6 signaux de suspicion détectés
      km_trop_bas_diesel: 6
   💾 6 signaux persistés dans SQLite

======================================================================
📊 STATISTIQUES DESCRIPTIVES GLOBALES
======================================================================

📊 Tableau récapitulatif (valeurs brutes) :
   Variable  Count         Mean   Median          Std    Min           Q1            Q3           Max          IQR
  price_eur    450 15136.426667 13990.00  5872.372766 2800.0 10990.000000  18990.000000  38190.000000  8000.000000
 mileage_km    450 82266.033333 85000.00 58505.668258    1.0 35064.000000 120000.000000 309000.000000 84936.000000
 year_model    450  2020.780000  2020.50     2.778064 2009.0  2019.000000   2023.000000   2025.000000     4.000000
  age_years    450     5.220000     5.50     2.778064    1.0     3.000000      7.000000     17.000000     4.000000
km_per_year    450 14035.659624 14406.25  9471.372598    1.0  8333.333333  19563.069444  56666.666667 11229.736111

📊 Tableau formaté :
   Variable Count     Mean   Median       Std   Min      Q1       Q3      Max      IQR
  price_eur   450   15,136   13,990  5,872.37 2,800  10,990   18,990   38,190    8,000
 mileage_km   450   82,266   85,000 58,505.67     1  35,064  120,000  309,000   84,936
 year_model   450    2,021    2,020      2.78 2,009   2,019    2,023    2,025        4
  age_years   450      5.2      5.5      2.78   1.0     3.0      7.0     17.0      4.0
km_per_year   450 14,035.7 14,406.2  9,471.37   1.0 8,333.3 19,563.1 56,666.7 11,229.7

📝 INTERPRÉTATION DES STATISTIQUES :
--------------------------------------------------

   📌 price_eur :
      → Distribution asymétrique DROITE (moyenne 15,136 > médiane 13,990)
        Quelques valeurs élevées tirent la moyenne vers le haut.
      → Dispersion MODÉRÉE (CV = 39%, σ = 5,872)
      → Étendue : [2,800 ; 38,190] (IQR = 8,000)

   📌 mileage_km :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → FORTE dispersion (CV = 71%, σ = 58,506)
      → Étendue : [1 ; 309,000] (IQR = 84,936)

   📌 year_model :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Faible dispersion (CV = 0%, σ = 3)
      → Étendue : [2,009 ; 2,025] (IQR = 4)

   📌 age_years :
      → Distribution asymétrique GAUCHE (moyenne 5 < médiane 6)
        Quelques valeurs basses tirent la moyenne vers le bas.
      → FORTE dispersion (CV = 53%, σ = 3)
      → Étendue : [1 ; 17] (IQR = 4)

   📌 km_per_year :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → FORTE dispersion (CV = 67%, σ = 9,471)
      → Étendue : [1 ; 56,667] (IQR = 11,230)

======================================================================
📊 DISTRIBUTIONS PAR CATÉGORIES
======================================================================

📊 Prix moyen par année modèle...

   📋 Table : Prix par année modèle
   ---------------------------------------------------------------------------
    Année    Nb   Prix moy   Prix méd   Décote %
   ---------------------------------------------------------------------------
     2009     2      4,800      4,800        N/A
     2013     2      6,850      6,850     -42.7%
     2016    10      8,259      8,200     -20.6%
     2017    28      8,700      8,920      -5.3%
     2018    48     10,202      9,495     -17.3%
     2019    54     12,199     11,990     -19.6%
     2020    79     13,408     12,980      -9.9%
     2021    56     14,333     13,895      -6.9%
     2022    45     14,704     14,400      -2.6%
     2023    35     18,091     17,990     -23.0%
     2024    19     21,024     19,990     -16.2%
     2025    70     24,863     24,480     -18.3%

   📌 Décote annuelle moyenne : -16.6%

📊 Prix moyen par tranche de kilométrage...

   📋 Table : Prix par tranche de km
   ----------------------------------------------------------------------
        Tranche    Nb   Prix moy   Prix méd      Var %
   ----------------------------------------------------------------------
          0-20k    89     23,865     23,900        N/A
         20-50k    51     17,726     17,900     -25.7%
         50-80k    70     15,652     15,990     -11.7%
        80-120k   125     12,478     12,500     -20.3%
       120-160k    73     10,737     10,990     -14.0%
       160-200k    31      8,819      8,890     -17.9%
          200k+    11      6,433      6,000     -27.1%

📊 Prix moyen par âge...

   📋 Table : Prix par âge
   -----------------------------------------------------------------
     Âge    Nb   Prix moy   Décote %
   -----------------------------------------------------------------
       1    70     24,863        N/A
       2    19     21,024     -15.4%
       3    35     18,091     -14.0%
       4    45     14,704     -18.7%
       5    56     14,333      -2.5%
       6    79     13,408      -6.5%
       7    54     12,199      -9.0%
       8    48     10,202     -16.4%
       9    28      8,700     -14.7%
      10    10      8,259      -5.1%
      13     2      6,850     -17.1%
      17     2      4,800     -29.9%

   📌 La décote ralentit significativement à 5 ans

📊 Prix par type de carburant...

   📋 Table : Prix par carburant
   ----------------------------------------------------------------------
         Carburant    Nb   Prix moy   Prix méd
   ----------------------------------------------------------------------
            diesel   438     15,120     13,990
           essence     3     13,493     13,500
        électrique     9     16,462     15,990

   📌 Carburant avec prix médian le plus élevé : électrique (15,990€)
   📌 Carburant avec prix médian le plus bas : essence (13,500€)

📊 Prix par type de vendeur...

   📋 Table : Prix par type de vendeur
   ------------------------------------------------------------
         Type    Nb   Prix moy   Prix méd
   ------------------------------------------------------------
      private    77     12,470     12,000
          pro   373     15,687     14,400

   📌 Test Mann-Whitney (médiane) : p = 0.0000
   ✅ Différence SIGNIFICATIVE (p < 0.05)
   📌 Écart médian Pro - Particulier : +2,400€

📊 Prix par modèle de véhicule...
   ℹ️ Un seul modèle détecté (berlingo) — comparaison non applicable

   ✅ Toutes les distributions par catégorie sauvegardées dans /home/ubuntu/app/stats/berlingo/figures

======================================================================
📊 ANALYSES AVANCÉES - SEUILS PSYCHOLOGIQUES
======================================================================

📊 Analyse des seuils de kilométrage...

   📋 Taux de décote par tranche de 10k km :
   --------------------------------------------------
        10k : décote   21.6% (n=  7) ⚡
        20k : décote    5.9% (n= 13)
        30k : décote    1.1% (n= 22)
        40k : décote    0.5% (n= 16)
        50k : décote   11.9% (n= 24) ⚡
        60k : décote   -3.2% (n= 26)
        70k : décote    4.1% (n= 20)
        80k : décote   10.3% (n= 30) ⚡
        90k : décote    2.9% (n= 31)
       100k : décote   10.6% (n= 32) ⚡
       110k : décote    8.8% (n= 32)
       120k : décote   -3.6% (n= 21)
       130k : décote    5.2% (n= 22)
       140k : décote    3.7% (n= 12)
       150k : décote   -0.5% (n= 18)
       160k : décote   11.3% (n= 16) ⚡
       170k : décote    3.1% (n= 10)
       180k : décote   16.8% (n=  5) ⚡
       200k : décote    7.6% (n=  5)
       210k : décote  -13.0% (n=  2)
      300k+ : décote   38.0% (n=  2) ⚡

   📌 Seuils où la décote s'accélère (> 8%) :
      → 10k km : 21.6%
      → 50k km : 11.9%
      → 80k km : 10.3%
      → 100k km : 10.6%
      → 110k km : 8.8%
      → 160k km : 11.3%
      → 180k km : 16.8%
      → 300k+ km : 38.0%
   ✅ Sauvegardé : /home/ubuntu/app/stats/berlingo/figures/seuils_km.png

📊 Analyse des seuils d'âge...

   📋 Taux de décote par année d'âge :
   ---------------------------------------------
     2 ans : décote   15.4% (n= 19) ⚡ FORTE
     3 ans : décote   14.0% (n= 35)
     4 ans : décote   18.7% (n= 45) ⚡ FORTE
     5 ans : décote    2.5% (n= 56) 🐢 LENTE
     6 ans : décote    6.5% (n= 79)
     7 ans : décote    9.0% (n= 54)
     8 ans : décote   16.4% (n= 48) ⚡ FORTE
     9 ans : décote   14.7% (n= 28)
    10 ans : décote    5.1% (n= 10)
    13 ans : décote   17.1% (n=  2) ⚡ FORTE
    17 ans : décote   29.9% (n=  2) ⚡ FORTE

   📌 Décote rapide (> 10% par an) :
      → 2 ans : 15.4%
      → 3 ans : 14.0%
      → 4 ans : 18.7%
      → 8 ans : 16.4%
      → 9 ans : 14.7%
      → 13 ans : 17.1%
      → 17 ans : 29.9%

   📌 Décote lente (< 5% par an) :
      → 5 ans : 2.5%
   ✅ Sauvegardé : /home/ubuntu/app/stats/berlingo/figures/seuils_age.png

======================================================================
📊 IDENTIFICATION DES BONNES AFFAIRES
======================================================================

📊 Construction du modèle de prix attendu...
   📌 Modèle : prix = -915.99 × âge + -0.0507 × km + 24,087
   📌 R² = 0.776
📊 Calcul des écarts de prix...

   📋 Classification des annonces :
      🌟 Excellente affaire        :   39 (  8.7%)
      👍 Bonne affaire             :   81 ( 18.1%)
      📊 Prix marché               :  227 ( 50.8%)
      💰 Cher                      :   51 ( 11.4%)
      🔴 Très cher                 :   49 ( 11.0%)
📊 Graphique : Distribution des écarts de prix...
   ✅ Sauvegardé : /home/ubuntu/app/stats/berlingo/figures/ecarts_prix.png

   🌟 TOP 10 MEILLEURES AFFAIRES (écart le plus négatif) :
   ====================================================================================================
    1. [3156231773] Citroën Berlingo XL BLUEHDI 100 S&S ETG6 CLUB
       Prix:    3,000€ | Attendu:   10,097€ | Écart:  -70.3% | Année: 2018 | Km: 131,461
    2. [3156023107] Citroën Berlingo 1.5 BLUEHDI 100 STE XL DRIVER
       Prix:    8,000€ | Attendu:   16,535€ | Écart:  -51.6% | Année: 2021 | Km: 58,647
    3. [3158805212] EZ-923 Citroen BERLINGO XL TOLLÉE L2 1.6 BLUEHDI 1
       Prix:    7,990€ | Attendu:   16,294€ | Écart:  -51.0% | Année: 2018 | Km: 9,173
    4. [3144063650] Citroën Berlingo 1.5 BLUEDHI 100 STE XL DRIVER
       Prix:    8,000€ | Attendu:   16,007€ | Écart:  -50.0% | Année: 2022 | Km: 87,146
    5. [3156192309] Citroën Berlingo FOURGON XL BLUEHDI 100 S&S ETG6 C
       Prix:    2,800€ | Attendu:    5,505€ | Écart:  -49.1% | Année: 2017 | Km: 203,997
    6. [3156023444] Citroën Berlingo 1.5 BLUEHDI 100 STE XL DRIVER
       Prix:    8,000€ | Attendu:   15,286€ | Écart:  -47.7% | Année: 2021 | Km: 83,293
    7. [3157282073] Citroen berlingo xl 1.6 bluehdi 100 cv club
       Prix:    5,980€ | Attendu:   11,267€ | Écart:  -46.9% | Année: 2018 | Km: 108,380
    8. [2984931973] Citroën Berlingo Electrique Taille XL Club
       Prix:    8,590€ | Attendu:   15,459€ | Écart:  -44.4% | Année: 2018 | Km: 25,657
    9. [3156133024] Citroën berlingo xl électrique confort isotherme T
       Prix:    7,990€ | Attendu:   13,870€ | Écart:  -42.4% | Année: 2018 | Km: 57,000
   10. [3160777352] Citroën Berlingo FOURGON XL BLUEHDI 100 S&S ETG6 B
       Prix:    6,800€ | Attendu:   11,524€ | Écart:  -41.0% | Année: 2018 | Km: 103,299

   🔴 TOP 10 ANNONCES SURÉVALUÉES (écart le plus positif) :
   ====================================================================================================
    1. [3153561957] Citroën Berlingo XL 1.6 BlueHDI 100 Cabine Approfo
       Prix:    6,000€ | Attendu:    1,552€ | Écart: +286.7% | Année: 2017 | Km: 282,000
    2. [3155307735] Citroën berlingo
       Prix:    7,000€ | Attendu:    2,018€ | Écart: +246.9% | Année: 2013 | Km: 200,500
    3. [3115315205] Citroën Jumpy CAB APPROFONDIE XL BLUEHDI 180 S&S E
       Prix:   38,190€ | Attendu:   23,169€ | Écart:  +64.8% | Année: 2025 | Km: 40
    4. [3097892706] Citroën Berlingo CABINE APPROFONDIE CA TAILLE XL B
       Prix:   37,140€ | Attendu:   23,171€ | Écart:  +60.3% | Année: 2025 | Km: 1
    5. [3148392923] CITROEN BERLINGO 1.5 BlueHDi S&S - 130 XL Feel 7 P
       Prix:   19,990€ | Attendu:   12,502€ | Écart:  +59.9% | Année: 2018 | Km: 84,000
    6. [3130621009] Citroen BERLINGO XL 1.6 HDI 90 ch CABINE APPROFOND
       Prix:   11,490€ | Attendu:    7,216€ | Écart:  +59.2% | Année: 2014 | Km: 116,000
    7. [3140204221] Citroen Berlingo Van XL BlueHDi 100 S&S Cabine App
       Prix:    9,490€ | Attendu:    5,969€ | Écart:  +59.0% | Année: 2018 | Km: 212,912
    8. [3158708742] Berlingo XL 1.6L bluehdi aménagé
       Prix:   15,000€ | Attendu:   10,171€ | Écart:  +47.5% | Année: 2018 | Km: 130,000
    9. [3156325212] À vendre - Citroën Berlingo rallongée - Boîte auto
       Prix:    9,500€ | Attendu:    6,514€ | Écart:  +45.8% | Année: 2016 | Km: 166,000
   10. [3138591846] Citroën Jumpy CABINE APPROFONDIE XL BLUEHDI 180 S 
       Prix:   33,090€ | Attendu:   23,171€ | Écart:  +42.8% | Année: 2025 | Km: 10

======================================================================
📊 TABLEAU DE BORD RÉCAPITULATIF
======================================================================

   ┌──────────────────────────────────────────────────┐
   │ Nombre total d'annonces      │                450 │
   │ Prix moyen                   │           15,136 € │
   │ Prix médian                  │           13,990 € │
   │ Km moyen                     │          82,266 km │
   │ Km médian                    │          85,000 km │
   │ Âge moyen                    │            5.2 ans │
   │ Âge médian                   │            5.5 ans │
   │ Km/an moyen                  │       14,036 km/an │
   └──────────────────────────────────────────────────┘

   ✅ Sauvegardé : /home/ubuntu/app/stats/berlingo/figures/dashboard_kpis.png

======================================================================
💡 INSIGHTS PRINCIPAUX
======================================================================

   🎯 Âge optimal d'achat : ~10 ans (meilleur rapport prix/ancienneté)
   ⚡ Seuil km critique : la décote s'accélère le plus autour de (20000, 40000]
   ⛽ Carburant tenant le mieux sa valeur : électrique (prix/âge le plus élevé)
   👔 Les pros vendent 20.0% plus cher que les particuliers (médiane)
   🔄 Km/an médian : 14,406 km → Profil dominant : 15-25k (Intensif)
   🏭 Top 3 marques = 100% du marché : citroen (450)

======================================================================
💡 RECOMMANDATIONS
======================================================================

   🛒 POUR UN ACHETEUR :
   --------------------------------------------------
   • Sweet spot : véhicules de 5-8 ans, 60-120k km
     Prix moyen dans cette fourchette : 13,145€
     (127 annonces disponibles)
   • Prix médian du marché : 13,990€ → cible < 12,591€ pour une bonne affaire
   • Privilégier les annonces de particuliers si budget serré
   • Vérifier le km/an : < 15 000 km/an = usage normal

   💰 POUR UN VENDEUR :
   --------------------------------------------------
   • Prix médian du marché : 13,990€
   • Positionner légèrement sous le marché pour vendre vite (-5% à -10%)
   • Les véhicules < 85,000 km se vendent mieux
   • Mettre en avant un faible km/an si applicable

   🎯 SEGMENTS DE MARCHÉ :
   --------------------------------------------------
   • Budget (123 annonces) :
     Prix : 2,800€ - 10,990€
     Âge moyen : 7.8 ans | Km moyen : 140,799
   • Milieu de gamme (215 annonces) :
     Prix : 11,000€ - 18,990€
     Âge moyen : 5.4 ans | Km moyen : 85,266
   • Premium (112 annonces) :
     Prix : 19,000€ - 38,190€
     Âge moyen : 1.9 ans | Km moyen : 12,225

======================================================================
💾 EXPORT DES RÉSULTATS EN BASE SQLite
======================================================================
   📌 Run #26 créé
   🔍 Modèle : berlingo
   📎 450 annonces liées au run
   ✅ Stats descriptives : 5 variables
   ✅ Modèle régression : 2 coefficients (R²=0.776)
   ✅ Référentiel prix : 55 segments
   ✅ Classifications deal : 450 annonces

   💾 Tout exporté dans /home/ubuntu/app/db/lbc.sqlite

══════════════════════════════════════════════════════════════════════
  ✅ ANALYSE TERMINÉE en 4.1 secondes
  📊 450 annonces analysées  (run #26)
  🔍 Modèle           : berlingo
  💾 Base SQLite      : /home/ubuntu/app/db/lbc.sqlite
  📁 Figures          : /home/ubuntu/app/stats/berlingo/figures
══════════════════════════════════════════════════════════════════════
Récupération de la page 1/5 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=c4&price=min-11000&regdate=2015-max&mileage=min-150000&u_car_brand=CITROEN&seats=999999&page=1
  → 35 annonces récupérées (total en mémoire: 35)
Export de 35 annonces vers /home/ubuntu/app/leboncoin_ads_c4_20260315_143906.csv réussi.
Récupération de la page 2/5 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=c4&price=min-11000&regdate=2015-max&mileage=min-150000&u_car_brand=CITROEN&seats=999999&page=2
  → 35 annonces récupérées (total en mémoire: 70)
Export de 70 annonces vers /home/ubuntu/app/leboncoin_ads_c4_20260315_143906.csv réussi.
Récupération de la page 3/5 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=c4&price=min-11000&regdate=2015-max&mileage=min-150000&u_car_brand=CITROEN&seats=999999&page=3
  → 35 annonces récupérées (total en mémoire: 105)
Export de 105 annonces vers /home/ubuntu/app/leboncoin_ads_c4_20260315_143906.csv réussi.
Récupération de la page 4/5 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=c4&price=min-11000&regdate=2015-max&mileage=min-150000&u_car_brand=CITROEN&seats=999999&page=4
  → 35 annonces récupérées (total en mémoire: 140)
Export de 140 annonces vers /home/ubuntu/app/leboncoin_ads_c4_20260315_143906.csv réussi.
Récupération de la page 5/5 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=c4&price=min-11000&regdate=2015-max&mileage=min-150000&u_car_brand=CITROEN&seats=999999&page=5
  → 35 annonces récupérées (total en mémoire: 175)
Export de 175 annonces vers /home/ubuntu/app/leboncoin_ads_c4_20260315_143906.csv réussi.

Terminé : 175 annonces au total dans /home/ubuntu/app/leboncoin_ads_c4_20260315_143906.csv
INFO: Model fallback : c4
INFO: Schéma initialisé dans /home/ubuntu/app/db/lbc.sqlite
════════════════════════════════════════════════════════════
  📦 MIGRATION CSV → SQLite unifié
════════════════════════════════════════════════════════════

📂 leboncoin_ads_c4_20260315_143906.csv
   ✅ 175 lus, 175 insérés, 0 ignorés, 0 erreurs

────────────────────────────────────────────────────────────
  📊 TOTAL : 175 lus, 175 insérés
  💾 Base : /home/ubuntu/app/db/lbc.sqlite
  📌 5182 annonces en base
════════════════════════════════════════════════════════════
INFO: 175 list_id lus dans le CSV.
INFO: 39 annonces actives en base pour citroen c4.
INFO: 38 annonce(s) marquées indisponibles.
════════════════════════════════════════════════════════════
  CHECK DISPONIBILITÉ
  CSV   : leboncoin_ads_c4_20260315_143906.csv
  Brand : citroen  |  Modèle : c4
════════════════════════════════════════════════════════════

  Annonces dans le CSV    : 175
  Annonces actives en DB  : 39
  Absentes du crawl       : 38
  Marquées indisponibles  : 38
════════════════════════════════════════════════════════════

  Vérification :
  SELECT list_id, available, unavailable_detected_at FROM ads WHERE available = 0;
══════════════════════════════════════════════════════════════════════
  🚗 ANALYSEUR LEBONCOIN - Analyses Descriptives Véhicules
══════════════════════════════════════════════════════════════════════
  💾 Base SQLite       : /home/ubuntu/app/db/lbc.sqlite
  📁 Dossier figures  : /home/ubuntu/app/stats/c4/figures
  🔍 Modèle filtré    : c4
  📊 Graphiques       : Non
══════════════════════════════════════════════════════════════════════
📂 Chargement depuis SQLite : /home/ubuntu/app/db/lbc.sqlite
   ✅ 72 annonces chargées (modèle 'c4')

======================================================================
📊 EXPLORATION DES DONNÉES BRUTES
======================================================================

📌 Nombre total d'annonces : 72

📋 Premières lignes (colonnes parsées) :
      list_id                                                             subject  price_eur  year_model  mileage_km     fuel    brand model owner_type first_publication_date
0  3147129764  CITROËN Grand C4 Picasso II 1.6 BlueHDi EAT6 S&S 120 cv Boîte auto      10999        2017      127998   diesel  citroen    c4        pro    2026-02-18 14:14:59
1  3149154360                                                            Grand c4      11000        2016      146230   diesel  citroen    c4    private    2026-02-22 07:57:04
2  3148620999                                                          C4 Picasso       4600        2015      142000  essence  citroen    c4    private    2026-02-21 10:08:06
3  3103848695                                                    Grand C4 Picasso       9900        2017       71900  essence  citroen    c4    private    2026-02-19 08:40:21
4  3144132231                                                    Grand C4 Picasso       9500        2017      120000   diesel  citroen    c4    private    2026-02-13 07:20:07

❓ Valeurs manquantes par colonne clé :
   list_id                        :    0 manquantes (0.0%)
   subject                        :    0 manquantes (0.0%)
   price_eur                      :    0 manquantes (0.0%)
   year_model                     :    0 manquantes (0.0%)
   mileage_km                     :    0 manquantes (0.0%)
   fuel                           :    0 manquantes (0.0%)
   brand                          :    0 manquantes (0.0%)
   model                          :    0 manquantes (0.0%)
   owner_type                     :    0 manquantes (0.0%)
   first_publication_date         :    0 manquantes (0.0%)

📅 Période couverte :
   Première publication : 2025-12-01 17:53:00
   Dernière publication : 2026-03-08 15:03:35
   Durée : 96 jours

👤 Répartition par type de vendeur :
   private         :   38 (52.8%)
   pro             :   34 (47.2%)

⛽ Répartition par carburant :
   diesel               :   42 (58.3%)
   essence              :   30 (41.7%)

🏭 Top 10 marques :
   citroen              :   72 (100.0%)

🧮 Création des colonnes calculées...
   ✅ Colonnes ajoutées : age_years, km_per_year, price_per_km

🧹 Nettoyage des données...

   📊 Rapport de nettoyage :
      prix_aberrants            :    1 lignes supprimées
      km_aberrants              :    0 lignes supprimées
      annee_aberrante           :    0 lignes supprimées
      age_negatif               :    0 lignes supprimées
      ─────────────────────────────────────────────
      Total supprimé          :    1
      Restantes               :   71 / 72
      Pourcentage conservé    : 98.6%

🔍 Détection des outliers (méthode IQR)...
   price_eur            :    0 outliers (0.0%)
      Bornes IQR : [4,502 ; 14,082]
   mileage_km           :    4 outliers (5.6%)
      Bornes IQR : [49,640 ; 198,616]
   age_years            :    1 outliers (1.4%)
      Bornes IQR : [5 ; 13]

   📌 Total d'annonces outliers (au moins 1 variable) : 5 (7.0%)
   ⚠️  Les outliers sont identifiés mais NON supprimés.

======================================================================
📊 RÉSUMÉ APRÈS NETTOYAGE
======================================================================
   Nombre d'annonces restantes : 71
   Dont outliers identifiés    : 5
   Annonces non-outliers       : 66

   Plages de valeurs :
      price_eur            : [     4,600 ;     11,000]  (moy:      9,261)
      mileage_km           : [       192 ;    150,000]  (moy:    116,652)
      year_model           : [     2,015 ;      2,022]  (moy:      2,017)
      age_years            : [         4 ;         11]  (moy:          9)
      km_per_year          : [        17 ;     25,000]  (moy:     13,770)

   💾 71 annonces enrichies persistées dans SQLite

🔎 Détection des annonces suspectes...
   ⚠️  4 signaux de suspicion détectés
      km_trop_bas_essence: 1
      km_trop_bas_diesel: 3
   💾 4 signaux persistés dans SQLite

======================================================================
📊 STATISTIQUES DESCRIPTIVES GLOBALES
======================================================================

📊 Tableau récapitulatif (valeurs brutes) :
   Variable  Count          Mean   Median          Std         Min            Q1            Q3      Max          IQR
  price_eur     71   9261.197183   9900.0  1617.625699 4600.000000   8095.000000  10490.000000  11000.0  2395.000000
 mileage_km     71 116652.084507 128640.0 37475.094829  192.000000 105506.000000 142750.000000 150000.0 37244.000000
 year_model     71   2017.169014   2017.0     1.698621 2015.000000   2016.000000   2018.000000   2022.0     2.000000
  age_years     71      8.830986      9.0     1.698621    4.000000      8.000000     10.000000     11.0     2.000000
km_per_year     71  13770.356691  14000.0  5033.312569   17.454545  11664.222222  16666.666667  25000.0  5002.444444

📊 Tableau formaté :
   Variable Count     Mean   Median       Std   Min       Q1       Q3      Max     IQR
  price_eur    71    9,261    9,900  1,617.63 4,600    8,095   10,490   11,000   2,395
 mileage_km    71  116,652  128,640 37,475.09   192  105,506  142,750  150,000  37,244
 year_model    71    2,017    2,017      1.70 2,015    2,016    2,018    2,022       2
  age_years    71      8.8      9.0      1.70   4.0      8.0     10.0     11.0     2.0
km_per_year    71 13,770.4 14,000.0  5,033.31  17.5 11,664.2 16,666.7 25,000.0 5,002.4

📝 INTERPRÉTATION DES STATISTIQUES :
--------------------------------------------------

   📌 price_eur :
      → Distribution asymétrique GAUCHE (moyenne 9,261 < médiane 9,900)
        Quelques valeurs basses tirent la moyenne vers le bas.
      → Faible dispersion (CV = 17%, σ = 1,618)
      → Étendue : [4,600 ; 11,000] (IQR = 2,395)

   📌 mileage_km :
      → Distribution asymétrique GAUCHE (moyenne 116,652 < médiane 128,640)
        Quelques valeurs basses tirent la moyenne vers le bas.
      → Dispersion MODÉRÉE (CV = 32%, σ = 37,475)
      → Étendue : [192 ; 150,000] (IQR = 37,244)

   📌 year_model :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Faible dispersion (CV = 0%, σ = 2)
      → Étendue : [2,015 ; 2,022] (IQR = 2)

   📌 age_years :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Faible dispersion (CV = 19%, σ = 2)
      → Étendue : [4 ; 11] (IQR = 2)

   📌 km_per_year :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Dispersion MODÉRÉE (CV = 37%, σ = 5,033)
      → Étendue : [17 ; 25,000] (IQR = 5,002)

======================================================================
📊 DISTRIBUTIONS PAR CATÉGORIES
======================================================================

📊 Prix moyen par année modèle...

   📋 Table : Prix par année modèle
   ---------------------------------------------------------------------------
    Année    Nb   Prix moy   Prix méd   Décote %
   ---------------------------------------------------------------------------
     2015    13      7,989      8,490        N/A
     2016    17      9,350      9,980     -17.0%
     2017    12      9,772     10,095      -4.5%
     2018    13      9,128      9,900      +6.6%
     2019     9      9,910     10,490      -8.6%
     2020     5      9,928      9,700      -0.2%

   📌 Décote annuelle moyenne : -4.7%

📊 Prix moyen par tranche de kilométrage...

   📋 Table : Prix par tranche de km
   ----------------------------------------------------------------------
        Tranche    Nb   Prix moy   Prix méd      Var %
   ----------------------------------------------------------------------
          0-20k     4      8,622      8,600        N/A
         50-80k     6      9,792     10,050     +13.6%
        80-120k    18      9,604      9,990      -1.9%
       120-160k    43      9,103      9,900      -5.2%

📊 Prix moyen par âge...

   📋 Table : Prix par âge
   -----------------------------------------------------------------
     Âge    Nb   Prix moy   Décote %
   -----------------------------------------------------------------
       6     5      9,928        N/A
       7     9      9,910      -0.2%
       8    13      9,128      -7.9%
       9    12      9,772      +7.1%
      10    17      9,350      -4.3%
      11    13      7,989     -14.6%

📊 Prix par type de carburant...

   📋 Table : Prix par carburant
   ----------------------------------------------------------------------
         Carburant    Nb   Prix moy   Prix méd
   ----------------------------------------------------------------------
            diesel    41      9,716      9,990
           essence    30      8,639      8,500

   📌 Carburant avec prix médian le plus élevé : diesel (9,990€)
   📌 Carburant avec prix médian le plus bas : essence (8,500€)

📊 Prix par type de vendeur...

   📋 Table : Prix par type de vendeur
   ------------------------------------------------------------
         Type    Nb   Prix moy   Prix méd
   ------------------------------------------------------------
      private    37      8,974      9,500
          pro    34      9,573      9,990

   📌 Test Mann-Whitney (médiane) : p = 0.1889
   ❌ Différence NON significative (p >= 0.05)
   📌 Écart médian Pro - Particulier : +490€

📊 Prix par modèle de véhicule...
   ℹ️ Un seul modèle détecté (c4) — comparaison non applicable

   ✅ Toutes les distributions par catégorie sauvegardées dans /home/ubuntu/app/stats/c4/figures

======================================================================
📊 ANALYSES AVANCÉES - SEUILS PSYCHOLOGIQUES
======================================================================

📊 Analyse des seuils de kilométrage...

   📋 Taux de décote par tranche de 10k km :
   --------------------------------------------------
        60k : décote  -21.5% (n=  2)
        70k : décote   10.7% (n=  3) ⚡
        80k : décote   -0.5% (n=  2)
        90k : décote  -14.3% (n=  2)
       100k : décote    7.4% (n=  6)
       110k : décote    8.3% (n=  8)
       120k : décote    2.8% (n=  8)
       130k : décote   -5.1% (n= 10)
       140k : décote    3.9% (n= 21)
       150k : décote   -8.7% (n=  4)

   📌 Seuils où la décote s'accélère (> 8%) :
      → 70k km : 10.7%
      → 110k km : 8.3%
   ✅ Sauvegardé : /home/ubuntu/app/stats/c4/figures/seuils_km.png

📊 Analyse des seuils d'âge...

   📋 Taux de décote par année d'âge :
   ---------------------------------------------
     7 ans : décote    0.2% (n=  9) 🐢 LENTE
     8 ans : décote    7.9% (n= 13)
     9 ans : décote   -7.1% (n= 12) 🐢 LENTE
    10 ans : décote    4.3% (n= 17)
    11 ans : décote   14.6% (n= 13)

   📌 Décote rapide (> 10% par an) :
      → 11 ans : 14.6%

   📌 Décote lente (< 5% par an) :
      → 7 ans : 0.2%
      → 9 ans : -7.1%
      → 10 ans : 4.3%
   ✅ Sauvegardé : /home/ubuntu/app/stats/c4/figures/seuils_age.png

======================================================================
📊 IDENTIFICATION DES BONNES AFFAIRES
======================================================================

📊 Construction du modèle de prix attendu...
   📌 Modèle : prix = -287.59 × âge + -0.0007 × km + 11,887
   📌 R² = 0.092
📊 Calcul des écarts de prix...

   📋 Classification des annonces :
      🌟 Excellente affaire        :   10 ( 14.1%)
      👍 Bonne affaire             :   11 ( 15.5%)
      📊 Prix marché               :   28 ( 39.4%)
      💰 Cher                      :   15 ( 21.1%)
      🔴 Très cher                 :    7 (  9.9%)
📊 Graphique : Distribution des écarts de prix...
   ✅ Sauvegardé : /home/ubuntu/app/stats/c4/figures/ecarts_prix.png

   🌟 TOP 10 MEILLEURES AFFAIRES (écart le plus négatif) :
   ====================================================================================================
    1. [3148620999] C4 Picasso
       Prix:    4,600€ | Attendu:    8,619€ | Écart:  -46.6% | Année: 2015 | Km: 142,000
    2. [3155010351] C4 Picasso
       Prix:    4,600€ | Attendu:    8,619€ | Écart:  -46.6% | Année: 2015 | Km: 142,000
    3. [3148926526] C4 grand Picasso 2l hdi 150cv exclusive
       Prix:    5,800€ | Attendu:    8,919€ | Écart:  -35.0% | Année: 2016 | Km: 125,000
    4. [3147269001] CITROEN GRAND C4 PICASSO Spacetourer
       Prix:    6,000€ | Attendu:    8,910€ | Écart:  -32.7% | Année: 2016 | Km: 137,500
    5. [3151612085] CITROEN C4 GRAND PICASSO 1.6 blueHDI 120 2018 à fi
       Prix:    6,500€ | Attendu:    9,501€ | Écart:  -31.6% | Année: 2018 | Km: 115,000
    6. [3132111933] Citroen c4 - 7 places - 2018 - automatique - essen
       Prix:    6,950€ | Attendu:    9,478€ | Écart:  -26.7% | Année: 2018 | Km: 147,000
    7. [3151726420] CITROEN GRAND C4 PICASSO Spacetourer, PureTech 130
       Prix:    6,490€ | Attendu:    8,639€ | Écart:  -24.9% | Année: 2015 | Km: 114,640
    8. [3104402984] CITROEN C4 PURETECH 130CH S&S ORIGINS E6.D-TEMP 20
       Prix:    7,490€ | Attendu:    9,774€ | Écart:  -23.4% | Année: 2019 | Km: 135,000
    9. [3152987435] CITROEN C4 PICASSO Grand 1.2 PureTech - 130 S&S GR
       Prix:    7,490€ | Attendu:    9,487€ | Écart:  -21.0% | Année: 2018 | Km: 135,000
   10. [3132019706] C4 grand Picasso 2.0 150 toute options
       Prix:    7,500€ | Attendu:    9,481€ | Écart:  -20.9% | Année: 2018 | Km: 143,000

   🔴 TOP 10 ANNONCES SURÉVALUÉES (écart le plus positif) :
   ====================================================================================================
    1. [3138161286] Citroën C4 PICASSO II Exclusive 2.0 BLUEHDI 150CV 
       Prix:   10,990€ | Attendu:    8,644€ | Écart:  +27.1% | Année: 2015 | Km: 107,256
    2. [3149154360] Grand c4
       Prix:   11,000€ | Attendu:    8,903€ | Écart:  +23.6% | Année: 2016 | Km: 146,230
    3. [3071933719] Citroën C4 grand Picasso
       Prix:   11,000€ | Attendu:    8,904€ | Écart:  +23.5% | Année: 2016 | Km: 145,000
    4. [3123511241] Citroën Grand C4 Picasso 2.0 HDI 150 CH EXCLUSIVE 
       Prix:   10,990€ | Attendu:    8,903€ | Écart:  +23.4% | Année: 2016 | Km: 146,700
    5. [3151596769] Citroën grande picasso 2l hdi 150cv moteur neuf fu
       Prix:   11,000€ | Attendu:    8,937€ | Écart:  +23.1% | Année: 2016 | Km: 100,000
    6. [3157137989] CITROEN GRAND C4 PICASSO PureTech 130 SS Shine - S
       Prix:   10,990€ | Attendu:    8,940€ | Écart:  +22.9% | Année: 2016 | Km: 97,000
    7. [3119561367] Citroen Grand C4 Picasso e-HDi 115ch Business ETG6
       Prix:   10,499€ | Attendu:    8,625€ | Écart:  +21.7% | Année: 2015 | Km: 133,361
    8. [3152193437] Citroën c4 7 places
       Prix:   11,000€ | Attendu:    9,188€ | Écart:  +19.7% | Année: 2017 | Km: 150,000
    9. [3148171106] CITROEN Grand C4 Picasso II (2) 2.0 BLUEHDI 150 S&
       Prix:   10,990€ | Attendu:    9,193€ | Écart:  +19.5% | Année: 2017 | Km: 142,500
   10. [3147129764] CITROËN Grand C4 Picasso II 1.6 BlueHDi EAT6 S&S 1
       Prix:   10,999€ | Attendu:    9,204€ | Écart:  +19.5% | Année: 2017 | Km: 127,998

======================================================================
📊 TABLEAU DE BORD RÉCAPITULATIF
======================================================================

   ┌──────────────────────────────────────────────────┐
   │ Nombre total d'annonces      │                 71 │
   │ Prix moyen                   │            9,261 € │
   │ Prix médian                  │            9,900 € │
   │ Km moyen                     │         116,652 km │
   │ Km médian                    │         128,640 km │
   │ Âge moyen                    │            8.8 ans │
   │ Âge médian                   │            9.0 ans │
   │ Km/an moyen                  │       13,770 km/an │
   └──────────────────────────────────────────────────┘

   ✅ Sauvegardé : /home/ubuntu/app/stats/c4/figures/dashboard_kpis.png

======================================================================
💡 INSIGHTS PRINCIPAUX
======================================================================

   🎯 Âge optimal d'achat : ~11 ans (meilleur rapport prix/ancienneté)
   ⚡ Seuil km critique : la décote s'accélère le plus autour de (40000, 60000]
   ⛽ Carburant tenant le mieux sa valeur : diesel (prix/âge le plus élevé)
   👔 Les pros vendent 5.2% plus cher que les particuliers (médiane)
   🔄 Km/an médian : 14,000 km → Profil dominant : 10-15k (Normal)
   🏭 Top 3 marques = 100% du marché : citroen (71)

======================================================================
💡 RECOMMANDATIONS
======================================================================

   🛒 POUR UN ACHETEUR :
   --------------------------------------------------
   • Sweet spot : véhicules de 5-8 ans, 60-120k km
     Prix moyen dans cette fourchette : 9,697€
     (12 annonces disponibles)
   • Prix médian du marché : 9,900€ → cible < 8,910€ pour une bonne affaire
   • Privilégier les annonces de particuliers si budget serré
   • Vérifier le km/an : < 15 000 km/an = usage normal

   💰 POUR UN VENDEUR :
   --------------------------------------------------
   • Prix médian du marché : 9,900€
   • Positionner légèrement sous le marché pour vendre vite (-5% à -10%)
   • Les véhicules < 128,640 km se vendent mieux
   • Mettre en avant un faible km/an si applicable

   🎯 SEGMENTS DE MARCHÉ :
   --------------------------------------------------
   • Budget (18 annonces) :
     Prix : 4,600€ - 7,990€
     Âge moyen : 9.5 ans | Km moyen : 121,951
   • Milieu de gamme (36 annonces) :
     Prix : 8,200€ - 10,490€
     Âge moyen : 8.4 ans | Km moyen : 109,749
   • Premium (17 annonces) :
     Prix : 10,499€ - 11,000€
     Âge moyen : 8.9 ans | Km moyen : 125,661

======================================================================
💾 EXPORT DES RÉSULTATS EN BASE SQLite
======================================================================
   📌 Run #27 créé
   🔍 Modèle : c4
   📎 71 annonces liées au run
   ✅ Stats descriptives : 5 variables
   ✅ Modèle régression : 2 coefficients (R²=0.092)
   ✅ Référentiel prix : 20 segments
   ✅ Classifications deal : 71 annonces

   💾 Tout exporté dans /home/ubuntu/app/db/lbc.sqlite

══════════════════════════════════════════════════════════════════════
  ✅ ANALYSE TERMINÉE en 3.7 secondes
  📊 71 annonces analysées  (run #27)
  🔍 Modèle           : c4
  💾 Base SQLite      : /home/ubuntu/app/db/lbc.sqlite
  📁 Figures          : /home/ubuntu/app/stats/c4/figures
══════════════════════════════════════════════════════════════════════
Récupération de la page 1/4 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=scenic&price=min-11000&regdate=2015-max&mileage=min-150000&seats=999999&u_car_brand=RENAULT&page=1
  → 35 annonces récupérées (total en mémoire: 35)
Export de 35 annonces vers /home/ubuntu/app/leboncoin_ads_scenic_20260315_143926.csv réussi.
Récupération de la page 2/4 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=scenic&price=min-11000&regdate=2015-max&mileage=min-150000&seats=999999&u_car_brand=RENAULT&page=2
  → 35 annonces récupérées (total en mémoire: 70)
Export de 70 annonces vers /home/ubuntu/app/leboncoin_ads_scenic_20260315_143926.csv réussi.
Récupération de la page 3/4 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=scenic&price=min-11000&regdate=2015-max&mileage=min-150000&seats=999999&u_car_brand=RENAULT&page=3
  → 35 annonces récupérées (total en mémoire: 105)
Export de 105 annonces vers /home/ubuntu/app/leboncoin_ads_scenic_20260315_143926.csv réussi.
Récupération de la page 4/4 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=scenic&price=min-11000&regdate=2015-max&mileage=min-150000&seats=999999&u_car_brand=RENAULT&page=4
  → 6 annonces récupérées (total en mémoire: 111)
Export de 111 annonces vers /home/ubuntu/app/leboncoin_ads_scenic_20260315_143926.csv réussi.

Terminé : 111 annonces au total dans /home/ubuntu/app/leboncoin_ads_scenic_20260315_143926.csv
INFO: Model fallback : scenic
INFO: Schéma initialisé dans /home/ubuntu/app/db/lbc.sqlite
════════════════════════════════════════════════════════════
  📦 MIGRATION CSV → SQLite unifié
════════════════════════════════════════════════════════════

📂 leboncoin_ads_scenic_20260315_143926.csv
   ✅ 111 lus, 111 insérés, 0 ignorés, 0 erreurs

────────────────────────────────────────────────────────────
  📊 TOTAL : 111 lus, 111 insérés
  💾 Base : /home/ubuntu/app/db/lbc.sqlite
  📌 5202 annonces en base
════════════════════════════════════════════════════════════
INFO: 111 list_id lus dans le CSV.
INFO: 38 annonces actives en base pour renault scenic.
INFO: 29 annonce(s) marquées indisponibles.
════════════════════════════════════════════════════════════
  CHECK DISPONIBILITÉ
  CSV   : leboncoin_ads_scenic_20260315_143926.csv
  Brand : renault  |  Modèle : scenic
════════════════════════════════════════════════════════════

  Annonces dans le CSV    : 111
  Annonces actives en DB  : 38
  Absentes du crawl       : 29
  Marquées indisponibles  : 29
════════════════════════════════════════════════════════════

  Vérification :
  SELECT list_id, available, unavailable_detected_at FROM ads WHERE available = 0;
══════════════════════════════════════════════════════════════════════
  🚗 ANALYSEUR LEBONCOIN - Analyses Descriptives Véhicules
══════════════════════════════════════════════════════════════════════
  💾 Base SQLite       : /home/ubuntu/app/db/lbc.sqlite
  📁 Dossier figures  : /home/ubuntu/app/stats/scenic/figures
  🔍 Modèle filtré    : scenic
  📊 Graphiques       : Non
══════════════════════════════════════════════════════════════════════
📂 Chargement depuis SQLite : /home/ubuntu/app/db/lbc.sqlite
   ✅ 60 annonces chargées (modèle 'scenic')

======================================================================
📊 EXPLORATION DES DONNÉES BRUTES
======================================================================

📌 Nombre total d'annonces : 60

📋 Premières lignes (colonnes parsées) :
      list_id                                            subject  price_eur  year_model  mileage_km     fuel    brand   model owner_type first_publication_date
0  3135059984  RENAULT GRAND SCENIC III TCe 130 Energy Life 7 pl       5990        2015      124000  essence  renault  scenic        pro    2026-01-27 11:06:00
1  3137691401             Renault Scénic 1.2 tce 130 ch 7 places       6490        2016      123000  essence  renault  scenic        pro    2026-02-01 15:40:56
2  3152665824                                    Grand scenic IV      11000        2018      150000   diesel  renault  scenic    private    2026-02-28 11:49:15
3  3148939604                                     Grand scenic 3      10500        2016       96867   diesel  renault  scenic    private    2026-02-21 17:16:06
4  3153227066                             Renault grand scenic 3       9300        2015      122000   diesel  renault  scenic    private    2026-03-01 11:07:45

❓ Valeurs manquantes par colonne clé :
   list_id                        :    0 manquantes (0.0%)
   subject                        :    0 manquantes (0.0%)
   price_eur                      :    0 manquantes (0.0%)
   year_model                     :    0 manquantes (0.0%)
   mileage_km                     :    0 manquantes (0.0%)
   fuel                           :    0 manquantes (0.0%)
   brand                          :    0 manquantes (0.0%)
   model                          :    0 manquantes (0.0%)
   owner_type                     :    0 manquantes (0.0%)
   first_publication_date         :    0 manquantes (0.0%)

📅 Période couverte :
   Première publication : 2025-03-05 12:15:00
   Dernière publication : 2026-03-14 16:41:54
   Durée : 374 jours

👤 Répartition par type de vendeur :
   private         :   37 (61.7%)
   pro             :   23 (38.3%)

⛽ Répartition par carburant :
   diesel               :   35 (58.3%)
   essence              :   24 (40.0%)
   autre                :    1 (1.7%)

🏭 Top 10 marques :
   renault              :   60 (100.0%)

🧮 Création des colonnes calculées...
   ✅ Colonnes ajoutées : age_years, km_per_year, price_per_km

🧹 Nettoyage des données...

   📊 Rapport de nettoyage :
      prix_aberrants            :    0 lignes supprimées
      km_aberrants              :    0 lignes supprimées
      annee_aberrante           :    0 lignes supprimées
      age_negatif               :    0 lignes supprimées
      ─────────────────────────────────────────────
      Total supprimé          :    0
      Restantes               :   60 / 60
      Pourcentage conservé    : 100.0%

🔍 Détection des outliers (méthode IQR)...
   price_eur            :    0 outliers (0.0%)
      Bornes IQR : [5,405 ; 13,225]
   mileage_km           :    4 outliers (6.7%)
      Bornes IQR : [87,112 ; 171,812]
   age_years            :    0 outliers (0.0%)
      Bornes IQR : [6 ; 14]

   📌 Total d'annonces outliers (au moins 1 variable) : 4 (6.7%)
   ⚠️  Les outliers sont identifiés mais NON supprimés.

======================================================================
📊 RÉSUMÉ APRÈS NETTOYAGE
======================================================================
   Nombre d'annonces restantes : 60
   Dont outliers identifiés    : 4
   Annonces non-outliers       : 56

   Plages de valeurs :
      price_eur            : [     5,990 ;     11,000]  (moy:      9,214)
      mileage_km           : [     3,000 ;    150,000]  (moy:    124,177)
      year_model           : [     2,015 ;      2,019]  (moy:      2,016)
      age_years            : [         7 ;         11]  (moy:         10)
      km_per_year          : [       273 ;     18,750]  (moy:     12,556)

   💾 60 annonces enrichies persistées dans SQLite

🔎 Détection des annonces suspectes...
   ⚠️  2 signaux de suspicion détectés
      km_trop_bas_essence: 2
   💾 2 signaux persistés dans SQLite

======================================================================
📊 STATISTIQUES DESCRIPTIVES GLOBALES
======================================================================

📊 Tableau récapitulatif (valeurs brutes) :
   Variable  Count          Mean        Median          Std         Min            Q1       Q3      Max          IQR
  price_eur     60   9214.000000   9670.000000  1425.852347 5990.000000   8337.500000  10292.5  11000.0  1955.000000
 mileage_km     60 124177.066667 130800.000000 27508.394834 3000.000000 118875.000000 140050.0 150000.0 21175.000000
 year_model     60   2016.000000   2016.000000     0.882984 2015.000000   2015.000000   2017.0   2019.0     2.000000
  age_years     60     10.000000     10.000000     0.882984    7.000000      9.000000     11.0     11.0     2.000000
km_per_year     60  12555.754697  12936.363636  3085.974503  272.727273  11443.181818  14612.0  18750.0  3168.818182

📊 Tableau formaté :
   Variable Count     Mean   Median       Std   Min       Q1       Q3      Max     IQR
  price_eur    60    9,214    9,670  1,425.85 5,990    8,338   10,292   11,000   1,955
 mileage_km    60  124,177  130,800 27,508.39 3,000  118,875  140,050  150,000  21,175
 year_model    60    2,016    2,016      0.88 2,015    2,015    2,017    2,019       2
  age_years    60     10.0     10.0      0.88   7.0      9.0     11.0     11.0     2.0
km_per_year    60 12,555.8 12,936.4  3,085.97 272.7 11,443.2 14,612.0 18,750.0 3,168.8

📝 INTERPRÉTATION DES STATISTIQUES :
--------------------------------------------------

   📌 price_eur :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Faible dispersion (CV = 15%, σ = 1,426)
      → Étendue : [5,990 ; 11,000] (IQR = 1,955)

   📌 mileage_km :
      → Distribution asymétrique GAUCHE (moyenne 124,177 < médiane 130,800)
        Quelques valeurs basses tirent la moyenne vers le bas.
      → Faible dispersion (CV = 22%, σ = 27,508)
      → Étendue : [3,000 ; 150,000] (IQR = 21,175)

   📌 year_model :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Faible dispersion (CV = 0%, σ = 1)
      → Étendue : [2,015 ; 2,019] (IQR = 2)

   📌 age_years :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Faible dispersion (CV = 9%, σ = 1)
      → Étendue : [7 ; 11] (IQR = 2)

   📌 km_per_year :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Faible dispersion (CV = 25%, σ = 3,086)
      → Étendue : [273 ; 18,750] (IQR = 3,169)

======================================================================
📊 DISTRIBUTIONS PAR CATÉGORIES
======================================================================

📊 Prix moyen par année modèle...

   📋 Table : Prix par année modèle
   ---------------------------------------------------------------------------
    Année    Nb   Prix moy   Prix méd   Décote %
   ---------------------------------------------------------------------------
     2015    19      8,485      8,450        N/A
     2016    25      8,946      8,990      -5.4%
     2017    14     10,427     10,495     -16.6%

   📌 Décote annuelle moyenne : -11.0%

📊 Prix moyen par tranche de kilométrage...

   📋 Table : Prix par tranche de km
   ----------------------------------------------------------------------
        Tranche    Nb   Prix moy   Prix méd      Var %
   ----------------------------------------------------------------------
          0-20k     1     10,300     10,300        N/A
         20-50k     1      9,990      9,990      -3.0%
         50-80k     1      8,990      8,990     -10.0%
        80-120k    13      9,768     10,000      +8.7%
       120-160k    44      9,013      9,250      -7.7%

📊 Prix moyen par âge...

   📋 Table : Prix par âge
   -----------------------------------------------------------------
     Âge    Nb   Prix moy   Décote %
   -----------------------------------------------------------------
       9    14     10,427        N/A
      10    25      8,946     -14.2%
      11    19      8,485      -5.1%

📊 Prix par type de carburant...

   📋 Table : Prix par carburant
   ----------------------------------------------------------------------
         Carburant    Nb   Prix moy   Prix méd
   ----------------------------------------------------------------------
            diesel    35      9,631      9,900
           essence    24      8,578      8,225

   📌 Carburant avec prix médian le plus élevé : diesel (9,900€)
   📌 Carburant avec prix médian le plus bas : essence (8,225€)

📊 Prix par type de vendeur...

   📋 Table : Prix par type de vendeur
   ------------------------------------------------------------
         Type    Nb   Prix moy   Prix méd
   ------------------------------------------------------------
      private    37      9,374      9,900
          pro    23      8,957      8,990

   📌 Test Mann-Whitney (médiane) : p = 0.3734
   ❌ Différence NON significative (p >= 0.05)
   📌 Écart médian Pro - Particulier : -910€

📊 Prix par modèle de véhicule...
   ℹ️ Un seul modèle détecté (scenic) — comparaison non applicable

   ✅ Toutes les distributions par catégorie sauvegardées dans /home/ubuntu/app/stats/scenic/figures

======================================================================
📊 ANALYSES AVANCÉES - SEUILS PSYCHOLOGIQUES
======================================================================

📊 Analyse des seuils de kilométrage...

   📋 Taux de décote par tranche de 10k km :
   --------------------------------------------------
       100k : décote   -3.0% (n=  6)
       110k : décote  -11.5% (n=  4)
       120k : décote   16.1% (n= 13) ⚡
       130k : décote   -0.7% (n= 14)
       140k : décote    0.1% (n= 14)
       150k : décote  -10.2% (n=  3)

   📌 Seuils où la décote s'accélère (> 8%) :
      → 120k km : 16.1%
   ✅ Sauvegardé : /home/ubuntu/app/stats/scenic/figures/seuils_km.png

📊 Analyse des seuils d'âge...

   📋 Taux de décote par année d'âge :
   ---------------------------------------------
    10 ans : décote   14.2% (n= 25)
    11 ans : décote    5.1% (n= 19)

   📌 Décote rapide (> 10% par an) :
      → 10 ans : 14.2%
   ✅ Sauvegardé : /home/ubuntu/app/stats/scenic/figures/seuils_age.png

======================================================================
📊 IDENTIFICATION DES BONNES AFFAIRES
======================================================================

📊 Construction du modèle de prix attendu...
   📌 Modèle : prix = -915.35 × âge + -0.0113 × km + 19,771
   📌 R² = 0.333
📊 Calcul des écarts de prix...

   📋 Classification des annonces :
      🌟 Excellente affaire        :    5 (  8.3%)
      👍 Bonne affaire             :    8 ( 13.3%)
      📊 Prix marché               :   36 ( 60.0%)
      💰 Cher                      :    8 ( 13.3%)
      🔴 Très cher                 :    3 (  5.0%)
📊 Graphique : Distribution des écarts de prix...
   ✅ Sauvegardé : /home/ubuntu/app/stats/scenic/figures/ecarts_prix.png

   🌟 TOP 10 MEILLEURES AFFAIRES (écart le plus négatif) :
   ====================================================================================================
    1. [3137691401] Renault Scénic 1.2 tce 130 ch 7 places
       Prix:    6,490€ | Attendu:    9,227€ | Écart:  -29.7% | Année: 2016 | Km: 123,000
    2. [3150143056] RENAULT GRAND SCENIC III TCe 130 Energy Bose Editi
       Prix:    6,700€ | Attendu:    9,425€ | Écart:  -28.9% | Année: 2016 | Km: 105,500
    3. [3135059984] RENAULT GRAND SCENIC III TCe 130 Energy Life 7 pl
       Prix:    5,990€ | Attendu:    8,301€ | Écart:  -27.8% | Année: 2015 | Km: 124,000
    4. [3150569455] Renault Grand Scénic III 1.2 TCe Limited – 7 place
       Prix:    6,200€ | Attendu:    8,086€ | Écart:  -23.3% | Année: 2015 | Km: 143,000
    5. [3106671865] Renault Grand Scenic III TCe 130 / Energy BOSE Édi
       Prix:    6,490€ | Attendu:    8,196€ | Écart:  -20.8% | Année: 2015 | Km: 133,274
    6. [3135575159] RENAULT SCENIC (128 euros/mois) III Grand Limited 
       Prix:    7,490€ | Attendu:    9,227€ | Écart:  -18.8% | Année: 2016 | Km: 123,000
    7. [3161696867] Renault sceniciii 1.2 tce 130ch energy bose euro6 
       Prix:    7,490€ | Attendu:    9,049€ | Écart:  -17.2% | Année: 2016 | Km: 138,764
    8. [3094127990] Renault Grand Scenic III 1.2 TCE 130ch Limited - 7
       Prix:    6,750€ | Attendu:    8,102€ | Écart:  -16.7% | Année: 2015 | Km: 141,600
    9. [3152091076] Renault scenic 3 2016
       Prix:    7,600€ | Attendu:    8,934€ | Écart:  -14.9% | Année: 2016 | Km: 149,000
   10. [3151439293] Renault GRAND SCENIC III 1.2 TCE 130CH ENERGY BOSE
       Prix:    6,990€ | Attendu:    8,194€ | Écart:  -14.7% | Année: 2015 | Km: 133,451

   🔴 TOP 10 ANNONCES SURÉVALUÉES (écart le plus positif) :
   ====================================================================================================
    1. [3157624794] Renault GRAND SCENIC III 1.5 DCI 110CH LIMITED 7 P
       Prix:   10,990€ | Attendu:    8,416€ | Écart:  +30.6% | Année: 2015 | Km: 113,824
    2. [3152444580] Renault grand scenic 3
       Prix:    9,900€ | Attendu:    8,013€ | Écart:  +23.6% | Année: 2015 | Km: 149,500
    3. [3132096185] Vente de Voiture
       Prix:   10,000€ | Attendu:    8,233€ | Écart:  +21.5% | Année: 2015 | Km: 130,000
    4. [3139225311] Renault Grand Scenic 1.5 dCi 110ch Limited 7 place
       Prix:    9,990€ | Attendu:    8,333€ | Écart:  +19.9% | Année: 2015 | Km: 121,103
    5. [3145495823] Vends grand renault scenic
       Prix:   10,000€ | Attendu:    8,346€ | Écart:  +19.8% | Année: 2015 | Km: 120,000
    6. [3155822514] Renault grand Scénic
       Prix:   10,000€ | Attendu:    8,346€ | Écart:  +19.8% | Année: 2015 | Km: 120,000
    7. [3113907355] RENAULT SCENIC III BUSINESS dCi 110 Energy eco2 Bu
       Prix:   10,980€ | Attendu:    9,318€ | Écart:  +17.8% | Année: 2016 | Km: 115,000
    8. [3149040831] Grand scenic 3 1L5 DCI 110 edc business 7 places
       Prix:   10,500€ | Attendu:    9,278€ | Écart:  +13.2% | Année: 2016 | Km: 118,500
    9. [3153227066] Renault grand scenic 3
       Prix:    9,300€ | Attendu:    8,323€ | Écart:  +11.7% | Année: 2015 | Km: 122,000
   10. [3123448869] Renault SCENIC 1.6l 130cv Bose Edition
       Prix:    9,950€ | Attendu:    8,922€ | Écart:  +11.5% | Année: 2016 | Km: 150,000

======================================================================
📊 TABLEAU DE BORD RÉCAPITULATIF
======================================================================

   ┌──────────────────────────────────────────────────┐
   │ Nombre total d'annonces      │                 60 │
   │ Prix moyen                   │            9,214 € │
   │ Prix médian                  │            9,670 € │
   │ Km moyen                     │         124,177 km │
   │ Km médian                    │         130,800 km │
   │ Âge moyen                    │           10.0 ans │
   │ Âge médian                   │           10.0 ans │
   │ Km/an moyen                  │       12,556 km/an │
   └──────────────────────────────────────────────────┘

   ✅ Sauvegardé : /home/ubuntu/app/stats/scenic/figures/dashboard_kpis.png

======================================================================
💡 INSIGHTS PRINCIPAUX
======================================================================

   🎯 Âge optimal d'achat : ~11 ans (meilleur rapport prix/ancienneté)
   ⚡ Seuil km critique : la décote s'accélère le plus autour de (40000, 60000]
   ⛽ Carburant tenant le mieux sa valeur : diesel (prix/âge le plus élevé)
   👤 Les particuliers vendent 9.2% plus cher que les pros (médiane)
   🔄 Km/an médian : 12,936 km → Profil dominant : 10-15k (Normal)
   🏭 Top 3 marques = 100% du marché : renault (60)

======================================================================
💡 RECOMMANDATIONS
======================================================================

   🛒 POUR UN ACHETEUR :
   --------------------------------------------------
   • Sweet spot : véhicules de 5-8 ans, 60-120k km
     Prix moyen dans cette fourchette : 11,000€
     (1 annonces disponibles)
   • Prix médian du marché : 9,670€ → cible < 8,703€ pour une bonne affaire
   • Privilégier les annonces de particuliers si budget serré
   • Vérifier le km/an : < 15 000 km/an = usage normal

   💰 POUR UN VENDEUR :
   --------------------------------------------------
   • Prix médian du marché : 9,670€
   • Positionner légèrement sous le marché pour vendre vite (-5% à -10%)
   • Les véhicules < 130,800 km se vendent mieux
   • Mettre en avant un faible km/an si applicable

   🎯 SEGMENTS DE MARCHÉ :
   --------------------------------------------------
   • Budget (15 annonces) :
     Prix : 5,990€ - 8,000€
     Âge moyen : 10.6 ans | Km moyen : 131,081
   • Milieu de gamme (30 annonces) :
     Prix : 8,450€ - 10,290€
     Âge moyen : 10.1 ans | Km moyen : 124,357
   • Premium (15 annonces) :
     Prix : 10,300€ - 11,000€
     Âge moyen : 9.3 ans | Km moyen : 116,913

======================================================================
💾 EXPORT DES RÉSULTATS EN BASE SQLite
======================================================================
   📌 Run #28 créé
   🔍 Modèle : scenic
   📎 60 annonces liées au run
   ✅ Stats descriptives : 5 variables
   ✅ Modèle régression : 2 coefficients (R²=0.333)
   ✅ Référentiel prix : 11 segments
   ✅ Classifications deal : 60 annonces

   💾 Tout exporté dans /home/ubuntu/app/db/lbc.sqlite

══════════════════════════════════════════════════════════════════════
  ✅ ANALYSE TERMINÉE en 3.7 secondes
  📊 60 annonces analysées  (run #28)
  🔍 Modèle           : scenic
  💾 Base SQLite      : /home/ubuntu/app/db/lbc.sqlite
  📁 Figures          : /home/ubuntu/app/stats/scenic/figures
══════════════════════════════════════════════════════════════════════
Récupération de la page 1/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=1
  → 35 annonces récupérées (total en mémoire: 35)
Export de 35 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 2/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=2
  → 35 annonces récupérées (total en mémoire: 70)
Export de 70 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 3/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=3
  → 35 annonces récupérées (total en mémoire: 105)
Export de 105 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 4/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=4
  → 35 annonces récupérées (total en mémoire: 140)
Export de 140 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 5/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=5
  → 35 annonces récupérées (total en mémoire: 175)
Export de 175 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 6/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=6
  → 35 annonces récupérées (total en mémoire: 210)
Export de 210 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 7/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=7
  → 35 annonces récupérées (total en mémoire: 245)
Export de 245 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 8/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=8
  → 35 annonces récupérées (total en mémoire: 280)
Export de 280 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 9/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=9
  → 35 annonces récupérées (total en mémoire: 315)
Export de 315 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 10/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=10
  → 35 annonces récupérées (total en mémoire: 350)
Export de 350 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 11/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=11
  → 35 annonces récupérées (total en mémoire: 385)
Export de 385 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 12/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=12
  → 35 annonces récupérées (total en mémoire: 420)
Export de 420 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 13/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=13
  → 35 annonces récupérées (total en mémoire: 455)
Export de 455 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 14/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=14
  → 35 annonces récupérées (total en mémoire: 490)
Export de 490 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 15/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=15
  → 35 annonces récupérées (total en mémoire: 525)
Export de 525 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 16/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=16
  → 35 annonces récupérées (total en mémoire: 560)
Export de 560 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 17/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=17
  → 35 annonces récupérées (total en mémoire: 595)
Export de 595 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 18/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=18
  → 35 annonces récupérées (total en mémoire: 630)
Export de 630 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 19/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=19
  → 35 annonces récupérées (total en mémoire: 665)
Export de 665 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 20/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=20
  → 35 annonces récupérées (total en mémoire: 700)
Export de 700 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 21/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=21
  → 35 annonces récupérées (total en mémoire: 735)
Export de 735 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 22/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=22
  → 35 annonces récupérées (total en mémoire: 770)
Export de 770 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 23/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=23
  → 35 annonces récupérées (total en mémoire: 805)
Export de 805 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 24/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=24
  → 35 annonces récupérées (total en mémoire: 840)
Export de 840 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 25/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=25
  → 35 annonces récupérées (total en mémoire: 875)
Export de 875 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 26/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=26
  → 35 annonces récupérées (total en mémoire: 910)
Export de 910 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 27/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=27
  → 35 annonces récupérées (total en mémoire: 945)
Export de 945 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 28/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=28
  → 35 annonces récupérées (total en mémoire: 980)
Export de 980 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 29/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=29
  → 35 annonces récupérées (total en mémoire: 1015)
Export de 1015 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 30/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=30
  → 35 annonces récupérées (total en mémoire: 1050)
Export de 1050 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.
Récupération de la page 31/31 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_brand=PEUGEOT&seats=999999&u_car_model=PEUGEOT_5008&page=31
  → 16 annonces récupérées (total en mémoire: 1066)
Export de 1066 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv réussi.

Terminé : 1066 annonces au total dans /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv
INFO: Model fallback : 5008
INFO: Schéma initialisé dans /home/ubuntu/app/db/lbc.sqlite
════════════════════════════════════════════════════════════
  📦 MIGRATION CSV → SQLite unifié
════════════════════════════════════════════════════════════

📂 leboncoin_ads_5008_20260315_143942.csv
   ✅ 1066 lus, 1066 insérés, 0 ignorés, 0 erreurs

────────────────────────────────────────────────────────────
  📊 TOTAL : 1066 lus, 1066 insérés
  💾 Base : /home/ubuntu/app/db/lbc.sqlite
  📌 5434 annonces en base
════════════════════════════════════════════════════════════
INFO: 1052 list_id lus dans le CSV.
INFO: 1294 annonces actives en base pour peugeot 5008.
INFO: 242 annonce(s) marquées indisponibles.
════════════════════════════════════════════════════════════
  CHECK DISPONIBILITÉ
  CSV   : leboncoin_ads_5008_20260315_143942.csv
  Brand : peugeot  |  Modèle : 5008
════════════════════════════════════════════════════════════

  Annonces dans le CSV    : 1052
  Annonces actives en DB  : 1294
  Absentes du crawl       : 242
  Marquées indisponibles  : 242
════════════════════════════════════════════════════════════

  Vérification :
  SELECT list_id, available, unavailable_detected_at FROM ads WHERE available = 0;
══════════════════════════════════════════════════════════════════════
  🚗 ANALYSEUR LEBONCOIN - Analyses Descriptives Véhicules
══════════════════════════════════════════════════════════════════════
  💾 Base SQLite       : /home/ubuntu/app/db/lbc.sqlite
  📁 Dossier figures  : /home/ubuntu/app/stats/5008/figures
  🔍 Modèle filtré    : 5008
  📊 Graphiques       : Non
══════════════════════════════════════════════════════════════════════
📂 Chargement depuis SQLite : /home/ubuntu/app/db/lbc.sqlite
   ✅ 1316 annonces chargées (modèle '5008')

======================================================================
📊 EXPLORATION DES DONNÉES BRUTES
======================================================================

📌 Nombre total d'annonces : 1316

📋 Premières lignes (colonnes parsées) :
      list_id                                                        subject  price_eur  year_model  mileage_km     fuel    brand model owner_type first_publication_date
0  3105496930                            Peugeot 5008 1.6 HDI 115 ALLURE 7PL       9990        2016      145460   diesel  peugeot  5008        pro    2025-12-03 14:49:00
1  3150966962                  PEUGEOT 5008 1.6 BlueHDi 120ch SS BVM6 Allure      10990        2015      131475   diesel  peugeot  5008        pro    2026-02-25 09:13:36
2  3076705800          PEUGEOT 5008 1.6 HDi 120ch BVM6 Style - SUIVI COMPLET       8990        2015      142500   diesel  peugeot  5008        pro    2025-10-18 09:09:00
3  3035013147                 Peugeot 5008 1.6 HDI 115CH FAP ALLURE 7 PLACES       8990        2015      144500   diesel  peugeot  5008        pro    2025-08-04 18:43:00
4  3138259074  Peugeot 5008 GENERATION-II 1.2 PURETECH 130 ALLURE START-STOP       5990        2016      105000  essence  peugeot  5008        pro    2026-02-02 14:34:28

❓ Valeurs manquantes par colonne clé :
   list_id                        :    0 manquantes (0.0%)
   subject                        :    0 manquantes (0.0%)
   price_eur                      :    0 manquantes (0.0%)
   year_model                     :    0 manquantes (0.0%)
   mileage_km                     :    0 manquantes (0.0%)
   fuel                           :    0 manquantes (0.0%)
   brand                          :    0 manquantes (0.0%)
   model                          :    0 manquantes (0.0%)
   owner_type                     :    0 manquantes (0.0%)
   first_publication_date         :    0 manquantes (0.0%)

📅 Période couverte :
   Première publication : 2024-06-06 10:10:00
   Dernière publication : 2026-03-15 14:46:16
   Durée : 647 jours

👤 Répartition par type de vendeur :
   private         :  826 (62.8%)
   pro             :  490 (37.2%)

⛽ Répartition par carburant :
   diesel               : 1199 (91.1%)
   essence              :  116 (8.8%)
   hybride              :    1 (0.1%)

🏭 Top 10 marques :
   peugeot              : 1316 (100.0%)

🧮 Création des colonnes calculées...
   ✅ Colonnes ajoutées : age_years, km_per_year, price_per_km

🧹 Nettoyage des données...

   📊 Rapport de nettoyage :
      prix_aberrants            :    2 lignes supprimées
      km_aberrants              :    0 lignes supprimées
      annee_aberrante           :    0 lignes supprimées
      age_negatif               :    0 lignes supprimées
      ─────────────────────────────────────────────
      Total supprimé          :    2
      Restantes               : 1314 / 1316
      Pourcentage conservé    : 99.8%

🔍 Détection des outliers (méthode IQR)...
   price_eur            :    0 outliers (0.0%)
      Bornes IQR : [15 ; 12,775]
   mileage_km           :   30 outliers (2.3%)
      Bornes IQR : [56,952 ; 349,829]
   age_years            :    0 outliers (0.0%)
      Bornes IQR : [5 ; 21]

   📌 Total d'annonces outliers (au moins 1 variable) : 30 (2.3%)
   ⚠️  Les outliers sont identifiés mais NON supprimés.

======================================================================
📊 RÉSUMÉ APRÈS NETTOYAGE
======================================================================
   Nombre d'annonces restantes : 1314
   Dont outliers identifiés    : 30
   Annonces non-outliers       : 1284

   Plages de valeurs :
      price_eur            : [       700 ;     11,000]  (moy:      6,404)
      mileage_km           : [         1 ;    410,000]  (moy:    203,919)
      year_model           : [     2,009 ;      2,021]  (moy:      2,013)
      age_years            : [         5 ;         17]  (moy:         13)
      km_per_year          : [         0 ;     53,776]  (moy:     16,131)

   💾 1314 annonces enrichies persistées dans SQLite

🔎 Détection des annonces suspectes...
   ⚠️  17 signaux de suspicion détectés
      km_trop_bas_essence: 1
      km_trop_bas_diesel: 16
   💾 17 signaux persistés dans SQLite

======================================================================
📊 STATISTIQUES DESCRIPTIVES GLOBALES
======================================================================

📊 Tableau récapitulatif (valeurs brutes) :
   Variable  Count          Mean   Median          Std         Min            Q1            Q3           Max          IQR
  price_eur   1314   6404.006849   5990.0  2277.915462  700.000000   4800.000000   7990.000000  11000.000000  3190.000000
 mileage_km   1314 203919.361492 203000.0 57774.790719    1.000000 166780.750000 240000.000000 410000.000000 73219.250000
 year_model   1314   2013.039574   2013.0     2.479765 2009.000000   2011.000000   2015.000000   2021.000000     4.000000
  age_years   1314     12.960426     13.0     2.479765    5.000000     11.000000     15.000000     17.000000     4.000000
km_per_year   1314  16131.190514  15625.0  5036.057098    0.111111  13102.041667  18581.602564  53776.166667  5479.560897

📊 Tableau formaté :
   Variable Count     Mean   Median       Std   Min       Q1       Q3      Max     IQR
  price_eur 1,314    6,404    5,990  2,277.92   700    4,800    7,990   11,000   3,190
 mileage_km 1,314  203,919  203,000 57,774.79     1  166,781  240,000  410,000  73,219
 year_model 1,314    2,013    2,013      2.48 2,009    2,011    2,015    2,021       4
  age_years 1,314     13.0     13.0      2.48   5.0     11.0     15.0     17.0     4.0
km_per_year 1,314 16,131.2 15,625.0  5,036.06   0.1 13,102.0 18,581.6 53,776.2 5,479.6

📝 INTERPRÉTATION DES STATISTIQUES :
--------------------------------------------------

   📌 price_eur :
      → Distribution asymétrique DROITE (moyenne 6,404 > médiane 5,990)
        Quelques valeurs élevées tirent la moyenne vers le haut.
      → Dispersion MODÉRÉE (CV = 36%, σ = 2,278)
      → Étendue : [700 ; 11,000] (IQR = 3,190)

   📌 mileage_km :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Dispersion MODÉRÉE (CV = 28%, σ = 57,775)
      → Étendue : [1 ; 410,000] (IQR = 73,219)

   📌 year_model :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Faible dispersion (CV = 0%, σ = 2)
      → Étendue : [2,009 ; 2,021] (IQR = 4)

   📌 age_years :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Faible dispersion (CV = 19%, σ = 2)
      → Étendue : [5 ; 17] (IQR = 4)

   📌 km_per_year :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Dispersion MODÉRÉE (CV = 31%, σ = 5,036)
      → Étendue : [0 ; 53,776] (IQR = 5,480)

======================================================================
📊 DISTRIBUTIONS PAR CATÉGORIES
======================================================================

📊 Prix moyen par année modèle...

   📋 Table : Prix par année modèle
   ---------------------------------------------------------------------------
    Année    Nb   Prix moy   Prix méd   Décote %
   ---------------------------------------------------------------------------
     2009    19      4,933      4,990        N/A
     2010   193      4,757      4,700      +3.6%
     2011   226      4,977      5,000      -4.6%
     2012   207      5,532      5,500     -11.2%
     2013   164      5,974      5,845      -8.0%
     2014   134      7,074      6,995     -18.4%
     2015   120      7,935      7,990     -12.2%
     2016   134      8,080      7,994      -1.8%
     2017    46      9,663     10,000     -19.6%
     2018    35     10,347     10,700      -7.1%
     2019    22     10,462     10,490      -1.1%
     2020    13      9,535     10,000      +8.9%

   📌 Décote annuelle moyenne : -6.5%

📊 Prix moyen par tranche de kilométrage...

   📋 Table : Prix par tranche de km
   ----------------------------------------------------------------------
        Tranche    Nb   Prix moy   Prix méd      Var %
   ----------------------------------------------------------------------
          0-20k    11      5,923      4,800        N/A
         20-50k     5      5,618      5,000      -5.1%
         50-80k     5      9,314      9,450     +65.8%
        80-120k    46      8,880      9,490      -4.7%
       120-160k   205      8,654      9,000      -2.5%
       160-200k   347      7,114      6,990     -17.8%
          200k+   695      5,214      4,999     -26.7%

📊 Prix moyen par âge...

   📋 Table : Prix par âge
   -----------------------------------------------------------------
     Âge    Nb   Prix moy   Décote %
   -----------------------------------------------------------------
       6    13      9,535        N/A
       7    22     10,462      +9.7%
       8    35     10,347      -1.1%
       9    46      9,663      -6.6%
      10   134      8,080     -16.4%
      11   120      7,935      -1.8%
      12   134      7,074     -10.9%
      13   164      5,974     -15.5%
      14   207      5,532      -7.4%
      15   226      4,977     -10.0%
      16   193      4,757      -4.4%
      17    19      4,933      +3.7%

   📌 La décote ralentit significativement à 8 ans

📊 Prix par type de carburant...

   📋 Table : Prix par carburant
   ----------------------------------------------------------------------
         Carburant    Nb   Prix moy   Prix méd
   ----------------------------------------------------------------------
            diesel  1198      6,244      5,990
           essence   115      8,030      8,800

   📌 Carburant avec prix médian le plus élevé : essence (8,800€)
   📌 Carburant avec prix médian le plus bas : diesel (5,990€)

📊 Prix par type de vendeur...

   📋 Table : Prix par type de vendeur
   ------------------------------------------------------------
         Type    Nb   Prix moy   Prix méd
   ------------------------------------------------------------
      private   825      5,974      5,500
          pro   489      7,129      6,699

   📌 Test Mann-Whitney (médiane) : p = 0.0000
   ✅ Différence SIGNIFICATIVE (p < 0.05)
   📌 Écart médian Pro - Particulier : +1,199€

📊 Prix par modèle de véhicule...
   ℹ️ Un seul modèle détecté (5008) — comparaison non applicable

   ✅ Toutes les distributions par catégorie sauvegardées dans /home/ubuntu/app/stats/5008/figures

======================================================================
📊 ANALYSES AVANCÉES - SEUILS PSYCHOLOGIQUES
======================================================================

📊 Analyse des seuils de kilométrage...

   📋 Taux de décote par tranche de 10k km :
   --------------------------------------------------
        20k : décote   20.5% (n=  2) ⚡
        30k : décote   11.5% (n=  2) ⚡
        60k : décote -152.7% (n=  2)
        70k : décote   25.0% (n=  2) ⚡
        80k : décote   -9.5% (n=  4)
        90k : décote   -3.0% (n=  9)
       100k : décote   -2.6% (n= 14)
       110k : décote    9.0% (n= 19)
       120k : décote  -10.9% (n= 32)
       130k : décote   -1.3% (n= 43)
       140k : décote   10.9% (n= 58) ⚡
       150k : décote    6.4% (n= 72)
       160k : décote    0.9% (n= 83)
       170k : décote    5.7% (n= 95)
       180k : décote    9.0% (n= 81)
       190k : décote    5.0% (n= 88)
       200k : décote    1.5% (n= 91)
       210k : décote    2.4% (n=100)
       220k : décote    5.8% (n= 94)
       230k : décote    9.5% (n= 74)
       240k : décote   -0.5% (n= 87)
       250k : décote    3.3% (n= 49)
       260k : décote   13.3% (n= 50) ⚡
       270k : décote    8.1% (n= 34)
       280k : décote  -17.4% (n= 22)
       290k : décote   26.4% (n= 22) ⚡
      300k+ : décote    3.1% (n= 72)

   📌 Seuils où la décote s'accélère (> 8%) :
      → 20k km : 20.5%
      → 30k km : 11.5%
      → 70k km : 25.0%
      → 110k km : 9.0%
      → 140k km : 10.9%
      → 180k km : 9.0%
      → 230k km : 9.5%
      → 260k km : 13.3%
      → 270k km : 8.1%
      → 290k km : 26.4%
   ✅ Sauvegardé : /home/ubuntu/app/stats/5008/figures/seuils_km.png

📊 Analyse des seuils d'âge...

   📋 Taux de décote par année d'âge :
   ---------------------------------------------
     7 ans : décote   -9.7% (n= 22) 🐢 LENTE
     8 ans : décote    1.1% (n= 35) 🐢 LENTE
     9 ans : décote    6.6% (n= 46)
    10 ans : décote   16.4% (n=134) ⚡ FORTE
    11 ans : décote    1.8% (n=120) 🐢 LENTE
    12 ans : décote   10.9% (n=134)
    13 ans : décote   15.5% (n=164) ⚡ FORTE
    14 ans : décote    7.4% (n=207)
    15 ans : décote   10.0% (n=226)
    16 ans : décote    4.4% (n=193)
    17 ans : décote   -3.7% (n= 19) 🐢 LENTE

   📌 Décote rapide (> 10% par an) :
      → 10 ans : 16.4%
      → 12 ans : 10.9%
      → 13 ans : 15.5%
      → 15 ans : 10.0%

   📌 Décote lente (< 5% par an) :
      → 7 ans : -9.7%
      → 8 ans : 1.1%
      → 11 ans : 1.8%
      → 16 ans : 4.4%
      → 17 ans : -3.7%
   ✅ Sauvegardé : /home/ubuntu/app/stats/5008/figures/seuils_age.png

======================================================================
📊 IDENTIFICATION DES BONNES AFFAIRES
======================================================================

📊 Construction du modèle de prix attendu...
   📌 Modèle : prix = -502.53 × âge + -0.0174 × km + 16,458
   📌 R² = 0.656
📊 Calcul des écarts de prix...

   📋 Classification des annonces :
      🌟 Excellente affaire        :  183 ( 13.9%)
      👍 Bonne affaire             :  190 ( 14.5%)
      📊 Prix marché               :  544 ( 41.4%)
      💰 Cher                      :  189 ( 14.4%)
      🔴 Très cher                 :  208 ( 15.8%)
📊 Graphique : Distribution des écarts de prix...
   ✅ Sauvegardé : /home/ubuntu/app/stats/5008/figures/ecarts_prix.png

   🌟 TOP 10 MEILLEURES AFFAIRES (écart le plus négatif) :
   ====================================================================================================
    1. [3098662962] Peugeot 5008 hdi
       Prix:    1,900€ | Attendu:    8,726€ | Écart:  -78.2% | Année: 2016 | Km: 155,900
    2. [3161987772] 5008 7 places
       Prix:    1,000€ | Attendu:    4,231€ | Écart:  -76.4% | Année: 2011 | Km: 270,000
    3. [3154103448] Vend Peugeot 5008 dans l etat
       Prix:    1,000€ | Attendu:    4,163€ | Écart:  -76.0% | Année: 2010 | Km: 245,000
    4. [3145452074] Peugeot 5008
       Prix:    1,000€ | Attendu:    3,744€ | Écart:  -73.3% | Année: 2012 | Km: 327,000
    5. [3151017355] Vends Peugeot 5008 a spécialiste
       Prix:    1,500€ | Attendu:    5,429€ | Écart:  -72.4% | Année: 2012 | Km: 230,000
    6. [3154289763] 5008 essence sur l'état
       Prix:    1,700€ | Attendu:    6,148€ | Écart:  -72.3% | Année: 2011 | Km: 159,660
    7. [3162058891] Peugeot 5008 1.6 HDi 112 2011 275k km – À réparer
       Prix:    1,300€ | Attendu:    4,145€ | Écart:  -68.6% | Année: 2011 | Km: 275,000
    8. [3142082258] 5008
       Prix:    1,200€ | Attendu:    3,818€ | Écart:  -68.6% | Année: 2012 | Km: 322,766
    9. [3136285352] 5008
       Prix:      700€ | Attendu:    2,166€ | Écart:  -67.7% | Année: 2010 | Km: 360,000
   10. [3139699840] Peugeot 5008 7 places
       Prix:    3,500€ | Attendu:   10,425€ | Écart:  -66.4% | Année: 2014 | Km: 175

   🔴 TOP 10 ANNONCES SURÉVALUÉES (écart le plus positif) :
   ====================================================================================================
    1. [3146000438] 5008 hdi
       Prix:    7,500€ | Attendu:    3,852€ | Écart:  +94.7% | Année: 2009 | Km: 234,000
    2. [3152738100] Peugeot 5008 2l hdi 150cv
       Prix:    8,000€ | Attendu:    4,465€ | Écart:  +79.2% | Année: 2010 | Km: 227,600
    3. [3126969597] Peugeot 5008
       Prix:    4,200€ | Attendu:    2,445€ | Écart:  +71.8% | Année: 2009 | Km: 315,000
    4. [3126598226] Peugeot 5008 1.6 hdi fap confort pack 7pl
       Prix:    7,990€ | Attendu:    4,658€ | Écart:  +71.5% | Année: 2010 | Km: 216,500
    5. [3155918327] Peugeot 5008
       Prix:    6,500€ | Attendu:    3,852€ | Écart:  +68.8% | Année: 2009 | Km: 234,000
    6. [3147840406] Peugeot 5008 1.6 hdi FAP Premium 7pls
       Prix:    6,990€ | Attendu:    4,146€ | Écart:  +68.6% | Année: 2010 | Km: 246,000
    7. [3157618424] Peugeot 5008
       Prix:    3,500€ | Attendu:    2,079€ | Écart:  +68.3% | Année: 2010 | Km: 365,000
    8. [3159646980] PEUGEOT 5008 2.0 HDI 163cv
       Prix:    7,500€ | Attendu:    4,474€ | Écart:  +67.7% | Année: 2012 | Km: 285,000
    9. [3129737643] 🚗 Peugeot 5008 1.6 HDi 110 Premium – 7 places
       Prix:   10,000€ | Attendu:    6,021€ | Écart:  +66.1% | Année: 2010 | Km: 138,000
   10. [3161182135] Peugeot 5008 Allure 2.0 hdi 150 7 places
       Prix:    9,000€ | Attendu:    5,431€ | Écart:  +65.7% | Année: 2010 | Km: 172,000

======================================================================
📊 TABLEAU DE BORD RÉCAPITULATIF
======================================================================

   ┌──────────────────────────────────────────────────┐
   │ Nombre total d'annonces      │              1,314 │
   │ Prix moyen                   │            6,404 € │
   │ Prix médian                  │            5,990 € │
   │ Km moyen                     │         203,919 km │
   │ Km médian                    │         203,000 km │
   │ Âge moyen                    │           13.0 ans │
   │ Âge médian                   │           13.0 ans │
   │ Km/an moyen                  │       16,131 km/an │
   └──────────────────────────────────────────────────┘

   ✅ Sauvegardé : /home/ubuntu/app/stats/5008/figures/dashboard_kpis.png

======================================================================
💡 INSIGHTS PRINCIPAUX
======================================================================

   🎯 Âge optimal d'achat : ~17 ans (meilleur rapport prix/ancienneté)
   ⚡ Seuil km critique : la décote s'accélère le plus autour de (40000, 60000]
   ⛽ Carburant tenant le mieux sa valeur : essence (prix/âge le plus élevé)
   👔 Les pros vendent 21.8% plus cher que les particuliers (médiane)
   🔄 Km/an médian : 15,625 km → Profil dominant : 15-25k (Intensif)
   🏭 Top 3 marques = 100% du marché : peugeot (1314)

======================================================================
💡 RECOMMANDATIONS
======================================================================

   🛒 POUR UN ACHETEUR :
   --------------------------------------------------
   • Sweet spot : véhicules de 5-8 ans, 60-120k km
     Prix moyen dans cette fourchette : 10,194€
     (7 annonces disponibles)
   • Prix médian du marché : 5,990€ → cible < 5,391€ pour une bonne affaire
   • Privilégier les annonces de particuliers si budget serré
   • Vérifier le km/an : < 15 000 km/an = usage normal

   💰 POUR UN VENDEUR :
   --------------------------------------------------
   • Prix médian du marché : 5,990€
   • Positionner légèrement sous le marché pour vendre vite (-5% à -10%)
   • Les véhicules < 203,000 km se vendent mieux
   • Mettre en avant un faible km/an si applicable

   🎯 SEGMENTS DE MARCHÉ :
   --------------------------------------------------
   • Budget (338 annonces) :
     Prix : 700€ - 4,800€
     Âge moyen : 14.8 ans | Km moyen : 253,947
   • Milieu de gamme (675 annonces) :
     Prix : 4,850€ - 7,990€
     Âge moyen : 13.3 ans | Km moyen : 199,727
   • Premium (301 annonces) :
     Prix : 7,997€ - 11,000€
     Âge moyen : 10.2 ans | Km moyen : 157,144

======================================================================
💾 EXPORT DES RÉSULTATS EN BASE SQLite
======================================================================
   📌 Run #29 créé
   🔍 Modèle : 5008
   📎 1314 annonces liées au run
   ✅ Stats descriptives : 5 variables
   ✅ Modèle régression : 2 coefficients (R²=0.656)
   ✅ Référentiel prix : 61 segments
   ✅ Classifications deal : 1314 annonces

   💾 Tout exporté dans /home/ubuntu/app/db/lbc.sqlite

══════════════════════════════════════════════════════════════════════
  ✅ ANALYSE TERMINÉE en 4.2 secondes
  📊 1314 annonces analysées  (run #29)
  🔍 Modèle           : 5008
  💾 Base SQLite      : /home/ubuntu/app/db/lbc.sqlite
  📁 Figures          : /home/ubuntu/app/stats/5008/figures
══════════════════════════════════════════════════════════════════════
============================================================
  CRAWL ALL — 7 modèle(s)
============================================================

[1/7] CLIO_4  (brand=renault, pages=41)
  URL: https://www.leboncoin.fr/recherche?category=2&text=clio%204&price=3000-9000&regd...
  $ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/crawler/leboncoin_search_export.py --output-file /home/ubuntu/app/leboncoin_ads.csv --pages 41 --model clio_4
  CSV : leboncoin_ads_clio_4_20260315_143543.csv
  $ /home/ubuntu/app/.venv/bin/python -m db.migrate_csv --input /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv --db /home/ubuntu/app/db/lbc.sqlite --model clio_4
  $ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/scripts/check_availability.py --csv /home/ubuntu/app/leboncoin_ads_clio_4_20260315_143543.csv --brand renault --model clio_4 --db /home/ubuntu/app/db/lbc.sqlite
  $ /home/ubuntu/app/.venv/bin/python -m stats.main --model clio_4 --skip-plots

[2/7] YARIS  (brand=toyota, pages=2)
  URL: https://www.leboncoin.fr/recherche?category=2&text=toyota%20yaris&price=3000-900...
  $ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/crawler/leboncoin_search_export.py --output-file /home/ubuntu/app/leboncoin_ads.csv --pages 2 --model yaris
  CSV : leboncoin_ads_yaris_20260315_143803.csv
  $ /home/ubuntu/app/.venv/bin/python -m db.migrate_csv --input /home/ubuntu/app/leboncoin_ads_yaris_20260315_143803.csv --db /home/ubuntu/app/db/lbc.sqlite --model yaris
  $ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/scripts/check_availability.py --csv /home/ubuntu/app/leboncoin_ads_yaris_20260315_143803.csv --brand toyota --model yaris --db /home/ubuntu/app/db/lbc.sqlite
  $ /home/ubuntu/app/.venv/bin/python -m stats.main --model yaris --skip-plots

[3/7] I20  (brand=hyundai, pages=4)
  URL: https://www.leboncoin.fr/recherche?category=2&text=i20&price=3000-9000&regdate=2...
  $ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/crawler/leboncoin_search_export.py --output-file /home/ubuntu/app/leboncoin_ads.csv --pages 4 --model i20
  CSV : leboncoin_ads_i20_20260315_143812.csv
  $ /home/ubuntu/app/.venv/bin/python -m db.migrate_csv --input /home/ubuntu/app/leboncoin_ads_i20_20260315_143812.csv --db /home/ubuntu/app/db/lbc.sqlite --model i20
  $ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/scripts/check_availability.py --csv /home/ubuntu/app/leboncoin_ads_i20_20260315_143812.csv --brand hyundai --model i20 --db /home/ubuntu/app/db/lbc.sqlite
  $ /home/ubuntu/app/.venv/bin/python -m stats.main --model i20 --skip-plots

[4/7] BERLINGO  (brand=citroen, pages=10)
  URL: https://www.leboncoin.fr/recherche?category=5&text=berlingo+xl&u_utility_brand=C...
  $ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/crawler/leboncoin_search_export.py --output-file /home/ubuntu/app/leboncoin_ads.csv --pages 10 --model berlingo
  CSV : leboncoin_ads_berlingo_20260315_143828.csv
  $ /home/ubuntu/app/.venv/bin/python -m db.migrate_csv --input /home/ubuntu/app/leboncoin_ads_berlingo_20260315_143828.csv --db /home/ubuntu/app/db/lbc.sqlite --model berlingo
  $ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/scripts/check_availability.py --csv /home/ubuntu/app/leboncoin_ads_berlingo_20260315_143828.csv --brand citroen --model berlingo --db /home/ubuntu/app/db/lbc.sqlite
  $ /home/ubuntu/app/.venv/bin/python -m stats.main --model berlingo --skip-plots

[5/7] C4  (brand=citroen, pages=5)
  URL: https://www.leboncoin.fr/recherche?category=2&text=c4&price=min-11000&regdate=20...
  $ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/crawler/leboncoin_search_export.py --output-file /home/ubuntu/app/leboncoin_ads.csv --pages 5 --model c4
  CSV : leboncoin_ads_c4_20260315_143906.csv
  $ /home/ubuntu/app/.venv/bin/python -m db.migrate_csv --input /home/ubuntu/app/leboncoin_ads_c4_20260315_143906.csv --db /home/ubuntu/app/db/lbc.sqlite --model c4
  $ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/scripts/check_availability.py --csv /home/ubuntu/app/leboncoin_ads_c4_20260315_143906.csv --brand citroen --model c4 --db /home/ubuntu/app/db/lbc.sqlite
  $ /home/ubuntu/app/.venv/bin/python -m stats.main --model c4 --skip-plots

[6/7] SCENIC  (brand=renault, pages=4)
  URL: https://www.leboncoin.fr/recherche?category=2&text=scenic&price=min-11000&regdat...
  $ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/crawler/leboncoin_search_export.py --output-file /home/ubuntu/app/leboncoin_ads.csv --pages 4 --model scenic
  CSV : leboncoin_ads_scenic_20260315_143926.csv
  $ /home/ubuntu/app/.venv/bin/python -m db.migrate_csv --input /home/ubuntu/app/leboncoin_ads_scenic_20260315_143926.csv --db /home/ubuntu/app/db/lbc.sqlite --model scenic
  $ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/scripts/check_availability.py --csv /home/ubuntu/app/leboncoin_ads_scenic_20260315_143926.csv --brand renault --model scenic --db /home/ubuntu/app/db/lbc.sqlite
  $ /home/ubuntu/app/.venv/bin/python -m stats.main --model scenic --skip-plots

[7/7] 5008  (brand=peugeot, pages=31)
  URL: https://www.leboncoin.fr/recherche?category=2&text=5008&price=min-11000&u_car_br...
  $ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/crawler/leboncoin_search_export.py --output-file /home/ubuntu/app/leboncoin_ads.csv --pages 31 --model 5008
  CSV : leboncoin_ads_5008_20260315_143942.csv
  $ /home/ubuntu/app/.venv/bin/python -m db.migrate_csv --input /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv --db /home/ubuntu/app/db/lbc.sqlite --model 5008
  $ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/scripts/check_availability.py --csv /home/ubuntu/app/leboncoin_ads_5008_20260315_143942.csv --brand peugeot --model 5008 --db /home/ubuntu/app/db/lbc.sqlite
  $ /home/ubuntu/app/.venv/bin/python -m stats.main --model 5008 --skip-plots

  .env restauré

============================================================
  RÉSUMÉ
============================================================
  ✓ clio_4               → OK
  ✓ yaris                → OK
  ✓ i20                  → OK
  ✓ berlingo             → OK
  ✓ c4                   → OK
  ✓ scenic               → OK
  ✓ 5008                 → OK
============================================================

============================================================
Finished: 2026-03-15T14:41:23.354776
Duration: 341.2s
STATUS:SUCCESS