Administration

← Retour

Log : 20260323_214835

=== CRAWL 20260323_214835 ===
Trigger: manual
Started: 2026-03-23T21:48:35.486481
============================================================

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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.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_20260323_214836.csv réussi.

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

📂 leboncoin_ads_clio_4_20260323_214836.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
  📌 6722 annonces en base
════════════════════════════════════════════════════════════
INFO: 1424 list_id lus dans le CSV.
INFO: 1448 annonces actives en base pour renault clio_4.
INFO: 24 annonce(s) marquées indisponibles.
════════════════════════════════════════════════════════════
  CHECK DISPONIBILITÉ
  CSV   : leboncoin_ads_clio_4_20260323_214836.csv
  Brand : renault  |  Modèle : clio_4
════════════════════════════════════════════════════════════

  Annonces dans le CSV    : 1424
  Annonces actives en DB  : 1448
  Absentes du crawl       : 24
  Marquées indisponibles  : 24
════════════════════════════════════════════════════════════

  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
   ✅ 2737 annonces chargées (modèle 'clio_4')

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

📌 Nombre total d'annonces : 2737

📋 Premières lignes (colonnes parsées) :
      list_id                                                                          subject  price_eur  year_model  mileage_km     fuel    brand   model owner_type first_publication_date
0  3127969515                                                                   Renault clio 4       7000        2018       82900  essence  renault  clio_4        pro    2026-01-15 08:48:18
1  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
2  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
3  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
4  3147329929                                                                           Clio 4       4000        2014      100000  essence  renault  clio_4    private    2026-02-18 19:23:14

❓ 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-04-05 09:38:00
   Dernière publication : 2026-03-23 22:42:57
   Durée : 717 jours

👤 Répartition par type de vendeur :
   private         : 1801 (65.8%)
   pro             :  936 (34.2%)

⛽ Répartition par carburant :
   diesel               : 1509 (55.1%)
   essence              : 1224 (44.7%)
   autre                :    3 (0.1%)
   gpl                  :    1 (0.0%)

🏭 Top 10 marques :
   renault              : 2737 (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              :    1 lignes supprimées
      annee_aberrante           :    0 lignes supprimées
      age_negatif               :    0 lignes supprimées
      ─────────────────────────────────────────────
      Total supprimé          :    1
      Restantes               : 2736 / 2737
      Pourcentage conservé    : 100.0%

🔍 Détection des outliers (méthode IQR)...
   price_eur            :   41 outliers (1.5%)
      Bornes IQR : [4,740 ; 10,740]
   mileage_km           :   45 outliers (1.6%)
      Bornes IQR : [20,000 ; 252,000]
   age_years            :    8 outliers (0.3%)
      Bornes IQR : [5 ; 13]

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

======================================================================
📊 RÉSUMÉ APRÈS NETTOYAGE
======================================================================
   Nombre d'annonces restantes : 2736
   Dont outliers identifiés    : 78
   Annonces non-outliers       : 2658

   Plages de valeurs :
      price_eur            : [     3,300 ;      9,000]  (moy:      7,607)
      mileage_km           : [       125 ;    380,000]  (moy:    137,862)
      year_model           : [     2,014 ;      2,024]  (moy:      2,017)
      age_years            : [         2 ;         12]  (moy:          9)
      km_per_year          : [        18 ;     54,286]  (moy:     16,145)

   💾 2736 annonces enrichies persistées dans SQLite

🔎 Détection des annonces suspectes...
   ⚠️  9 signaux de suspicion détectés
      km_trop_bas_essence: 2
      km_trop_bas_diesel: 7
   💾 9 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   2736   7606.888523   7900.000000  1103.184160 3300.000000   6990.0   8490.000000   9000.000000  1500.000000
 mileage_km   2736 137861.649854 134308.500000 44825.814869  125.000000 107000.0 165000.000000 380000.000000 58000.000000
 year_model   2736   2017.278509   2017.000000     1.355843 2014.000000   2016.0   2018.000000   2024.000000     2.000000
  age_years   2736      8.721491      9.000000     1.355843    2.000000      8.0     10.000000     12.000000     2.000000
km_per_year   2736  16144.708203  15716.942857  5747.277100   17.857143  12200.0  19596.666667  54285.714286  7396.666667

📊 Tableau formaté :
   Variable Count     Mean   Median       Std   Min       Q1       Q3      Max     IQR
  price_eur 2,736    7,607    7,900  1,103.18 3,300    6,990    8,490    9,000   1,500
 mileage_km 2,736  137,862  134,308 44,825.81   125  107,000  165,000  380,000  58,000
 year_model 2,736    2,017    2,017      1.36 2,014    2,016    2,018    2,024       2
  age_years 2,736      8.7      9.0      1.36   2.0      8.0     10.0     12.0     2.0
km_per_year 2,736 16,144.7 15,716.9  5,747.28  17.9 12,200.0 19,596.7 54,285.7 7,396.7

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

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

   📌 mileage_km :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Dispersion MODÉRÉE (CV = 33%, σ = 44,826)
      → Étendue : [125 ; 380,000] (IQR = 58,000)

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

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

   📌 km_per_year :
      → Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
      → Dispersion MODÉRÉE (CV = 36%, σ = 5,747)
      → Étendue : [18 ; 54,286] (IQR = 7,397)

======================================================================
2026-03-23 21:51:03,986 [INFO] matplotlib.category — Using categorical units to plot a list of strings that are all parsable as floats or dates. If these strings should be plotted as numbers, cast to the appropriate data type before plotting.
2026-03-23 21:51:03,987 [INFO] matplotlib.category — Using categorical units to plot a list of strings that are all parsable as floats or dates. If these strings should be plotted as numbers, cast to the appropriate data type before plotting.
📊 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   788      7,305      7,500      +0.2%
     2017   732      7,606      7,800      -4.1%
     2018   591      7,720      7,990      -1.5%
     2019   368      7,934      8,000      -2.8%
     2020   116      8,243      8,500      -3.9%
     2021    25      8,344      8,490      -1.2%
     2022     6      8,838      8,930      -5.9%
     2024     2      8,000      8,000      +9.5%

   📌 Décote annuelle moyenne : -1.6%

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

   📋 Table : Prix par tranche de km
   ----------------------------------------------------------------------
        Tranche    Nb   Prix moy   Prix méd      Var %
   ----------------------------------------------------------------------
          0-20k    10      7,363      6,970        N/A
         20-50k    18      8,095      8,500      +9.9%
         50-80k   173      8,193      8,490      +1.2%
        80-120k   843      7,997      8,000      -2.4%
       120-160k   880      7,895      7,990      -1.3%
       160-200k   558      7,143      7,000      -9.5%
          200k+   254      5,910      5,825     -17.3%

📊 Prix moyen par âge...

   📋 Table : Prix par âge
   -----------------------------------------------------------------
     Âge    Nb   Prix moy   Décote %
   -----------------------------------------------------------------
       2     2      8,000        N/A
       4     6      8,838     +10.5%
       5    25      8,344      -5.6%
       6   116      8,243      -1.2%
       7   368      7,934      -3.8%
       8   591      7,720      -2.7%
       9   732      7,606      -1.5%
      10   788      7,305      -4.0%
      11    55      7,319      +0.2%
      12    53      6,972      -4.7%

   📌 La décote ralentit significativement à 6 ans

📊 Prix par type de carburant...

   📋 Table : Prix par carburant
   ----------------------------------------------------------------------
         Carburant    Nb   Prix moy   Prix méd
   ----------------------------------------------------------------------
             autre     3      7,630      6,990
            diesel  1509      7,466      7,700
           essence  1223      7,780      7,990

   📌 Carburant avec prix médian le plus élevé : essence (7,990€)
   📌 Carburant avec prix médian le plus bas : autre (6,990€)

📊 Prix par type de vendeur...

   📋 Table : Prix par type de vendeur
   ------------------------------------------------------------
         Type    Nb   Prix moy   Prix méd
   ------------------------------------------------------------
      private  1800      7,447      7,600
          pro   936      7,913      7,990

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

📊 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 :
   --------------------------------------------------
        10k : décote   -0.5% (n=  2)
        20k : décote  -16.7% (n=  5)
        30k : décote    1.6% (n=  6)
        40k : décote   13.3% (n=  7) ⚡
        50k : décote  -10.4% (n= 34)
        60k : décote   -2.7% (n= 54)
        70k : décote    3.0% (n= 85)
        80k : décote   -1.0% (n=128)
        90k : décote    0.7% (n=207)
       100k : décote    2.8% (n=217)
       110k : décote    0.3% (n=291)
       120k : décote   -2.1% (n=213)
       130k : décote    1.3% (n=223)
       140k : décote    0.7% (n=228)
       150k : décote    2.5% (n=216)
       160k : décote    3.8% (n=180)
       170k : décote    1.8% (n=155)
       180k : décote    4.0% (n=117)
       190k : décote    4.2% (n=106)
       200k : décote    6.1% (n= 97)
       210k : décote    3.0% (n= 50)
       220k : décote   -2.5% (n= 24)
       230k : décote   11.8% (n= 34) ⚡
       240k : décote    3.3% (n=  8)
       250k : décote    1.8% (n= 15)
       260k : décote   -3.8% (n=  4)
       270k : décote   15.3% (n=  4) ⚡
       280k : décote  -14.2% (n=  6)
       290k : décote   16.5% (n=  6) ⚡
      300k+ : décote  -16.8% (n=  6)

   📌 Seuils où la décote s'accélère (> 8%) :
      → 40k km : 13.3%
      → 230k km : 11.8%
      → 270k km : 15.3%
      → 290k km : 16.5%
   ✅ 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 :
   ---------------------------------------------
     4 ans : décote  -10.5% (n=  6) 🐢 LENTE
     5 ans : décote    5.6% (n= 25)
     6 ans : décote    1.2% (n=116) 🐢 LENTE
     7 ans : décote    3.8% (n=368)
     8 ans : décote    2.7% (n=591) 🐢 LENTE
     9 ans : décote    1.5% (n=732) 🐢 LENTE
    10 ans : décote    4.0% (n=788)
    11 ans : décote   -0.2% (n= 55) 🐢 LENTE
    12 ans : décote    4.7% (n= 53)

   📌 Décote lente (< 5% par an) :
      → 4 ans : -10.5%
      → 6 ans : 1.2%
      → 7 ans : 3.8%
      → 8 ans : 2.7%
      → 9 ans : 1.5%
      → 10 ans : 4.0%
      → 11 ans : -0.2%
      → 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 = -167.62 × âge + -0.0130 × km + 10,855
   📌 R² = 0.337
📊 Calcul des écarts de prix...

   📋 Classification des annonces :
      🌟 Excellente affaire        :  163 (  6.0%)
      👍 Bonne affaire             :  355 ( 13.0%)
      📊 Prix marché               : 1691 ( 61.8%)
      💰 Cher                      :  446 ( 16.3%)
      🔴 Très cher                 :   81 (  3.0%)
📊 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. [3139618502] Renault Clio 4 estate accidenté
       Prix:    3,300€ | Attendu:    7,815€ | Écart:  -57.8% | Année: 2018 | Km: 131,159
    2. [3147790884] Clio 4 phase 2
       Prix:    3,500€ | Attendu:    7,830€ | Écart:  -55.3% | Année: 2018 | Km: 130,000
    3. [3165548491] Renault clio 4
       Prix:    3,500€ | Attendu:    7,468€ | Écart:  -53.1% | Année: 2017 | Km: 145,000
    4. [3150016687] Clio 4
       Prix:    4,000€ | Attendu:    7,780€ | Écart:  -48.6% | Année: 2016 | Km: 108,000
    5. [3162715888] Clio 4 2018
       Prix:    4,700€ | Attendu:    8,996€ | Écart:  -47.8% | Année: 2018 | Km: 40,000
    6. [3154311236] Renault Clio 4 1.5 dCi 2016 – Diesel – Société – 1
       Prix:    3,800€ | Attendu:    7,196€ | Écart:  -47.2% | Année: 2016 | Km: 153,000
    7. [3147329929] Clio 4
       Prix:    4,000€ | Attendu:    7,548€ | Écart:  -47.0% | Année: 2014 | Km: 100,000
    8. [3144664626] Clio 4 retour de vol
       Prix:    4,800€ | Attendu:    8,969€ | Écart:  -46.5% | Année: 2019 | Km: 55,000
    9. [3161045630] Clio 4 75ch
2026-03-23 21:51:37,904 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 21:51:37,914 [INFO] services.llm_service — Batch 0-30: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 21:52:06,679 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 21:52:06,680 [INFO] services.llm_service — Batch 30-60: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 21:53:10,060 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 21:53:10,063 [INFO] services.llm_service — Batch 60-90: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 21:53:56,923 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 21:53:56,924 [INFO] services.llm_service — Batch 90-120: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 21:54:55,416 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 21:54:55,419 [INFO] services.llm_service — Batch 120-150: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 21:56:11,907 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 21:56:11,908 [INFO] services.llm_service — Batch 150-180: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 21:57:14,413 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 21:57:14,414 [INFO] services.llm_service — Batch 180-210: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 21:57:58,547 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 21:57:58,550 [INFO] services.llm_service — Batch 210-240: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 21:59:03,078 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 21:59:03,080 [INFO] services.llm_service — Batch 240-270: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:00:02,845 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:00:02,848 [INFO] services.llm_service — Batch 270-300: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:00:55,924 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:00:55,925 [INFO] services.llm_service — Batch 300-330: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:01:06,475 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:01:06,478 [INFO] services.llm_service — Batch 330-360: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:01:24,473 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:01:24,474 [INFO] services.llm_service — Batch 360-390: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:01:38,436 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:01:38,438 [INFO] services.llm_service — Batch 390-420: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:02:10,114 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:02:10,116 [INFO] services.llm_service — Batch 420-450: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:02:47,533 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:02:47,534 [INFO] services.llm_service — Batch 450-480: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:03:26,094 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:03:26,096 [INFO] services.llm_service — Batch 480-510: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:04:03,438 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:04:03,442 [INFO] services.llm_service — Batch 510-540: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:04:51,072 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:04:51,074 [INFO] services.llm_service — Batch 540-570: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:05:52,759 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:05:52,760 [INFO] services.llm_service — Batch 570-600: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:07:08,370 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:07:08,371 [INFO] services.llm_service — Batch 600-630: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:07:57,479 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:07:57,484 [INFO] services.llm_service — Batch 630-660: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:09:09,172 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:09:09,175 [INFO] services.llm_service — Batch 660-690: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:10:06,632 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:10:06,636 [INFO] services.llm_service — Batch 690-720: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:11:11,982 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:11:11,983 [INFO] services.llm_service — Batch 720-750: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:12:06,048 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:12:06,050 [INFO] services.llm_service — Batch 750-780: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:13:12,487 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:13:12,489 [INFO] services.llm_service — Batch 780-810: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:14:20,283 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:14:20,284 [INFO] services.llm_service — Batch 810-840: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:15:23,860 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:15:23,867 [INFO] services.llm_service — Batch 840-870: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:16:45,802 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:16:45,805 [INFO] services.llm_service — Batch 870-900: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:17:51,414 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:17:51,415 [INFO] services.llm_service — Batch 900-930: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:18:49,962 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:18:49,963 [INFO] services.llm_service — Batch 930-960: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:20:07,176 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:20:07,177 [INFO] services.llm_service — Batch 960-990: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:21:13,571 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:21:13,572 [INFO] services.llm_service — Batch 990-1020: 29 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:22:33,781 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:22:33,782 [INFO] services.llm_service — Batch 1020-1050: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:23:48,663 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:23:48,664 [INFO] services.llm_service — Batch 1050-1080: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:24:45,662 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:24:45,663 [INFO] services.llm_service — Batch 1080-1110: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:25:41,406 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:25:41,407 [INFO] services.llm_service — Batch 1110-1140: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:26:31,290 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:26:31,293 [INFO] services.llm_service — Batch 1140-1170: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:27:17,137 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:27:17,138 [INFO] services.llm_service — Batch 1170-1200: 29 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:28:09,743 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:28:09,745 [INFO] services.llm_service — Batch 1200-1230: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:28:53,803 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:28:53,805 [INFO] services.llm_service — Batch 1230-1260: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:29:35,895 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:29:35,898 [INFO] services.llm_service — Batch 1260-1290: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:30:27,404 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:30:27,405 [INFO] services.llm_service — Batch 1290-1320: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:31:20,991 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:31:20,992 [INFO] services.llm_service — Batch 1320-1350: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:32:10,355 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:32:10,357 [INFO] services.llm_service — Batch 1350-1380: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:33:06,090 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:33:06,091 [INFO] services.llm_service — Batch 1380-1410: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:33:48,632 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:33:48,632 [INFO] services.llm_service — Batch 1410-1440: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:34:47,550 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:34:47,553 [INFO] services.llm_service — Batch 1440-1470: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:35:43,436 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:35:43,438 [INFO] services.llm_service — Batch 1470-1500: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:36:53,506 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:36:53,507 [INFO] services.llm_service — Batch 1500-1530: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:37:55,457 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:37:55,458 [INFO] services.llm_service — Batch 1530-1560: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:38:55,912 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:38:55,913 [INFO] services.llm_service — Batch 1560-1590: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:39:55,215 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:39:55,217 [INFO] services.llm_service — Batch 1590-1620: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:40:54,399 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:40:54,400 [INFO] services.llm_service — Batch 1620-1650: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:41:53,002 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:41:53,004 [INFO] services.llm_service — Batch 1650-1680: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:42:06,254 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:42:06,255 [INFO] services.llm_service — Batch 1680-1710: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:42:42,088 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:42:42,090 [INFO] services.llm_service — Batch 1710-1740: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:43:17,700 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:43:17,703 [INFO] services.llm_service — Batch 1740-1770: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:44:03,621 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:44:03,625 [INFO] services.llm_service — Batch 1770-1800: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:44:59,124 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:44:59,125 [INFO] services.llm_service — Batch 1800-1830: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:46:02,675 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:46:02,678 [INFO] services.llm_service — Batch 1830-1860: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:47:13,426 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:47:13,429 [INFO] services.llm_service — Batch 1860-1890: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:48:09,748 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:48:09,751 [INFO] services.llm_service — Batch 1890-1920: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:49:35,504 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:49:35,507 [INFO] services.llm_service — Batch 1920-1950: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:50:57,120 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:50:57,122 [INFO] services.llm_service — Batch 1950-1980: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:51:41,149 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:51:41,150 [INFO] services.llm_service — Batch 1980-2010: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:52:42,271 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:52:42,272 [INFO] services.llm_service — Batch 2010-2040: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:53:38,258 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:53:38,259 [INFO] services.llm_service — Batch 2040-2070: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:54:41,989 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:54:41,991 [INFO] services.llm_service — Batch 2070-2100: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:55:54,053 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:55:54,056 [INFO] services.llm_service — Batch 2100-2130: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:56:37,083 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:56:37,084 [INFO] services.llm_service — Batch 2130-2160: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:57:28,670 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:57:28,673 [INFO] services.llm_service — Batch 2160-2190: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:58:30,502 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:58:30,505 [INFO] services.llm_service — Batch 2190-2220: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 22:59:29,554 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 22:59:29,556 [INFO] services.llm_service — Batch 2220-2250: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:00:35,582 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:00:35,582 [INFO] services.llm_service — Batch 2250-2280: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:01:49,215 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:01:49,216 [INFO] services.llm_service — Batch 2280-2310: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:02:46,484 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:02:46,487 [INFO] services.llm_service — Batch 2310-2340: 28 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:03:30,480 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:03:30,480 [INFO] services.llm_service — Batch 2340-2370: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:04:31,075 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:04:31,076 [INFO] services.llm_service — Batch 2370-2400: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:05:28,950 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:05:28,951 [INFO] services.llm_service — Batch 2400-2430: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:06:35,579 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:06:35,584 [INFO] services.llm_service — Batch 2430-2460: 28 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:07:34,528 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:07:34,531 [INFO] services.llm_service — Batch 2460-2490: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:08:24,284 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:08:24,284 [INFO] services.llm_service — Batch 2490-2520: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:09:18,500 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:09:18,500 [INFO] services.llm_service — Batch 2520-2550: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:09:28,082 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 400 Bad Request"
2026-03-23 23:09:28,083 [WARNING] services.llm_service — OpenAI appel échoué (modèle=gpt-5-nano, tentative=1/3): Error code: 400 - {'error': {'message': "We could not parse the JSON body of your request. (HINT: This likely means you aren't using your HTTP library correctly. The OpenAI API expects a JSON payload, but what was sent was not valid JSON. If you have trouble figuring out how to fix this, please contact us through our help center at help.openai.com.)", 'type': 'invalid_request_error', 'param': None, 'code': None}}
2026-03-23 23:10:53,164 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:10:53,165 [INFO] services.llm_service — Batch 2550-2580: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:12:00,513 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:12:00,516 [INFO] services.llm_service — Batch 2580-2610: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:12:56,069 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:12:56,070 [INFO] services.llm_service — Batch 2610-2640: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:14:20,344 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:14:20,345 [INFO] services.llm_service — Batch 2640-2670: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:15:09,192 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:15:09,193 [INFO] services.llm_service — Batch 2670-2700: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:16:11,973 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:16:11,974 [INFO] services.llm_service — Batch 2700-2730: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:16:43,787 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-23 23:16:43,788 [INFO] services.llm_service — Batch 2730-2737: 7 résultats extraits (modèle=gpt-5-nano)
2026-03-23 23:16:48,008 [INFO] stats.exporters.to_db —   stats_descriptives : 5 lignes insérées
2026-03-23 23:16:48,012 [INFO] stats.exporters.to_db —   modele_regression : 2 lignes insérées
2026-03-23 23:16:48,120 [INFO] stats.exporters.to_db —   referentiel_prix : 49 segments insérés
2026-03-23 23:16:48,408 [INFO] stats.exporters.to_db —   ads.deal_columns : 2736 annonces mises à jour
       Prix:    4,000€ | Attendu:    6,989€ | Écart:  -42.8% | Année: 2016 | Km: 169,000
   10. [3138542846] Clio 4 essence retour vol
       Prix:    4,500€ | Attendu:    7,716€ | Écart:  -41.7% | Année: 2015 | Km: 100,000

   🔴 TOP 10 ANNONCES SURÉVALUÉES (écart le plus positif) :
   ====================================================================================================
    1. [3147178650] 🚗 Renault Clio 4 en très bon état
       Prix:    7,000€ | Attendu:    4,758€ | Écart:  +47.1% | Année: 2019 | Km: 380,000
    2. [3163754314] Clio 4 initiale paris
       Prix:    8,900€ | Attendu:    6,587€ | Écart:  +35.1% | Année: 2016 | Km: 200,000
    3. [3161126708] RENAULT CLIO IV dCi 110 Initiale Paris | FULL OPTI
       Prix:    8,990€ | Attendu:    6,664€ | Écart:  +34.9% | Année: 2017 | Km: 207,000
    4. [3165923653] RENAULT CLIO IV BUSINESS dCi 90 Energy eco2 82g Bu
       Prix:    8,990€ | Attendu:    7,015€ | Écart:  +28.2% | Année: 2016 | Km: 166,990
    5. [3144046817] Clio 5
       Prix:    9,000€ | Attendu:    7,025€ | Écart:  +28.1% | Année: 2019 | Km: 205,000
    6. [3151967791] Clio 4 initiale Paris
       Prix:    8,900€ | Attendu:    6,962€ | Écart:  +27.8% | Année: 2017 | Km: 184,000
    7. [3155921737] Renault CLIO IV 1.5 DCI 90CH ENERGY BUSINESS 82G 5
       Prix:    8,490€ | Attendu:    6,657€ | Écart:  +27.5% | Année: 2016 | Km: 194,600
    8. [3155418369] Renault CLIO IV 1.5 DCI 90CH ENERGY BUSINESS 82G 5
       Prix:    8,490€ | Attendu:    6,657€ | Écart:  +27.5% | Année: 2016 | Km: 194,600
    9. [3136191420] Clio IV
       Prix:    7,490€ | Attendu:    5,886€ | Écart:  +27.3% | Année: 2018 | Km: 280,000
   10. [3151279318] Clio 4 ÉDITION ONE
       Prix:    8,899€ | Attendu:    7,012€ | Écart:  +26.9% | Année: 2016 | Km: 167,264

🔎 Détection des prix suspects (seuil: -40%)...
   ⚠️  12 annonces avec prix suspect
   💾 12 signaux prix persistés dans SQLite

======================================================================
  M05 — Extraction LLM des titres (GPT-5 Nano)
======================================================================
  Annonces sans évaluation LLM : 2737
  Résultats extraits : 2731
  Évaluations insérées : 2731

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

   ┌──────────────────────────────────────────────────┐
   │ Nombre total d'annonces      │              2,736 │
   │ Prix moyen                   │            7,607 € │
   │ Prix médian                  │            7,900 € │
   │ Km moyen                     │         137,862 km │
   │ Km médian                    │         134,308 km │
   │ Âge moyen                    │            8.7 ans │
   │ Âge médian                   │            9.0 ans │
   │ Km/an moyen                  │       16,145 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 (300000, 999999]
   ⛽ Carburant tenant le mieux sa valeur : essence (prix/âge le plus élevé)
   👔 Les pros vendent 5.1% plus cher que les particuliers (médiane)
   🔄 Km/an médian : 15,717 km → Profil dominant : 15-25k (Intensif)
   🏭 Top 3 marques = 100% du marché : renault (2736)

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

   🛒 POUR UN ACHETEUR :
   --------------------------------------------------
   • Sweet spot : véhicules de 5-8 ans, 60-120k km
     Prix moyen dans cette fourchette : 8,179€
     (444 annonces disponibles)
   • Prix médian du marché : 7,900€ → cible < 7,110€ 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,900€
   • Positionner légèrement sous le marché pour vendre vite (-5% à -10%)
   • Les véhicules < 134,308 km se vendent mieux
   • Mettre en avant un faible km/an si applicable

   🎯 SEGMENTS DE MARCHÉ :
   --------------------------------------------------
   • Budget (753 annonces) :
     Prix : 3,300€ - 6,990€
     Âge moyen : 9.1 ans | Km moyen : 170,871
   • Milieu de gamme (1307 annonces) :
     Prix : 6,999€ - 8,490€
     Âge moyen : 8.7 ans | Km moyen : 131,322
   • Premium (676 annonces) :
     Prix : 8,499€ - 9,000€
     Âge moyen : 8.2 ans | Km moyen : 113,736

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

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

══════════════════════════════════════════════════════════════════════
  ✅ ANALYSE TERMINÉE en 5147.9 secondes
  📊 2736 annonces analysées  (run #133)
  🔍 Modèle           : clio_4
  💾 Base SQLite      : /home/ubuntu/app/db/lbc.sqlite
  📁 Figures          : /home/ubuntu/app/stats/clio_4/figures
══════════════════════════════════════════════════════════════════════