Administration
← Retour
Log : 20260325_200000
=== CRAWL 20260325_200000 ===
Trigger: scheduled
Started: 2026-03-25T20:00:00.000273
============================================================
Récupération de la page 1/41 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=clio+4&price=3000-9000®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.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®date=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_20260325_200000.csv réussi.
Terminé : 1435 annonces au total dans /home/ubuntu/app/leboncoin_ads_clio_4_20260325_200000.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_20260325_200000.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
📌 6996 annonces en base
════════════════════════════════════════════════════════════
INFO: 1413 list_id lus dans le CSV.
INFO: 1476 annonces actives en base pour renault clio_4.
INFO: 63 annonce(s) marquées indisponibles.
════════════════════════════════════════════════════════════
CHECK DISPONIBILITÉ
CSV : leboncoin_ads_clio_4_20260325_200000.csv
Brand : renault | Modèle : clio_4
════════════════════════════════════════════════════════════
Annonces dans le CSV : 1413
Annonces actives en DB : 1476
Absentes du crawl : 63
Marquées indisponibles : 63
════════════════════════════════════════════════════════════
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
✅ 2886 annonces chargées (modèle 'clio_4')
======================================================================
📊 EXPLORATION DES DONNÉES BRUTES
======================================================================
📌 Nombre total d'annonces : 2886
📋 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-25 20:57:30
Durée : 719 jours
👤 Répartition par type de vendeur :
private : 1909 (66.1%)
pro : 977 (33.9%)
⛽ Répartition par carburant :
diesel : 1589 (55.1%)
essence : 1293 (44.8%)
autre : 3 (0.1%)
gpl : 1 (0.0%)
🏭 Top 10 marques :
renault : 2886 (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 : 2885 / 2886
Pourcentage conservé : 100.0%
🔍 Détection des outliers (méthode IQR)...
price_eur : 49 outliers (1.7%)
Bornes IQR : [4,740 ; 10,740]
mileage_km : 43 outliers (1.5%)
Bornes IQR : [18,500 ; 254,500]
age_years : 8 outliers (0.3%)
Bornes IQR : [5 ; 13]
📌 Total d'annonces outliers (au moins 1 variable) : 83 (2.9%)
⚠️ Les outliers sont identifiés mais NON supprimés.
======================================================================
📊 RÉSUMÉ APRÈS NETTOYAGE
======================================================================
Nombre d'annonces restantes : 2885
Dont outliers identifiés : 83
Annonces non-outliers : 2802
Plages de valeurs :
price_eur : [ 3,300 ; 9,000] (moy: 7,593)
mileage_km : [ 125 ; 380,000] (moy: 138,096)
year_model : [ 2,014 ; 2,024] (moy: 2,017)
age_years : [ 2 ; 12] (moy: 9)
km_per_year : [ 18 ; 54,286] (moy: 16,181)
💾 2885 annonces enrichies persistées dans SQLite
🔎 Détection des annonces suspectes...
⚠️ 9 signaux de suspicion détectés
km_trop_bas_diesel: 7
km_trop_bas_essence: 2
💾 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 2885 7593.064125 7890.000000 1114.639262 3300.000000 6990.000000 8490.0 9000.000000 1500.000000
mileage_km 2885 138095.915425 134628.000000 44966.773301 125.000000 107000.000000 166000.0 380000.000000 59000.000000
year_model 2885 2017.291854 2017.000000 1.350792 2014.000000 2016.000000 2018.0 2024.000000 2.000000
age_years 2885 8.708146 9.000000 1.350792 2.000000 8.000000 10.0 12.000000 2.000000
km_per_year 2885 16181.489395 15757.142857 5724.092861 17.857143 12222.222222 19625.0 54285.714286 7402.777778
📊 Tableau formaté :
Variable Count Mean Median Std Min Q1 Q3 Max IQR
price_eur 2,885 7,593 7,890 1,114.64 3,300 6,990 8,490 9,000 1,500
mileage_km 2,885 138,096 134,628 44,966.77 125 107,000 166,000 380,000 59,000
year_model 2,885 2,017 2,017 1.35 2,014 2,016 2,018 2,024 2
age_years 2,885 8.7 9.0 1.35 2.0 8.0 10.0 12.0 2.0
km_per_year 2,885 16,181.5 15,757.1 5,724.09 17.9 12,222.2 19,625.0 54,285.7 7,402.8
📝 INTERPRÉTATION DES STATISTIQUES :
--------------------------------------------------
📌 price_eur :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Faible dispersion (CV = 15%, σ = 1,115)
→ Étendue : [3,300 ; 9,000] (IQR = 1,500)
📌 mileage_km :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Dispersion MODÉRÉE (CV = 33%, σ = 44,967)
→ Étendue : [125 ; 380,000] (IQR = 59,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 = 35%, σ = 5,724)
→ Étendue : [18 ; 54,286] (IQR = 7,403)
======================================================================
2026-03-25 20:02:22,855 [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-25 20:02:22,855 [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 825 7,284 7,500 +0.5%
2017 775 7,569 7,790 -3.9%
2018 620 7,727 7,990 -2.1%
2019 401 7,925 8,000 -2.6%
2020 122 8,232 8,500 -3.9%
2021 26 8,322 8,490 -1.1%
2022 6 8,838 8,930 -6.2%
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 19 8,078 8,500 +9.7%
50-80k 185 8,214 8,490 +1.7%
80-120k 881 7,996 8,000 -2.7%
120-160k 932 7,891 7,990 -1.3%
160-200k 583 7,117 7,000 -9.8%
200k+ 275 5,861 5,800 -17.6%
📊 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 26 8,322 -5.8%
6 122 8,232 -1.1%
7 401 7,925 -3.7%
8 620 7,727 -2.5%
9 775 7,569 -2.0%
10 825 7,284 -3.8%
11 55 7,319 +0.5%
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 1589 7,443 7,690
essence 1292 7,776 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 1908 7,432 7,555
pro 977 7,907 7,990
📌 Test Mann-Whitney (médiane) : p = 0.0000
✅ Différence SIGNIFICATIVE (p < 0.05)
📌 Écart médian Pro - Particulier : +435€
📊 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.5% (n= 5)
30k : décote 2.4% (n= 7)
40k : décote 12.4% (n= 7) ⚡
50k : décote -10.5% (n= 35)
60k : décote -2.5% (n= 59)
70k : décote 2.4% (n= 91)
80k : décote -0.5% (n=133)
90k : décote 0.5% (n=219)
100k : décote 2.9% (n=225)
110k : décote 0.6% (n=304)
120k : décote -2.3% (n=220)
130k : décote 1.0% (n=241)
140k : décote 1.1% (n=243)
150k : décote 2.5% (n=228)
160k : décote 3.9% (n=185)
170k : décote 1.8% (n=162)
180k : décote 4.3% (n=123)
190k : décote 3.9% (n=113)
200k : décote 6.2% (n=103)
210k : décote 2.9% (n= 55)
220k : décote -1.8% (n= 25)
230k : décote 11.6% (n= 37) ⚡
240k : décote 5.6% (n= 10)
250k : décote 0.2% (n= 18)
260k : décote 1.0% (n= 5)
270k : décote 9.9% (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 : 12.4%
→ 230k km : 11.6%
→ 270k km : 9.9%
→ 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.8% (n= 26)
6 ans : décote 1.1% (n=122) 🐢 LENTE
7 ans : décote 3.7% (n=401)
8 ans : décote 2.5% (n=620) 🐢 LENTE
9 ans : décote 2.0% (n=775) 🐢 LENTE
10 ans : décote 3.8% (n=825)
11 ans : décote -0.5% (n= 55) 🐢 LENTE
12 ans : décote 4.7% (n= 53)
📌 Décote lente (< 5% par an) :
→ 4 ans : -10.5%
→ 6 ans : 1.1%
→ 7 ans : 3.7%
→ 8 ans : 2.5%
→ 9 ans : 2.0%
→ 10 ans : 3.8%
→ 11 ans : -0.5%
→ 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 = -164.27 × âge + -0.0134 × km + 10,867
📌 R² = 0.350
📊 Calcul des écarts de prix...
📋 Classification des annonces :
🌟 Excellente affaire : 173 ( 6.0%)
👍 Bonne affaire : 380 ( 13.2%)
📊 Prix marché : 1782 ( 61.8%)
💰 Cher : 461 ( 16.0%)
🔴 Très cher : 89 ( 3.1%)
📊 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,802€ | Écart: -57.7% | Année: 2018 | Km: 131,159
2. [3147790884] Clio 4 phase 2
Prix: 3,500€ | Attendu: 7,817€ | Écart: -55.2% | Année: 2018 | Km: 130,000
3. [3165548491] Renault clio 4
Prix: 3,500€ | Attendu: 7,453€ | Écart: -53.0% | Année: 2017 | Km: 145,000
4. [3150016687] Clio 4
Prix: 4,000€ | Attendu: 7,783€ | Écart: -48.6% | Année: 2016 | Km: 108,000
5. [3162715888] Clio 4 2018
Prix: 4,700€ | Attendu: 9,019€ | Écart: -47.9% | Année: 2018 | Km: 40,000
6. [3147329929] Clio 4
Prix: 4,000€ | Attendu: 7,561€ | Écart: -47.1% | Année: 2014 | Km: 100,000
7. [3154311236] Renault Clio 4 1.5 dCi 2016 – Diesel – Société – 1
Prix: 3,800€ | Attendu: 7,182€ | Écart: -47.1% | Année: 2016 | Km: 153,000
8. [3144664626] Clio 4 retour de vol
Prix: 4,800€ | Attendu: 8,983€ | Écart: -46.6% | Année: 2019 | Km: 55,000
9. [3161045630] Clio 4 75ch
2026-03-25 20:03:39,353 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-25 20:03:39,360 [INFO] services.llm_service — Batch 0-30: 30 résultats extraits (modèle=gpt-5-nano)
2026-03-25 20:03:56,238 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-25 20:03:56,239 [INFO] services.llm_service — Batch 30-33: 3 résultats extraits (modèle=gpt-5-nano)
2026-03-25 20:03:56,667 [INFO] stats.exporters.to_db — stats_descriptives : 5 lignes insérées
2026-03-25 20:03:56,668 [INFO] stats.exporters.to_db — modele_regression : 2 lignes insérées
2026-03-25 20:03:56,774 [INFO] stats.exporters.to_db — referentiel_prix : 49 segments insérés
2026-03-25 20:03:56,957 [INFO] stats.exporters.to_db — ads.deal_columns : 2885 annonces mises à jour
Prix: 4,000€ | Attendu: 6,968€ | Écart: -42.6% | Année: 2016 | Km: 169,000
10. [3138542846] Clio 4 essence retour vol
Prix: 4,500€ | Attendu: 7,725€ | É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,644€ | Écart: +50.7% | Année: 2019 | Km: 380,000
2. [3163754314] Clio 4 initiale paris
Prix: 8,900€ | Attendu: 6,554€ | Écart: +35.8% | Année: 2016 | Km: 200,000
3. [3161126708] RENAULT CLIO IV dCi 110 Initiale Paris | FULL OPTI
Prix: 8,990€ | Attendu: 6,625€ | Écart: +35.7% | Année: 2017 | Km: 207,000
4. [3144046817] Clio 5
Prix: 9,000€ | Attendu: 6,980€ | Écart: +28.9% | Année: 2019 | Km: 205,000
5. [3136191420] Clio IV
Prix: 7,490€ | Attendu: 5,815€ | Écart: +28.8% | Année: 2018 | Km: 280,000
6. [3165923653] RENAULT CLIO IV BUSINESS dCi 90 Energy eco2 82g Bu
Prix: 8,990€ | Attendu: 6,995€ | Écart: +28.5% | Année: 2016 | Km: 166,990
7. [3151967791] Clio 4 initiale Paris
Prix: 8,900€ | Attendu: 6,932€ | Écart: +28.4% | Année: 2017 | Km: 184,000
8. [3155921737] Renault CLIO IV 1.5 DCI 90CH ENERGY BUSINESS 82G 5
Prix: 8,490€ | Attendu: 6,626€ | Écart: +28.1% | Année: 2016 | Km: 194,600
9. [3155418369] Renault CLIO IV 1.5 DCI 90CH ENERGY BUSINESS 82G 5
Prix: 8,490€ | Attendu: 6,626€ | Écart: +28.1% | Année: 2016 | Km: 194,600
10. [3151279318] Clio 4 ÉDITION ONE
Prix: 8,899€ | Attendu: 6,991€ | Écart: +27.3% | 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 : 33
Résultats extraits : 33
Évaluations insérées : 33
======================================================================
📊 TABLEAU DE BORD RÉCAPITULATIF
======================================================================
┌──────────────────────────────────────────────────┐
│ Nombre total d'annonces │ 2,885 │
│ Prix moyen │ 7,593 € │
│ Prix médian │ 7,890 € │
│ Km moyen │ 138,096 km │
│ Km médian │ 134,628 km │
│ Âge moyen │ 8.7 ans │
│ Âge médian │ 9.0 ans │
│ Km/an moyen │ 16,181 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.8% plus cher que les particuliers (médiane)
🔄 Km/an médian : 15,757 km → Profil dominant : 15-25k (Intensif)
🏭 Top 3 marques = 100% du marché : renault (2885)
======================================================================
💡 RECOMMANDATIONS
======================================================================
🛒 POUR UN ACHETEUR :
--------------------------------------------------
• Sweet spot : véhicules de 5-8 ans, 60-120k km
Prix moyen dans cette fourchette : 8,185€
(478 annonces disponibles)
• Prix médian du marché : 7,890€ → cible < 7,101€ 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,890€
• Positionner légèrement sous le marché pour vendre vite (-5% à -10%)
• Les véhicules < 134,628 km se vendent mieux
• Mettre en avant un faible km/an si applicable
🎯 SEGMENTS DE MARCHÉ :
--------------------------------------------------
• Budget (801 annonces) :
Prix : 3,300€ - 6,990€
Âge moyen : 9.1 ans | Km moyen : 172,057
• Milieu de gamme (1375 annonces) :
Prix : 6,999€ - 8,490€
Âge moyen : 8.7 ans | Km moyen : 130,974
• Premium (709 annonces) :
Prix : 8,499€ - 9,000€
Âge moyen : 8.2 ans | Km moyen : 113,539
======================================================================
💾 EXPORT DES RÉSULTATS EN BASE SQLite
======================================================================
📌 Run #163 créé
🔍 Modèle : clio_4
📎 2885 annonces liées au run
✅ Stats descriptives : 5 variables
✅ Modèle régression : 2 coefficients (R²=0.350)
✅ Référentiel prix : 49 segments
✅ Classifications deal : 2885 annonces
💾 Tout exporté dans /home/ubuntu/app/db/lbc.sqlite
══════════════════════════════════════════════════════════════════════
✅ ANALYSE TERMINÉE en 97.1 secondes
📊 2885 annonces analysées (run #163)
🔍 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®date=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_20260325_200357.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®date=2016-max&gearbox=1&seats=5%2C4&u_car_brand=TOYOTA&order=asc&page=2
→ 15 annonces récupérées (total en mémoire: 50)
Export de 50 annonces vers /home/ubuntu/app/leboncoin_ads_yaris_20260325_200357.csv réussi.
Terminé : 50 annonces au total dans /home/ubuntu/app/leboncoin_ads_yaris_20260325_200357.csv
INFO: Model override : yaris
INFO: Schéma initialisé dans /home/ubuntu/app/db/lbc.sqlite
════════════════════════════════════════════════════════════
📦 MIGRATION CSV → SQLite unifié
════════════════════════════════════════════════════════════
📂 leboncoin_ads_yaris_20260325_200357.csv
✅ 50 lus, 50 insérés, 0 ignorés, 0 erreurs
────────────────────────────────────────────────────────────
📊 TOTAL : 50 lus, 50 insérés
💾 Base : /home/ubuntu/app/db/lbc.sqlite
📌 6997 annonces en base
════════════════════════════════════════════════════════════
INFO: 50 list_id lus dans le CSV.
INFO: 51 annonces actives en base pour toyota yaris.
INFO: 1 annonce(s) marquées indisponibles.
════════════════════════════════════════════════════════════
CHECK DISPONIBILITÉ
CSV : leboncoin_ads_yaris_20260325_200357.csv
Brand : toyota | Modèle : yaris
════════════════════════════════════════════════════════════
Annonces dans le CSV : 50
Annonces actives en DB : 51
Absentes du crawl : 1
Marquées indisponibles : 1
════════════════════════════════════════════════════════════
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
✅ 119 annonces chargées (modèle 'yaris')
======================================================================
📊 EXPLORATION DES DONNÉES BRUTES
======================================================================
📌 Nombre total d'annonces : 119
📋 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-25 17:45:39
Durée : 285 jours
👤 Répartition par type de vendeur :
pro : 62 (52.1%)
private : 57 (47.9%)
⛽ Répartition par carburant :
essence : 102 (85.7%)
diesel : 17 (14.3%)
🏭 Top 10 marques :
toyota : 119 (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 : 119 / 119
Pourcentage conservé : 100.0%
🔍 Détection des outliers (méthode IQR)...
price_eur : 2 outliers (1.7%)
Bornes IQR : [4,650 ; 11,450]
mileage_km : 3 outliers (2.5%)
Bornes IQR : [22,019 ; 219,589]
age_years : 2 outliers (1.7%)
Bornes IQR : [5 ; 13]
📌 Total d'annonces outliers (au moins 1 variable) : 6 (5.0%)
⚠️ Les outliers sont identifiés mais NON supprimés.
======================================================================
📊 RÉSUMÉ APRÈS NETTOYAGE
======================================================================
Nombre d'annonces restantes : 119
Dont outliers identifiés : 6
Annonces non-outliers : 113
Plages de valeurs :
price_eur : [ 2,500 ; 9,000] (moy: 7,848)
mileage_km : [ 150 ; 200,000] (moy: 118,377)
year_model : [ 2,015 ; 2,025] (moy: 2,017)
age_years : [ 1 ; 11] (moy: 9)
km_per_year : [ 15 ; 143,200] (moy: 13,983)
💾 119 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 119 7847.672269 8000.000000 1227.445888 2500.0 7200.0 8900.0 9000.0 1700.0
mileage_km 119 118377.226891 121000.000000 38267.338496 150.0 96107.5 145500.0 200000.0 49392.5
year_model 119 2016.831933 2016.000000 1.580170 2015.0 2016.0 2018.0 2025.0 2.0
age_years 119 9.168067 10.000000 1.580170 1.0 8.0 10.0 11.0 2.0
km_per_year 119 13983.163514 12909.090909 12685.237567 15.0 9964.5 15200.0 143200.0 5235.5
📊 Tableau formaté :
Variable Count Mean Median Std Min Q1 Q3 Max IQR
price_eur 119 7,848 8,000 1,227.45 2,500 7,200 8,900 9,000 1,700
mileage_km 119 118,377 121,000 38,267.34 150 96,108 145,500 200,000 49,392
year_model 119 2,017 2,016 1.58 2,015 2,016 2,018 2,025 2
age_years 119 9.2 10.0 1.58 1.0 8.0 10.0 11.0 2.0
km_per_year 119 13,983.2 12,909.1 12,685.24 15.0 9,964.5 15,200.0 143,200.0 5,235.5
📝 INTERPRÉTATION DES STATISTIQUES :
--------------------------------------------------
📌 price_eur :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Faible dispersion (CV = 16%, σ = 1,227)
→ Étendue : [2,500 ; 9,000] (IQR = 1,700)
📌 mileage_km :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Dispersion MODÉRÉE (CV = 32%, σ = 38,267)
→ Étendue : [150 ; 200,000] (IQR = 49,392)
📌 year_model :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Faible dispersion (CV = 0%, σ = 2)
→ Étendue : [2,015 ; 2,025] (IQR = 2)
📌 age_years :
→ Distribution asymétrique GAUCHE (moyenne 9 < médiane 10)
Quelques valeurs basses tirent la moyenne vers le bas.
→ Faible dispersion (CV = 17%, σ = 2)
→ Étendue : [1 ; 11] (IQR = 2)
📌 km_per_year :
→ Distribution asymétrique DROITE (moyenne 13,983 > médiane 12,909)
Quelques valeurs élevées tirent la moyenne vers le haut.
→ FORTE dispersion (CV = 91%, σ = 12,685)
→ Étendue : [15 ; 143,200] (IQR = 5,236)
======================================================================
📊 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 %
2026-03-25 20:04:05,564 [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-25 20:04:05,564 [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.
---------------------------------------------------------------------------
2015 16 7,880 7,980 N/A
2016 49 7,533 7,990 +4.4%
2017 22 8,228 8,490 -9.2%
2018 15 7,950 8,500 +3.4%
2019 13 8,485 8,890 -6.7%
2020 2 8,840 8,840 -4.2%
📌 Décote annuelle moyenne : -2.5%
📊 Prix moyen par tranche de kilométrage...
📋 Table : Prix par tranche de km
----------------------------------------------------------------------
Tranche Nb Prix moy Prix méd Var %
----------------------------------------------------------------------
0-20k 3 6,950 7,000 N/A
20-50k 2 8,840 8,840 +27.2%
50-80k 13 8,724 8,990 -1.3%
80-120k 41 8,144 8,490 -6.6%
120-160k 43 7,779 7,999 -4.5%
160-200k 16 6,688 6,545 -14.0%
200k+ 1 6,500 6,500 -2.8%
📊 Prix moyen par âge...
📋 Table : Prix par âge
-----------------------------------------------------------------
Âge Nb Prix moy Décote %
-----------------------------------------------------------------
6 2 8,840 N/A
7 13 8,485 -4.0%
8 15 7,950 -6.3%
9 22 8,228 +3.5%
10 49 7,533 -8.4%
11 16 7,880 +4.6%
📊 Prix par type de carburant...
📋 Table : Prix par carburant
----------------------------------------------------------------------
Carburant Nb Prix moy Prix méd
----------------------------------------------------------------------
diesel 17 7,644 8,000
essence 102 7,882 8,000
📌 Carburant avec prix médian le plus élevé : diesel (8,000€)
📌 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 57 7,485 7,900
pro 62 8,181 8,490
📌 Test Mann-Whitney (médiane) : p = 0.0112
✅ Différence SIGNIFICATIVE (p < 0.05)
📌 Écart médian Pro - Particulier : +590€
📊 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 :
--------------------------------------------------
50k : décote -26.3% (n= 2)
60k : décote 0.0% (n= 8)
70k : décote 1.0% (n= 3)
80k : décote 5.0% (n= 4)
90k : décote -3.4% (n= 12)
100k : décote 6.6% (n= 13)
110k : décote -0.6% (n= 12)
120k : décote -4.1% (n= 9)
130k : décote 3.4% (n= 10)
140k : décote 5.4% (n= 17)
150k : décote 5.7% (n= 7)
160k : décote 1.0% (n= 5)
170k : décote 7.5% (n= 9)
180k : décote 5.2% (n= 2)
✅ Sauvegardé : /home/ubuntu/app/stats/yaris/figures/seuils_km.png
📊 Analyse des seuils d'âge...
📋 Taux de décote par année d'âge :
---------------------------------------------
7 ans : décote 4.0% (n= 13)
8 ans : décote 6.3% (n= 15)
9 ans : décote -3.5% (n= 22) 🐢 LENTE
10 ans : décote 8.4% (n= 49)
11 ans : décote -4.6% (n= 16) 🐢 LENTE
📌 Décote lente (< 5% par an) :
→ 7 ans : 4.0%
→ 9 ans : -3.5%
→ 11 ans : -4.6%
✅ Sauvegardé : /home/ubuntu/app/stats/yaris/figures/seuils_age.png
======================================================================
📊 IDENTIFICATION DES BONNES AFFAIRES
======================================================================
📊 Construction du modèle de prix attendu...
📌 Modèle : prix = 58.23 × âge + -0.0120 × km + 8,734
📌 R² = 0.134
📊 Calcul des écarts de prix...
📋 Classification des annonces :
🌟 Excellente affaire : 10 ( 8.4%)
👍 Bonne affaire : 8 ( 6.7%)
📊 Prix marché : 74 ( 62.2%)
💰 Cher : 22 ( 18.5%)
🔴 Très cher : 5 ( 4.2%)
📊 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,517€ | Écart: -66.7% | Année: 2016 | Km: 150,000
2. [3166982116] Toyota yaris
Prix: 3,500€ | Attendu: 7,277€ | Écart: -51.9% | Année: 2016 | Km: 170,000
3. [3152322073] Toyota Yaris 1.0 VVTI PRO EXPORT (0101261)
Prix: 5,250€ | Attendu: 8,725€ | Écart: -39.8% | Année: 2023 | Km: 15,333
4. [3157660912] Toyota Yaris
Prix: 5,500€ | Attendu: 7,892€ | Écart: -30.3% | Année: 2018 | Km: 109,000
5. [3157975215] Toyota yaris 2011
Prix: 5,150€ | Attendu: 7,074€ | Écart: -27.2% | Année: 2025 | Km: 143,200
6. [3165225181] Toyota yaris
Prix: 5,300€ | Attendu: 7,277€ | Écart: -27.2% | Année: 2016 | Km: 170,000
7. [3166534631] Toyota yaris
Prix: 5,300€ | Attendu: 7,277€ | Écart: -27.2% | Année: 2016 | Km: 170,000
8. [3161632025] Toyota Yaris III - 5P - 2016
Prix: 5,500€ | Attendu: 7,397€ | Écart: -25.6% | Année: 2016 | Km: 160,000
9. [3165747251] Toyota Yaris
Prix: 7,000€ | Attendu: 9,315€ | Écart: -24.9% | Année: 2016 | Km: 150
10. [3167175989] Toyota Aygo 1.0 VTI x-play
Prix: 5,999€ | Attendu: 7,964€ | Écart: -24.7% | Année: 2018 | Km: 103,000
🔴 TOP 10 ANNONCES SURÉVALUÉES (écart le plus positif) :
====================================================================================================
1. [3157352360] Toyota Yaris III 1.5 VVT-i 110 ch – Design Y20-201
Prix: 8,900€ | Attendu: 7,042€ | Écart: +26.4% | Année: 2019 | Km: 175,000
2. [3151218398] TOYOTA Yaris 3 Phase 2 / 1.3 VVTi 16V 100 cv *Fini
Prix: 8,990€ | Attendu: 7,205€ | Écart: +24.8% | Année: 2016 | Km: 176,000
3. [3163742160] Toyota Yaris 90 D-4D Design 5p style
Prix: 8,990€ | Attendu: 7,347€ | Écart: +22.4% | Année: 2016 | Km: 164,156
4. [3153117476] Toyota Yaris 70 VVT-i France 5p MY19
Prix: 8,990€ | Attendu: 7,360€ | Écart: +22.1% | Année: 2018 | Km: 153,356
5. [3167503729] Toyota Yaris III 110cv VVT-i Design MY19
Prix: 8,990€ | Attendu: 7,404€ | Écart: +21.4% | Année: 2019 | Km: 144,790
6. [3135900987] TOYOTA YARIS RC18 110 VVT-i COLLECTION
Prix: 8,990€ | Attendu: 7,580€ | Écart: +18.6% | Année: 2018 | Km: 135,000
7. [3151923222] Toyota Yaris 110 VVT-i Design Y20 5p RC19
Prix: 8,990€ | Attendu: 7,620€ | Écart: +18.0% | Année: 2019 | Km: 126,787
8. [3006906577] Toyota Yaris III 69 VVT-i France
Prix: 8,990€ | Attendu: 7,627€ | Écart: +17.9% | Année: 2016 | Km: 140,770
9. [3150673579] Toyota yaris 100 vvt-i dynamic 5p 2016
Prix: 8,990€ | Attendu: 7,661€ | Écart: +17.4% | Année: 2016 | Km: 138,000
10. [3146935741] Toyota Yaris 1.4 D-4D 90 Business
2026-03-25 20:04:20,326 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-25 20:04:20,333 [INFO] services.llm_service — Batch 0-1: 1 résultats extraits (modèle=gpt-5-nano)
2026-03-25 20:04:20,599 [INFO] stats.exporters.to_db — stats_descriptives : 5 lignes insérées
2026-03-25 20:04:20,601 [INFO] stats.exporters.to_db — modele_regression : 2 lignes insérées
2026-03-25 20:04:20,652 [INFO] stats.exporters.to_db — referentiel_prix : 23 segments insérés
2026-03-25 20:04:20,663 [INFO] stats.exporters.to_db — ads.deal_columns : 119 annonces mises à jour
Prix: 8,990€ | Attendu: 7,708€ | Écart: +16.6% | Année: 2017 | Km: 129,178
🔎 Détection des prix suspects (seuil: -40%)...
⚠️ 2 annonces avec prix suspect
💾 2 signaux prix persistés dans SQLite
======================================================================
M05 — Extraction LLM des titres (GPT-5 Nano)
======================================================================
Annonces sans évaluation LLM : 1
Résultats extraits : 1
Évaluations insérées : 1
======================================================================
📊 TABLEAU DE BORD RÉCAPITULATIF
======================================================================
┌──────────────────────────────────────────────────┐
│ Nombre total d'annonces │ 119 │
│ Prix moyen │ 7,848 € │
│ Prix médian │ 8,000 € │
│ Km moyen │ 118,377 km │
│ Km médian │ 121,000 km │
│ Âge moyen │ 9.2 ans │
│ Âge médian │ 10.0 ans │
│ Km/an moyen │ 13,983 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 (20000, 40000]
⛽ Carburant tenant le mieux sa valeur : essence (prix/âge le plus élevé)
👔 Les pros vendent 7.5% plus cher que les particuliers (médiane)
🔄 Km/an médian : 12,909 km → Profil dominant : 10-15k (Normal)
🏭 Top 3 marques = 100% du marché : toyota (119)
======================================================================
💡 RECOMMANDATIONS
======================================================================
🛒 POUR UN ACHETEUR :
--------------------------------------------------
• Sweet spot : véhicules de 5-8 ans, 60-120k km
Prix moyen dans cette fourchette : 8,264€
(16 annonces disponibles)
• Prix médian du marché : 8,000€ → cible < 7,200€ 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,000€
• Positionner légèrement sous le marché pour vendre vite (-5% à -10%)
• Les véhicules < 121,000 km se vendent mieux
• Mettre en avant un faible km/an si applicable
🎯 SEGMENTS DE MARCHÉ :
--------------------------------------------------
• Budget (32 annonces) :
Prix : 2,500€ - 7,200€
Âge moyen : 9.0 ans | Km moyen : 136,591
• Milieu de gamme (58 annonces) :
Prix : 7,299€ - 8,900€
Âge moyen : 9.4 ans | Km moyen : 114,913
• Premium (29 annonces) :
Prix : 8,950€ - 9,000€
Âge moyen : 8.9 ans | Km moyen : 105,208
======================================================================
💾 EXPORT DES RÉSULTATS EN BASE SQLite
======================================================================
📌 Run #164 créé
🔍 Modèle : yaris
📎 119 annonces liées au run
✅ Stats descriptives : 5 variables
✅ Modèle régression : 2 coefficients (R²=0.134)
✅ Référentiel prix : 23 segments
✅ Classifications deal : 119 annonces
💾 Tout exporté dans /home/ubuntu/app/db/lbc.sqlite
══════════════════════════════════════════════════════════════════════
✅ ANALYSE TERMINÉE en 17.8 secondes
📊 119 annonces analysées (run #164)
🔍 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®date=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_20260325_200421.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®date=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_20260325_200421.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®date=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_20260325_200421.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®date=2016-max&gearbox=1&seats=5%2C4&u_car_brand=HYUNDAI&u_car_model=HYUNDAI_i20&order=asc&page=4
→ 18 annonces récupérées (total en mémoire: 123)
Export de 123 annonces vers /home/ubuntu/app/leboncoin_ads_i20_20260325_200421.csv réussi.
Terminé : 123 annonces au total dans /home/ubuntu/app/leboncoin_ads_i20_20260325_200421.csv
INFO: Model override : i20
INFO: Schéma initialisé dans /home/ubuntu/app/db/lbc.sqlite
════════════════════════════════════════════════════════════
📦 MIGRATION CSV → SQLite unifié
════════════════════════════════════════════════════════════
📂 leboncoin_ads_i20_20260325_200421.csv
✅ 123 lus, 123 insérés, 0 ignorés, 0 erreurs
────────────────────────────────────────────────────────────
📊 TOTAL : 123 lus, 123 insérés
💾 Base : /home/ubuntu/app/db/lbc.sqlite
📌 6998 annonces en base
════════════════════════════════════════════════════════════
INFO: 123 list_id lus dans le CSV.
INFO: 123 annonces actives en base pour hyundai i20.
INFO: Aucune annonce manquante — toutes présentes dans le crawl.
════════════════════════════════════════════════════════════
CHECK DISPONIBILITÉ
CSV : leboncoin_ads_i20_20260325_200421.csv
Brand : hyundai | Modèle : i20
════════════════════════════════════════════════════════════
Annonces dans le CSV : 123
Annonces actives en DB : 123
Absentes du crawl : 0
Marquées indisponibles : 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
✅ 245 annonces chargées (modèle 'i20')
======================================================================
📊 EXPLORATION DES DONNÉES BRUTES
======================================================================
📌 Nombre total d'annonces : 245
📋 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 8490 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-25 18:01:44
Durée : 345 jours
👤 Répartition par type de vendeur :
private : 141 (57.6%)
pro : 104 (42.4%)
⛽ Répartition par carburant :
essence : 200 (81.6%)
diesel : 45 (18.4%)
🏭 Top 10 marques :
hyundai : 245 (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 : 245 / 245
Pourcentage conservé : 100.0%
🔍 Détection des outliers (méthode IQR)...
price_eur : 2 outliers (0.8%)
Bornes IQR : [4,750 ; 10,750]
mileage_km : 7 outliers (2.9%)
Bornes IQR : [28,120 ; 216,728]
age_years : 22 outliers (9.0%)
Bornes IQR : [8 ; 12]
📌 Total d'annonces outliers (au moins 1 variable) : 29 (11.8%)
⚠️ Les outliers sont identifiés mais NON supprimés.
======================================================================
📊 RÉSUMÉ APRÈS NETTOYAGE
======================================================================
Nombre d'annonces restantes : 245
Dont outliers identifiés : 29
Annonces non-outliers : 216
Plages de valeurs :
price_eur : [ 3,800 ; 9,000] (moy: 7,764)
mileage_km : [ 95 ; 230,567] (moy: 121,715)
year_model : [ 2,015 ; 2,025] (moy: 2,017)
age_years : [ 1 ; 11] (moy: 9)
km_per_year : [ 12 ; 24,308] (moy: 13,385)
💾 245 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 245 7763.893878 7990.000000 1059.172623 3800.000 7000.0 8500.0 9000.000000 1500.0
mileage_km 245 121715.065306 125740.000000 37909.332277 95.000 98848.0 146000.0 230567.000000 47152.0
year_model 245 2016.804082 2017.000000 1.328434 2015.000 2016.0 2017.0 2025.000000 1.0
age_years 245 9.195918 9.000000 1.328434 1.000 9.0 10.0 11.000000 1.0
km_per_year 245 13384.544716 13333.333333 4285.154551 11.875 10505.9 16300.0 24308.166667 5794.1
📊 Tableau formaté :
Variable Count Mean Median Std Min Q1 Q3 Max IQR
price_eur 245 7,764 7,990 1,059.17 3,800 7,000 8,500 9,000 1,500
mileage_km 245 121,715 125,740 37,909.33 95 98,848 146,000 230,567 47,152
year_model 245 2,017 2,017 1.33 2,015 2,016 2,017 2,025 1
age_years 245 9.2 9.0 1.33 1.0 9.0 10.0 11.0 1.0
km_per_year 245 13,384.5 13,333.3 4,285.15 11.9 10,505.9 16,300.0 24,308.2 5,794.1
📝 INTERPRÉTATION DES STATISTIQUES :
--------------------------------------------------
📌 price_eur :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Faible dispersion (CV = 14%, σ = 1,059)
→ Étendue : [3,800 ; 9,000] (IQR = 1,500)
📌 mileage_km :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Dispersion MODÉRÉE (CV = 31%, σ = 37,909)
→ Étendue : [95 ; 230,567] (IQR = 47,152)
📌 year_model :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Faible dispersion (CV = 0%, σ = 1)
→ Étendue : [2,015 ; 2,025] (IQR = 1)
📌 age_years :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Faible dispersion (CV = 14%, σ = 1)
→ Étendue : [1 ; 11] (IQR = 1)
📌 km_per_year :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Dispersion MODÉRÉE (CV = 32%, σ = 4,285)
→ Étendue : [12 ; 24,308] (IQR = 5,794)
======================================================================
📊 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 %
---------------------------------------------------------------------------
2026-03-25 20:04:34,650 [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-25 20:04:34,650 [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.
2015 25 7,574 7,800 N/A
2016 96 7,605 7,900 -0.4%
2017 63 7,663 7,900 -0.8%
2018 39 8,073 8,480 -5.3%
2019 15 8,361 8,490 -3.6%
2020 5 8,584 8,480 -2.7%
📌 Décote annuelle moyenne : -2.6%
📊 Prix moyen par tranche de kilométrage...
📋 Table : Prix par tranche de km
----------------------------------------------------------------------
Tranche Nb Prix moy Prix méd Var %
----------------------------------------------------------------------
0-20k 3 7,800 8,900 N/A
20-50k 7 8,167 7,990 +4.7%
50-80k 25 8,514 8,700 +4.2%
80-120k 75 8,158 8,490 -4.2%
120-160k 96 7,748 7,900 -5.0%
160-200k 35 6,530 6,200 -15.7%
200k+ 4 6,148 6,050 -5.9%
📊 Prix moyen par âge...
📋 Table : Prix par âge
-----------------------------------------------------------------
Âge Nb Prix moy Décote %
-----------------------------------------------------------------
6 5 8,584 N/A
7 15 8,361 -2.6%
8 39 8,073 -3.4%
9 63 7,663 -5.1%
10 96 7,605 -0.8%
11 25 7,574 -0.4%
📌 La décote ralentit significativement à 10 ans
📊 Prix par type de carburant...
📋 Table : Prix par carburant
----------------------------------------------------------------------
Carburant Nb Prix moy Prix méd
----------------------------------------------------------------------
diesel 45 7,204 7,290
essence 200 7,890 7,990
📌 Carburant avec prix médian le plus élevé : essence (7,990€)
📌 Carburant avec prix médian le plus bas : diesel (7,290€)
📊 Prix par type de vendeur...
📋 Table : Prix par type de vendeur
------------------------------------------------------------
Type Nb Prix moy Prix méd
------------------------------------------------------------
private 141 7,647 7,900
pro 104 7,922 7,990
📌 Test Mann-Whitney (médiane) : p = 0.0829
❌ Différence NON significative (p >= 0.05)
📌 Écart médian Pro - Particulier : +90€
📊 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 :
--------------------------------------------------
20k : décote -1.3% (n= 2)
40k : décote -4.7% (n= 5)
50k : décote -5.6% (n= 2)
60k : décote 4.7% (n= 11)
70k : décote -3.9% (n= 12)
80k : décote 2.9% (n= 7)
90k : décote 0.6% (n= 22)
100k : décote 2.9% (n= 28)
110k : décote 2.0% (n= 18)
120k : décote 3.3% (n= 30)
130k : décote -1.0% (n= 28)
140k : décote -0.4% (n= 24)
150k : décote -1.0% (n= 14)
160k : décote 5.2% (n= 15)
170k : décote 23.8% (n= 13) ⚡
180k : décote -9.3% (n= 6)
200k : décote 2.4% (n= 2)
📌 Seuils où la décote s'accélère (> 8%) :
→ 170k km : 23.8%
✅ 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 2.6% (n= 15) 🐢 LENTE
8 ans : décote 3.4% (n= 39)
9 ans : décote 5.1% (n= 63)
10 ans : décote 0.8% (n= 96) 🐢 LENTE
11 ans : décote 0.4% (n= 25) 🐢 LENTE
📌 Décote lente (< 5% par an) :
→ 7 ans : 2.6%
→ 8 ans : 3.4%
→ 10 ans : 0.8%
→ 11 ans : 0.4%
✅ Sauvegardé : /home/ubuntu/app/stats/i20/figures/seuils_age.png
======================================================================
📊 IDENTIFICATION DES BONNES AFFAIRES
======================================================================
📊 Construction du modèle de prix attendu...
📌 Modèle : prix = -111.14 × âge + -0.0128 × km + 10,346
📌 R² = 0.254
📊 Calcul des écarts de prix...
📋 Classification des annonces :
🌟 Excellente affaire : 15 ( 6.1%)
👍 Bonne affaire : 35 ( 14.3%)
📊 Prix marché : 146 ( 59.6%)
💰 Cher : 45 ( 18.4%)
🔴 Très cher : 4 ( 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,765€ | Écart: -51.1% | Année: 2015 | Km: 106,000
2. [3160167161] Hyundai i20 2017
Prix: 4,000€ | Attendu: 7,794€ | Écart: -48.7% | Année: 2017 | Km: 121,054
3. [3132112485] Vend ou échange
Prix: 5,500€ | Attendu: 9,120€ | Écart: -39.7% | 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,278€ | Écart: -31.4% | Année: 2018 | Km: 170,000
5. [3139554030] Hyundai i20 coupe 1.2 84 cv intuitive 3 portes
Prix: 4,990€ | Attendu: 7,188€ | Écart: -30.6% | Année: 2018 | Km: 177,000
6. [3144748405] Hyundai i20 1.2 Go Klima RadioCD
Prix: 4,985€ | Attendu: 7,091€ | Écart: -29.7% | Année: 2017 | Km: 175,866
7. [3141044598] Hyundai i20
Prix: 5,600€ | Attendu: 7,932€ | Écart: -29.4% | Année: 2016 | Km: 101,653
8. [3154012812] Hyundai
Prix: 5,100€ | Attendu: 7,055€ | Écart: -27.7% | Année: 2016 | Km: 170,000
9. [3159144757] Hyundai i20 1.2 essence 2016 – CT OK – pneus neufs
Prix: 5,400€ | Attendu: 7,202€ | Écart: -25.0% | Année: 2016 | Km: 158,600
10. [3157664571] Hyundai i20 1.1 CRDI
Prix: 5,300€ | Attendu: 6,876€ | Écart: -22.9% | Année: 2016 | Km: 184,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: 7,120€ | Écart: +26.3% | Année: 2016 | Km: 165,000
2. [3164886925] Hyundai i20 Coupé
Prix: 9,000€ | Attendu: 7,359€ | Écart: +22.3% | Année: 2017 | Km: 155,000
3. [3158481657] Hyundai i20
Prix: 8,900€ | Attendu: 7,381€ | Écart: +20.6% | Année: 2016 | Km: 144,600
4. [3109227704] Hyundai i20 crdi 75ch edition navy
Prix: 8,900€ | Attendu: 7,395€ | Écart: +20.3% | Année: 2017 | Km: 152,154
5. [3152500439] Hyundai i20 1.0 T-GDi 100 UEFA EURO 2016
Prix: 8,489€ | Attendu: 7,230€ | Écart: +17.4% | Année: 2016 | Km: 156,400
6. [3151384014] Hyundai i20
Prix: 8,500€ | Attendu: 7,291€ | Écart: +16.6% | Année: 2015 | Km: 143,000
7. [3155001248] Vente voiture hyundai i20
Prix: 8,500€ | Attendu: 7,303€ | Écart: +16.4% | Année: 2018 | Km: 168,000
8. [2972084163] HYUNDAI I20 1.2i - 84 BERLINE Initia
Prix: 8,990€ | Attendu: 7,726€ | Écart: +16.4% | Année: 2015 | Km: 109,000
9. [3140396976] HYUNDAI i20 1.1 CRDi 75 Intuitive
2026-03-25 20:04:44,882 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-25 20:04:44,889 [INFO] services.llm_service — Batch 0-1: 1 résultats extraits (modèle=gpt-5-nano)
2026-03-25 20:04:45,212 [INFO] stats.exporters.to_db — stats_descriptives : 5 lignes insérées
2026-03-25 20:04:45,213 [INFO] stats.exporters.to_db — modele_regression : 2 lignes insérées
2026-03-25 20:04:45,275 [INFO] stats.exporters.to_db — referentiel_prix : 29 segments insérés
2026-03-25 20:04:45,293 [INFO] stats.exporters.to_db — ads.deal_columns : 245 annonces mises à jour
Prix: 8,900€ | Attendu: 7,684€ | Écart: +15.8% | Année: 2016 | Km: 121,000
10. [3164815335] Hyundai I20 1.2 84 GO NAVI
Prix: 8,990€ | Attendu: 7,826€ | Écart: +14.9% | Année: 2016 | Km: 109,939
🔎 Détection des prix suspects (seuil: -40%)...
⚠️ 2 annonces avec prix suspect
💾 2 signaux prix persistés dans SQLite
======================================================================
M05 — Extraction LLM des titres (GPT-5 Nano)
======================================================================
Annonces sans évaluation LLM : 1
Résultats extraits : 1
Évaluations insérées : 1
======================================================================
📊 TABLEAU DE BORD RÉCAPITULATIF
======================================================================
┌──────────────────────────────────────────────────┐
│ Nombre total d'annonces │ 245 │
│ Prix moyen │ 7,764 € │
│ Prix médian │ 7,990 € │
│ Km moyen │ 121,715 km │
│ Km médian │ 125,740 km │
│ Âge moyen │ 9.2 ans │
│ Âge médian │ 9.0 ans │
│ Km/an moyen │ 13,385 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 (160000, 180000]
⛽ Carburant tenant le mieux sa valeur : essence (prix/âge le plus élevé)
👔 Les pros vendent 1.1% plus cher que les particuliers (médiane)
🔄 Km/an médian : 13,333 km → Profil dominant : 10-15k (Normal)
🏭 Top 3 marques = 100% du marché : hyundai (245)
======================================================================
💡 RECOMMANDATIONS
======================================================================
🛒 POUR UN ACHETEUR :
--------------------------------------------------
• Sweet spot : véhicules de 5-8 ans, 60-120k km
Prix moyen dans cette fourchette : 8,491€
(28 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 < 125,740 km se vendent mieux
• Mettre en avant un faible km/an si applicable
🎯 SEGMENTS DE MARCHÉ :
--------------------------------------------------
• Budget (62 annonces) :
Prix : 3,800€ - 7,000€
Âge moyen : 9.5 ans | Km moyen : 147,298
• Milieu de gamme (127 annonces) :
Prix : 7,200€ - 8,500€
Âge moyen : 9.2 ans | Km moyen : 121,105
• Premium (56 annonces) :
Prix : 8,600€ - 9,000€
Âge moyen : 8.7 ans | Km moyen : 94,774
======================================================================
💾 EXPORT DES RÉSULTATS EN BASE SQLite
======================================================================
📌 Run #165 créé
🔍 Modèle : i20
📎 245 annonces liées au run
✅ Stats descriptives : 5 variables
✅ Modèle régression : 2 coefficients (R²=0.254)
✅ Référentiel prix : 29 segments
✅ Classifications deal : 245 annonces
💾 Tout exporté dans /home/ubuntu/app/db/lbc.sqlite
══════════════════════════════════════════════════════════════════════
✅ ANALYSE TERMINÉE en 13.3 secondes
📊 245 annonces analysées (run #165)
🔍 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_20260325_200446.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_20260325_200446.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_20260325_200446.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_20260325_200446.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_20260325_200446.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_20260325_200446.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_20260325_200446.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_20260325_200446.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_20260325_200446.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
→ 35 annonces récupérées (total en mémoire: 350)
Export de 350 annonces vers /home/ubuntu/app/leboncoin_ads_berlingo_20260325_200446.csv réussi.
Terminé : 350 annonces au total dans /home/ubuntu/app/leboncoin_ads_berlingo_20260325_200446.csv
INFO: Model override : berlingo
INFO: Schéma initialisé dans /home/ubuntu/app/db/lbc.sqlite
════════════════════════════════════════════════════════════
📦 MIGRATION CSV → SQLite unifié
════════════════════════════════════════════════════════════
📂 leboncoin_ads_berlingo_20260325_200446.csv
✅ 350 lus, 350 insérés, 0 ignorés, 0 erreurs
────────────────────────────────────────────────────────────
📊 TOTAL : 350 lus, 350 insérés
💾 Base : /home/ubuntu/app/db/lbc.sqlite
📌 7002 annonces en base
════════════════════════════════════════════════════════════
INFO: 350 list_id lus dans le CSV.
INFO: 351 annonces actives en base pour citroen berlingo.
INFO: 1 annonce(s) marquées indisponibles.
════════════════════════════════════════════════════════════
CHECK DISPONIBILITÉ
CSV : leboncoin_ads_berlingo_20260325_200446.csv
Brand : citroen | Modèle : berlingo
════════════════════════════════════════════════════════════
Annonces dans le CSV : 350
Annonces actives en DB : 351
Absentes du crawl : 1
Marquées indisponibles : 1
════════════════════════════════════════════════════════════
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
✅ 563 annonces chargées (modèle 'berlingo')
======================================================================
📊 EXPLORATION DES DONNÉES BRUTES
======================================================================
📌 Nombre total d'annonces : 563
📋 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-25 19:19:51
Durée : 407 jours
👤 Répartition par type de vendeur :
pro : 456 (81.0%)
private : 107 (19.0%)
⛽ Répartition par carburant :
diesel : 548 (97.3%)
électrique : 10 (1.8%)
essence : 5 (0.9%)
🏭 Top 10 marques :
citroen : 563 (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 : 15 lignes supprimées
─────────────────────────────────────────────
Total supprimé : 17
Restantes : 546 / 563
Pourcentage conservé : 97.0%
🔍 Détection des outliers (méthode IQR)...
price_eur : 7 outliers (1.3%)
Bornes IQR : [-4 ; 28,786]
mileage_km : 4 outliers (0.7%)
Bornes IQR : [-82,232 ; 241,339]
age_years : 4 outliers (0.7%)
Bornes IQR : [-3 ; 13]
📌 Total d'annonces outliers (au moins 1 variable) : 12 (2.2%)
⚠️ Les outliers sont identifiés mais NON supprimés.
======================================================================
📊 RÉSUMÉ APRÈS NETTOYAGE
======================================================================
Nombre d'annonces restantes : 546
Dont outliers identifiés : 12
Annonces non-outliers : 534
Plages de valeurs :
price_eur : [ 2,800 ; 38,190] (moy: 14,807)
mileage_km : [ 1 ; 309,000] (moy: 83,687)
year_model : [ 2,009 ; 2,025] (moy: 2,021)
age_years : [ 1 ; 17] (moy: 5)
km_per_year : [ 1 ; 56,667] (moy: 14,032)
💾 546 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 546 14806.608059 13800.00 5807.851391 2800.0 10792.500000 17990.000000 38190.000000 7197.500000
mileage_km 546 83687.173993 86180.00 57312.424080 1.0 39107.250000 120000.000000 309000.000000 80892.750000
year_model 546 2020.642857 2020.00 2.746593 2009.0 2019.000000 2023.000000 2025.000000 4.000000
age_years 546 5.357143 6.00 2.746593 1.0 3.000000 7.000000 17.000000 4.000000
km_per_year 546 14032.279242 14406.25 9120.916390 1.0 8517.857143 19282.711806 56666.666667 10764.854663
📊 Tableau formaté :
Variable Count Mean Median Std Min Q1 Q3 Max IQR
price_eur 546 14,807 13,800 5,807.85 2,800 10,792 17,990 38,190 7,198
mileage_km 546 83,687 86,180 57,312.42 1 39,107 120,000 309,000 80,893
year_model 546 2,021 2,020 2.75 2,009 2,019 2,023 2,025 4
age_years 546 5.4 6.0 2.75 1.0 3.0 7.0 17.0 4.0
km_per_year 546 14,032.3 14,406.2 9,120.92 1.0 8,517.9 19,282.7 56,666.7 10,764.9
📝 INTERPRÉTATION DES STATISTIQUES :
--------------------------------------------------
📌 price_eur :
→ Distribution asymétrique DROITE (moyenne 14,807 > médiane 13,800)
Quelques valeurs élevées tirent la moyenne vers le haut.
→ Dispersion MODÉRÉE (CV = 39%, σ = 5,808)
→ Étendue : [2,800 ; 38,190] (IQR = 7,198)
📌 mileage_km :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ FORTE dispersion (CV = 68%, σ = 57,312)
→ Étendue : [1 ; 309,000] (IQR = 80,893)
📌 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 = 51%, σ = 3)
→ Étendue : [1 ; 17] (IQR = 4)
📌 km_per_year :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ FORTE dispersion (CV = 65%, σ = 9,121)
2026-03-25 20:05:27,500 [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-25 20:05:27,500 [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.
→ Étendue : [1 ; 56,667] (IQR = 10,765)
======================================================================
📊 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%
2014 2 9,345 9,345 -36.4%
2016 12 8,199 8,975 +12.3%
2017 36 8,941 8,445 -9.1%
2018 67 10,047 9,490 -12.4%
2019 61 12,117 11,990 -20.6%
2020 100 13,159 12,750 -8.6%
2021 71 14,237 13,980 -8.2%
2022 52 14,769 14,645 -3.7%
2023 40 18,150 17,900 -22.9%
2024 22 21,188 20,735 -16.7%
2025 77 24,825 24,480 -17.2%
📌 Décote annuelle moyenne : -15.5%
📊 Prix moyen par tranche de kilométrage...
📋 Table : Prix par tranche de km
----------------------------------------------------------------------
Tranche Nb Prix moy Prix méd Var %
----------------------------------------------------------------------
0-20k 102 23,867 23,545 N/A
20-50k 56 17,315 17,524 -27.5%
50-80k 91 15,271 15,690 -11.8%
80-120k 152 12,482 12,545 -18.3%
120-160k 95 10,465 10,300 -16.2%
160-200k 37 8,556 8,500 -18.2%
200k+ 13 6,358 6,000 -25.7%
📊 Prix moyen par âge...
📋 Table : Prix par âge
-----------------------------------------------------------------
Âge Nb Prix moy Décote %
-----------------------------------------------------------------
1 77 24,825 N/A
2 22 21,188 -14.6%
3 40 18,150 -14.3%
4 52 14,769 -18.6%
5 71 14,237 -3.6%
6 100 13,159 -7.6%
7 61 12,117 -7.9%
8 67 10,047 -17.1%
9 36 8,941 -11.0%
10 12 8,199 -8.3%
12 2 9,345 +14.0%
13 2 6,850 -26.7%
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 532 14,808 13,800
essence 5 11,744 9,990
électrique 9 16,439 15,990
📌 Carburant avec prix médian le plus élevé : électrique (15,990€)
📌 Carburant avec prix médian le plus bas : essence (9,990€)
📊 Prix par type de vendeur...
📋 Table : Prix par type de vendeur
------------------------------------------------------------
Type Nb Prix moy Prix méd
------------------------------------------------------------
private 106 12,256 11,650
pro 440 15,421 13,990
📌 Test Mann-Whitney (médiane) : p = 0.0000
✅ Différence SIGNIFICATIVE (p < 0.05)
📌 Écart médian Pro - Particulier : +2,340€
📊 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 20.7% (n= 10) ⚡
20k : décote 9.6% (n= 15)
30k : décote -0.6% (n= 23)
40k : décote 3.8% (n= 18)
50k : décote 7.5% (n= 31)
60k : décote 1.1% (n= 31)
70k : décote 5.1% (n= 29)
80k : décote 5.0% (n= 37)
90k : décote 6.9% (n= 41)
100k : décote 8.8% (n= 40)
110k : décote 6.8% (n= 34)
120k : décote 2.1% (n= 31)
130k : décote 2.6% (n= 26)
140k : décote 2.3% (n= 15)
150k : décote 2.0% (n= 23)
160k : décote 12.9% (n= 19) ⚡
170k : décote -1.7% (n= 11)
180k : décote 16.9% (n= 7) ⚡
200k : décote 7.5% (n= 5)
210k : décote -4.0% (n= 3)
300k+ : décote 32.7% (n= 2) ⚡
📌 Seuils où la décote s'accélère (> 8%) :
→ 10k km : 20.7%
→ 20k km : 9.6%
→ 100k km : 8.8%
→ 160k km : 12.9%
→ 180k km : 16.9%
→ 300k+ km : 32.7%
✅ 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 14.6% (n= 22)
3 ans : décote 14.3% (n= 40)
4 ans : décote 18.6% (n= 52) ⚡ FORTE
5 ans : décote 3.6% (n= 71)
6 ans : décote 7.6% (n=100)
7 ans : décote 7.9% (n= 61)
8 ans : décote 17.1% (n= 67) ⚡ FORTE
9 ans : décote 11.0% (n= 36)
10 ans : décote 8.3% (n= 12)
12 ans : décote -14.0% (n= 2) 🐢 LENTE
13 ans : décote 26.7% (n= 2) ⚡ FORTE
17 ans : décote 29.9% (n= 2) ⚡ FORTE
📌 Décote rapide (> 10% par an) :
→ 2 ans : 14.6%
→ 3 ans : 14.3%
→ 4 ans : 18.6%
→ 8 ans : 17.1%
→ 9 ans : 11.0%
→ 13 ans : 26.7%
→ 17 ans : 29.9%
📌 Décote lente (< 5% par an) :
→ 5 ans : 3.6%
→ 12 ans : -14.0%
✅ Sauvegardé : /home/ubuntu/app/stats/berlingo/figures/seuils_age.png
======================================================================
📊 IDENTIFICATION DES BONNES AFFAIRES
======================================================================
📊 Construction du modèle de prix attendu...
📌 Modèle : prix = -912.74 × âge + -0.0513 × km + 23,991
📌 R² = 0.774
📊 Calcul des écarts de prix...
📋 Classification des annonces :
🌟 Excellente affaire : 51 ( 9.4%)
👍 Bonne affaire : 96 ( 17.7%)
📊 Prix marché : 280 ( 51.7%)
💰 Cher : 54 ( 10.0%)
🔴 Très cher : 61 ( 11.3%)
📊 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: 9,943€ | Écart: -69.8% | Année: 2018 | Km: 131,461
2. [3166746198] Citroën Berlingo FOURGON XL BLUEHDI 100 S&S ETG6 C
Prix: 3,000€ | Attendu: 8,126€ | Écart: -63.1% | Année: 2018 | Km: 166,868
3. [3156023107] Citroën Berlingo 1.5 BLUEHDI 100 STE XL DRIVER
Prix: 8,000€ | Attendu: 16,417€ | Écart: -51.3% | Année: 2021 | Km: 58,647
4. [3144063650] Citroën Berlingo 1.5 BLUEDHI 100 STE XL DRIVER
Prix: 8,000€ | Attendu: 15,868€ | Écart: -49.6% | Année: 2022 | Km: 87,146
5. [3156192309] Citroën Berlingo FOURGON XL BLUEHDI 100 S&S ETG6 C
Prix: 2,800€ | Attendu: 5,308€ | Écart: -47.3% | Année: 2017 | Km: 203,997
6. [3156023444] Citroën Berlingo 1.5 BLUEHDI 100 STE XL DRIVER
2026-03-25 20:05:49,317 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-25 20:05:49,324 [INFO] services.llm_service — Batch 0-4: 4 résultats extraits (modèle=gpt-5-nano)
2026-03-25 20:05:49,617 [INFO] stats.exporters.to_db — stats_descriptives : 5 lignes insérées
2026-03-25 20:05:49,621 [INFO] stats.exporters.to_db — modele_regression : 2 lignes insérées
2026-03-25 20:05:49,760 [INFO] stats.exporters.to_db — referentiel_prix : 57 segments insérés
2026-03-25 20:05:49,800 [INFO] stats.exporters.to_db — ads.deal_columns : 546 annonces mises à jour
Prix: 8,000€ | Attendu: 15,153€ | Écart: -47.2% | Année: 2021 | Km: 83,293
7. [3157282073] Citroen berlingo xl 1.6 bluehdi 100 cv club
Prix: 5,980€ | Attendu: 11,127€ | Écart: -46.3% | Année: 2018 | Km: 108,380
8. [3163320492] Citroën Berlingo VAN XL 950 PURETECH 130 S&S EAT8
Prix: 8,250€ | Attendu: 14,994€ | Écart: -45.0% | Année: 2020 | Km: 68,597
9. [2984931973] Citroën Berlingo Electrique Taille XL Club
Prix: 8,590€ | Attendu: 15,372€ | Écart: -44.1% | Année: 2018 | Km: 25,657
10. [3156133024] Citroën berlingo xl électrique confort isotherme T
Prix: 7,990€ | Attendu: 13,764€ | Écart: -41.9% | Année: 2018 | Km: 57,000
🔴 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,305€ | Écart: +359.6% | Année: 2017 | Km: 282,000
2. [3155307735] Citroën berlingo
Prix: 7,000€ | Attendu: 1,837€ | Écart: +281.2% | Année: 2013 | Km: 200,500
3. [3115315205] Citroën Jumpy CAB APPROFONDIE XL BLUEHDI 180 S&S E
Prix: 38,190€ | Attendu: 23,076€ | Écart: +65.5% | Année: 2025 | Km: 40
4. [3140204221] Citroen Berlingo Van XL BlueHDi 100 S&S Cabine App
Prix: 9,490€ | Attendu: 5,763€ | Écart: +64.7% | Année: 2018 | Km: 212,912
5. [3130621009] Citroen BERLINGO XL 1.6 HDI 90 ch CABINE APPROFOND
Prix: 11,490€ | Attendu: 7,085€ | Écart: +62.2% | Année: 2014 | Km: 116,000
6. [3148392923] CITROEN BERLINGO 1.5 BlueHDi S&S - 130 XL Feel 7 P
Prix: 19,990€ | Attendu: 12,378€ | Écart: +61.5% | Année: 2018 | Km: 84,000
7. [3097892706] Citroën Berlingo CABINE APPROFONDIE CA TAILLE XL B
Prix: 37,140€ | Attendu: 23,078€ | Écart: +60.9% | Année: 2025 | Km: 1
8. [3158708742] Berlingo XL 1.6L bluehdi aménagé
Prix: 15,000€ | Attendu: 10,018€ | Écart: +49.7% | Année: 2018 | Km: 130,000
9. [3156325212] À vendre - Citroën Berlingo rallongée - Boîte auto
Prix: 9,500€ | Attendu: 6,345€ | Écart: +49.7% | Année: 2016 | Km: 166,000
10. [3109384717] Citroen Berlingo Van XL BlueHDi 100ch S&S Cabine A
Prix: 34,212€ | Attendu: 23,077€ | Écart: +48.2% | Année: 2025 | Km: 10
🔎 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 : 4
Résultats extraits : 4
Évaluations insérées : 4
======================================================================
📊 TABLEAU DE BORD RÉCAPITULATIF
======================================================================
┌──────────────────────────────────────────────────┐
│ Nombre total d'annonces │ 546 │
│ Prix moyen │ 14,807 € │
│ Prix médian │ 13,800 € │
│ Km moyen │ 83,687 km │
│ Km médian │ 86,180 km │
│ Âge moyen │ 5.4 ans │
│ Âge médian │ 6.0 ans │
│ Km/an moyen │ 14,032 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.1% 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 (546)
======================================================================
💡 RECOMMANDATIONS
======================================================================
🛒 POUR UN ACHETEUR :
--------------------------------------------------
• Sweet spot : véhicules de 5-8 ans, 60-120k km
Prix moyen dans cette fourchette : 12,947€
(166 annonces disponibles)
• Prix médian du marché : 13,800€ → cible < 12,420€ 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,800€
• Positionner légèrement sous le marché pour vendre vite (-5% à -10%)
• Les véhicules < 86,180 km se vendent mieux
• Mettre en avant un faible km/an si applicable
🎯 SEGMENTS DE MARCHÉ :
--------------------------------------------------
• Budget (137 annonces) :
Prix : 2,800€ - 10,790€
Âge moyen : 8.0 ans | Km moyen : 140,666
• Milieu de gamme (274 annonces) :
Prix : 10,800€ - 17,990€
Âge moyen : 5.7 ans | Km moyen : 89,137
• Premium (135 annonces) :
Prix : 18,000€ - 38,190€
Âge moyen : 2.0 ans | Km moyen : 14,803
======================================================================
💾 EXPORT DES RÉSULTATS EN BASE SQLite
======================================================================
📌 Run #166 créé
🔍 Modèle : berlingo
📎 546 annonces liées au run
✅ Stats descriptives : 5 variables
✅ Modèle régression : 2 coefficients (R²=0.774)
✅ Référentiel prix : 57 segments
✅ Classifications deal : 546 annonces
💾 Tout exporté dans /home/ubuntu/app/db/lbc.sqlite
══════════════════════════════════════════════════════════════════════
✅ ANALYSE TERMINÉE en 25.1 secondes
📊 546 annonces analysées (run #166)
🔍 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®date=2015-max&mileage=min-150000&u_car_brand=CITROEN&seats=999999&u_car_model=CITROEN_C4%2CCITROEN_C4+Aircross%2CCITROEN_C4+Cactus%2CCITROEN_C4+Picasso%2CCITROEN_C4+SpaceTourer%2CCITROEN_C4+X&page=1
→ 35 annonces récupérées (total en mémoire: 35)
Export de 35 annonces vers /home/ubuntu/app/leboncoin_ads_c4_20260325_200550.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®date=2015-max&mileage=min-150000&u_car_brand=CITROEN&seats=999999&u_car_model=CITROEN_C4%2CCITROEN_C4+Aircross%2CCITROEN_C4+Cactus%2CCITROEN_C4+Picasso%2CCITROEN_C4+SpaceTourer%2CCITROEN_C4+X&page=2
→ 35 annonces récupérées (total en mémoire: 70)
Export de 70 annonces vers /home/ubuntu/app/leboncoin_ads_c4_20260325_200550.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®date=2015-max&mileage=min-150000&u_car_brand=CITROEN&seats=999999&u_car_model=CITROEN_C4%2CCITROEN_C4+Aircross%2CCITROEN_C4+Cactus%2CCITROEN_C4+Picasso%2CCITROEN_C4+SpaceTourer%2CCITROEN_C4+X&page=3
→ 35 annonces récupérées (total en mémoire: 105)
Export de 105 annonces vers /home/ubuntu/app/leboncoin_ads_c4_20260325_200550.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®date=2015-max&mileage=min-150000&u_car_brand=CITROEN&seats=999999&u_car_model=CITROEN_C4%2CCITROEN_C4+Aircross%2CCITROEN_C4+Cactus%2CCITROEN_C4+Picasso%2CCITROEN_C4+SpaceTourer%2CCITROEN_C4+X&page=4
→ 35 annonces récupérées (total en mémoire: 140)
Export de 140 annonces vers /home/ubuntu/app/leboncoin_ads_c4_20260325_200550.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®date=2015-max&mileage=min-150000&u_car_brand=CITROEN&seats=999999&u_car_model=CITROEN_C4%2CCITROEN_C4+Aircross%2CCITROEN_C4+Cactus%2CCITROEN_C4+Picasso%2CCITROEN_C4+SpaceTourer%2CCITROEN_C4+X&page=5
→ 34 annonces récupérées (total en mémoire: 174)
Export de 174 annonces vers /home/ubuntu/app/leboncoin_ads_c4_20260325_200550.csv réussi.
Terminé : 174 annonces au total dans /home/ubuntu/app/leboncoin_ads_c4_20260325_200550.csv
INFO: Model override : c4
INFO: Schéma initialisé dans /home/ubuntu/app/db/lbc.sqlite
════════════════════════════════════════════════════════════
📦 MIGRATION CSV → SQLite unifié
════════════════════════════════════════════════════════════
📂 leboncoin_ads_c4_20260325_200550.csv
✅ 174 lus, 174 insérés, 0 ignorés, 0 erreurs
────────────────────────────────────────────────────────────
📊 TOTAL : 174 lus, 174 insérés
💾 Base : /home/ubuntu/app/db/lbc.sqlite
📌 7004 annonces en base
════════════════════════════════════════════════════════════
INFO: 174 list_id lus dans le CSV.
INFO: 179 annonces actives en base pour citroen c4.
INFO: 5 annonce(s) marquées indisponibles.
════════════════════════════════════════════════════════════
CHECK DISPONIBILITÉ
CSV : leboncoin_ads_c4_20260325_200550.csv
Brand : citroen | Modèle : c4
════════════════════════════════════════════════════════════
Annonces dans le CSV : 174
Annonces actives en DB : 179
Absentes du crawl : 5
Marquées indisponibles : 5
════════════════════════════════════════════════════════════
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
✅ 297 annonces chargées (modèle 'c4')
======================================================================
📊 EXPLORATION DES DONNÉES BRUTES
======================================================================
📌 Nombre total d'annonces : 297
📋 Premières lignes (colonnes parsées) :
list_id subject price_eur year_model mileage_km fuel brand model owner_type first_publication_date
0 3114906971 Citroen c4 spacetourer 1.2 130cv business 9500 2019 114200 essence citroen c4 pro 2026-02-17 16:35:09
1 3120070348 Citroen GRAND C4 PICASSO BLUEHDI 120CH BUSINESS + S&S 98G 9990 2015 149515 diesel citroen c4 pro 2025-12-30 11:37:00
2 3150919595 Citroen GRAND C4 SPACETOURER PURETECH 130CH S&S BUSINESS + E6.D 10990 2019 109477 essence citroen c4 pro 2026-02-25 04:59:50
3 3067498742 CITROEN C4 SPACETOURER 1.2 130 Business EAT8 7 Places / DISTRIBUTION NEUVE 10990 2019 68000 essence citroen c4 pro 2025-10-01 09:38:00
4 3034772801 Citroen C4 Grand Picasso 1.6 BLUEHDI 120 FEEL EAT BVA START-STOP 10490 2017 143000 diesel citroen c4 pro 2025-08-04 09:52:00
❓ 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 : 2023-11-09 04:54:09
Dernière publication : 2026-03-25 19:53:03
Durée : 867 jours
👤 Répartition par type de vendeur :
pro : 155 (52.2%)
private : 142 (47.8%)
⛽ Répartition par carburant :
diesel : 164 (55.2%)
essence : 132 (44.4%)
autre : 1 (0.3%)
🏭 Top 10 marques :
citroen : 297 (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 : 296 / 297
Pourcentage conservé : 99.7%
🔍 Détection des outliers (méthode IQR)...
price_eur : 10 outliers (3.4%)
Bornes IQR : [6,000 ; 13,380]
mileage_km : 12 outliers (4.1%)
Bornes IQR : [63,500 ; 187,500]
age_years : 0 outliers (0.0%)
Bornes IQR : [2 ; 14]
📌 Total d'annonces outliers (au moins 1 variable) : 22 (7.4%)
⚠️ Les outliers sont identifiés mais NON supprimés.
======================================================================
📊 RÉSUMÉ APRÈS NETTOYAGE
======================================================================
Nombre d'annonces restantes : 296
Dont outliers identifiés : 22
Annonces non-outliers : 274
Plages de valeurs :
price_eur : [ 3,990 ; 11,000] (moy: 9,505)
mileage_km : [ 186 ; 150,000] (moy: 120,798)
year_model : [ 2,015 ; 2,022] (moy: 2,017)
age_years : [ 4 ; 11] (moy: 9)
km_per_year : [ 17 ; 37,387] (moy: 14,627)
💾 296 annonces enrichies persistées dans SQLite
🔎 Détection des annonces suspectes...
⚠️ 8 signaux de suspicion détectés
km_trop_bas_essence: 1
km_trop_bas_diesel: 7
💾 8 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 296 9505.172297 9990.0 1487.261768 3990.000000 8767.500000 10612.500000 11000.00 1845.000000
mileage_km 296 120798.432432 129026.5 29213.239181 186.000000 110000.000000 141000.000000 150000.00 31000.000000
year_model 296 2017.307432 2017.0 1.776517 2015.000000 2016.000000 2019.000000 2022.00 3.000000
age_years 296 8.692568 9.0 1.776517 4.000000 7.000000 10.000000 11.00 3.000000
km_per_year 296 14627.256219 14000.0 5045.165312 16.909091 11934.722222 16666.666667 37386.75 4731.944444
📊 Tableau formaté :
Variable Count Mean Median Std Min Q1 Q3 Max IQR
price_eur 296 9,505 9,990 1,487.26 3,990 8,768 10,612 11,000 1,845
mileage_km 296 120,798 129,026 29,213.24 186 110,000 141,000 150,000 31,000
year_model 296 2,017 2,017 1.78 2,015 2,016 2,019 2,022 3
age_years 296 8.7 9.0 1.78 4.0 7.0 10.0 11.0 3.0
km_per_year 296 14,627.3 14,000.0 5,045.17 16.9 11,934.7 16,666.7 37,386.8 4,731.9
📝 INTERPRÉTATION DES STATISTIQUES :
--------------------------------------------------
📌 price_eur :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Faible dispersion (CV = 16%, σ = 1,487)
→ Étendue : [3,990 ; 11,000] (IQR = 1,845)
📌 mileage_km :
→ Distribution asymétrique GAUCHE (moyenne 120,798 < médiane 129,026)
Quelques valeurs basses tirent la moyenne vers le bas.
→ Faible dispersion (CV = 24%, σ = 29,213)
→ Étendue : [186 ; 150,000] (IQR = 31,000)
📌 year_model :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Faible dispersion (CV = 0%, σ = 2)
→ Étendue : [2,015 ; 2,022] (IQR = 3)
📌 age_years :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Faible dispersion (CV = 20%, σ = 2)
→ Étendue : [4 ; 11] (IQR = 3)
📌 km_per_year :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Dispersion MODÉRÉE (CV = 34%, σ = 5,045)
→ Étendue : [17 ; 37,387] (IQR = 4,732)
======================================================================
📊 DISTRIBUTIONS PAR CATÉGORIES
2026-03-25 20:06:14,136 [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-25 20:06:14,136 [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.
======================================================================
📊 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 53 8,890 8,999 N/A
2016 63 8,997 9,490 -1.2%
2017 56 9,638 9,990 -7.1%
2018 44 9,727 9,994 -0.9%
2019 42 10,028 10,000 -3.1%
2020 22 9,904 10,495 +1.2%
2021 14 10,554 10,745 -6.6%
2022 2 10,495 10,495 +0.6%
📌 Décote annuelle moyenne : -2.4%
📊 Prix moyen par tranche de kilométrage...
📋 Table : Prix par tranche de km
----------------------------------------------------------------------
Tranche Nb Prix moy Prix méd Var %
----------------------------------------------------------------------
0-20k 7 8,527 8,500 N/A
20-50k 1 10,980 10,980 +28.8%
50-80k 16 10,216 10,474 -7.0%
80-120k 82 9,453 9,990 -7.5%
120-160k 190 9,496 9,990 +0.4%
📊 Prix moyen par âge...
📋 Table : Prix par âge
-----------------------------------------------------------------
Âge Nb Prix moy Décote %
-----------------------------------------------------------------
4 2 10,495 N/A
5 14 10,554 +0.6%
6 22 9,904 -6.2%
7 42 10,028 +1.3%
8 44 9,727 -3.0%
9 56 9,638 -0.9%
10 63 8,997 -6.7%
11 53 8,890 -1.2%
📌 La décote ralentit significativement à 7 ans
📊 Prix par type de carburant...
📋 Table : Prix par carburant
----------------------------------------------------------------------
Carburant Nb Prix moy Prix méd
----------------------------------------------------------------------
diesel 163 9,935 10,000
essence 132 8,970 9,490
📌 Carburant avec prix médian le plus élevé : diesel (10,000€)
📌 Carburant avec prix médian le plus bas : essence (9,490€)
📊 Prix par type de vendeur...
📋 Table : Prix par type de vendeur
------------------------------------------------------------
Type Nb Prix moy Prix méd
------------------------------------------------------------
private 141 9,169 9,500
pro 155 9,811 9,990
📌 Test Mann-Whitney (médiane) : p = 0.0042
✅ Différence 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 -24.6% (n= 7)
70k : décote 6.6% (n= 8)
80k : décote -1.7% (n= 11)
90k : décote 10.1% (n= 21) ⚡
100k : décote -10.7% (n= 15)
110k : décote 8.0% (n= 35)
120k : décote -5.1% (n= 44)
130k : décote 1.1% (n= 62)
140k : décote 3.2% (n= 76)
150k : décote -1.7% (n= 8)
📌 Seuils où la décote s'accélère (> 8%) :
→ 90k km : 10.1%
✅ Sauvegardé : /home/ubuntu/app/stats/c4/figures/seuils_km.png
📊 Analyse des seuils d'âge...
📋 Taux de décote par année d'âge :
---------------------------------------------
5 ans : décote -0.6% (n= 14) 🐢 LENTE
6 ans : décote 6.2% (n= 22)
7 ans : décote -1.3% (n= 42) 🐢 LENTE
8 ans : décote 3.0% (n= 44)
9 ans : décote 0.9% (n= 56) 🐢 LENTE
10 ans : décote 6.7% (n= 63)
11 ans : décote 1.2% (n= 53) 🐢 LENTE
📌 Décote lente (< 5% par an) :
→ 5 ans : -0.6%
→ 7 ans : -1.3%
→ 8 ans : 3.0%
→ 9 ans : 0.9%
→ 11 ans : 1.2%
✅ Sauvegardé : /home/ubuntu/app/stats/c4/figures/seuils_age.png
======================================================================
📊 IDENTIFICATION DES BONNES AFFAIRES
======================================================================
📊 Construction du modèle de prix attendu...
📌 Modèle : prix = -264.29 × âge + -0.0007 × km + 11,893
📌 R² = 0.100
📊 Calcul des écarts de prix...
📋 Classification des annonces :
🌟 Excellente affaire : 36 ( 12.2%)
👍 Bonne affaire : 26 ( 8.8%)
📊 Prix marché : 154 ( 52.0%)
💰 Cher : 64 ( 21.6%)
🔴 Très cher : 16 ( 5.4%)
📊 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. [3159491862] CITROEN GRANDE C4 PICASSO 1.2 130Ch Exclusive
Prix: 3,990€ | Attendu: 9,168€ | Écart: -56.5% | Année: 2016 | Km: 110,000
2. [3144627553] Grand C4 Picasso
Prix: 4,500€ | Attendu: 8,881€ | Écart: -49.3% | Année: 2015 | Km: 140,000
3. [3148620999] C4 Picasso
Prix: 4,600€ | Attendu: 8,880€ | Écart: -48.2% | Année: 2015 | Km: 142,000
4. [3155010351] C4 Picasso
Prix: 4,600€ | Attendu: 8,880€ | Écart: -48.2% | Année: 2015 | Km: 142,000
5. [3167907041] Grand C4 Picasso
Prix: 5,600€ | Attendu: 9,142€ | Écart: -38.7% | Année: 2016 | Km: 144,800
6. [3159599228] Vends C4 Grand Picasso II 7 places
Prix: 6,000€ | Attendu: 9,678€ | Écart: -38.0% | Année: 2018 | Km: 135,000
7. [3148926526] C4 grand Picasso 2l hdi 150cv exclusive
Prix: 5,800€ | Attendu: 9,156€ | Écart: -36.7% | Année: 2016 | Km: 125,000
8. [3158296763] C4 grand Picasso 2l hdi 150 cv pack exclusive
Prix: 5,800€ | Attendu: 9,156€ | Écart: -36.7% | Année: 2016 | Km: 125,000
9. [3167394375] Citroën C4 Picasso 1.2 130
Prix: 5,900€ | Attendu: 9,180€ | Écart: -35.7% | Année: 2016 | Km: 93,250
10. [3159003549] Vends CITROEN GRAND C4 PICASSO Intensive
Prix: 5,900€ | Attendu: 9,147€ | Écart: -35.5% | Année: 2016 | Km: 138,000
🔴 TOP 10 ANNONCES SURÉVALUÉES (écart le plus positif) :
====================================================================================================
1. [3017985052] CITROEN C4 PICASSO Grand 1.6 HDi - 120 Intensive 7
Prix: 10,990€ | Attendu: 8,874€ | Écart: +23.8% | Année: 2015 | Km: 149,900
2. [3146221969] Citroen C4 Grand Picasso 7 Places - 2.0 BlueHDi 15
Prix: 10,990€ | Attendu: 8,880€ | Écart: +23.8% | Année: 2015 | Km: 142,000
3. [3136798926] Grand C4 Picasso 120 HDI
Prix: 11,000€ | Attendu: 8,899€ | Écart: +23.6% | Année: 2015 | Km: 116,000
4. [2934302132] Citroen Grand C4 Picasso PureTech 130ch Confort S&
Prix: 10,990€ | Attendu: 8,893€ | Écart: +23.6% | Année: 2015 | Km: 123,901
5. [3155706473] Citroën Grand C4 Picasso 1.6 BlueHdi 115 Intensive
Prix: 10,995€ | Attendu: 8,900€ | Écart: +23.5% | Année: 2015 | Km: 113,981
6. [3138161286] Citroën C4 PICASSO II Exclusive 2.0 BLUEHDI 150CV
2026-03-25 20:06:43,062 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-25 20:06:43,069 [INFO] services.llm_service — Batch 0-2: 2 résultats extraits (modèle=gpt-5-nano)
2026-03-25 20:06:43,357 [INFO] stats.exporters.to_db — stats_descriptives : 5 lignes insérées
2026-03-25 20:06:43,361 [INFO] stats.exporters.to_db — modele_regression : 2 lignes insérées
2026-03-25 20:06:43,418 [INFO] stats.exporters.to_db — referentiel_prix : 25 segments insérés
2026-03-25 20:06:43,442 [INFO] stats.exporters.to_db — ads.deal_columns : 296 annonces mises à jour
Prix: 10,990€ | Attendu: 8,905€ | Écart: +23.4% | Année: 2015 | Km: 107,256
7. [3161244489] Citroën Grand C4 Picasso e-HDi 115 Exclusive ETG6
Prix: 10,980€ | Attendu: 8,950€ | Écart: +22.7% | Année: 2015 | Km: 47,966
8. [3160469081] Grand C4 Picasso 7 places
Prix: 10,800€ | Attendu: 8,927€ | Écart: +21.0% | Année: 2015 | Km: 78,300
9. [3149154360] Grand c4
Prix: 11,000€ | Attendu: 9,141€ | Écart: +20.3% | Année: 2016 | Km: 146,230
10. [3071933719] Citroën C4 grand Picasso
Prix: 11,000€ | Attendu: 9,142€ | Écart: +20.3% | Année: 2016 | Km: 145,000
🔎 Détection des prix suspects (seuil: -40%)...
⚠️ 4 annonces avec prix suspect
💾 4 signaux prix persistés dans SQLite
======================================================================
M05 — Extraction LLM des titres (GPT-5 Nano)
======================================================================
Annonces sans évaluation LLM : 2
Résultats extraits : 2
PureTech flaggués : 1
Évaluations insérées : 2
======================================================================
📊 TABLEAU DE BORD RÉCAPITULATIF
======================================================================
┌──────────────────────────────────────────────────┐
│ Nombre total d'annonces │ 296 │
│ Prix moyen │ 9,505 € │
│ Prix médian │ 9,990 € │
│ Km moyen │ 120,798 km │
│ Km médian │ 129,026 km │
│ Âge moyen │ 8.7 ans │
│ Âge médian │ 9.0 ans │
│ Km/an moyen │ 14,627 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 (296)
======================================================================
💡 RECOMMANDATIONS
======================================================================
🛒 POUR UN ACHETEUR :
--------------------------------------------------
• Sweet spot : véhicules de 5-8 ans, 60-120k km
Prix moyen dans cette fourchette : 9,959€
(49 annonces disponibles)
• Prix médian du marché : 9,990€ → cible < 8,991€ 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,990€
• Positionner légèrement sous le marché pour vendre vite (-5% à -10%)
• Les véhicules < 129,026 km se vendent mieux
• Mettre en avant un faible km/an si applicable
🎯 SEGMENTS DE MARCHÉ :
--------------------------------------------------
• Budget (74 annonces) :
Prix : 3,990€ - 8,700€
Âge moyen : 9.5 ans | Km moyen : 118,652
• Milieu de gamme (148 annonces) :
Prix : 8,790€ - 10,600€
Âge moyen : 8.5 ans | Km moyen : 122,634
• Premium (74 annonces) :
Prix : 10,650€ - 11,000€
Âge moyen : 8.3 ans | Km moyen : 119,274
======================================================================
💾 EXPORT DES RÉSULTATS EN BASE SQLite
======================================================================
📌 Run #167 créé
🔍 Modèle : c4
📎 296 annonces liées au run
✅ Stats descriptives : 5 variables
✅ Modèle régression : 2 coefficients (R²=0.100)
✅ Référentiel prix : 25 segments
✅ Classifications deal : 296 annonces
💾 Tout exporté dans /home/ubuntu/app/db/lbc.sqlite
══════════════════════════════════════════════════════════════════════
✅ ANALYSE TERMINÉE en 32.0 secondes
📊 296 annonces analysées (run #167)
🔍 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®date=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_20260325_200644.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®date=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_20260325_200644.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®date=2015-max&mileage=min-150000&seats=999999&u_car_brand=RENAULT&page=3
→ 30 annonces récupérées (total en mémoire: 100)
Export de 100 annonces vers /home/ubuntu/app/leboncoin_ads_scenic_20260325_200644.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®date=2015-max&mileage=min-150000&seats=999999&u_car_brand=RENAULT&page=4
Erreur lors de l'appel à l'API: 404 Client Error: Not Found for url: https://piloterr.com/api/v2/leboncoin/search?query=https%3A%2F%2Fwww.leboncoin.fr%2Frecherche%3Fcategory%3D2%26text%3Dscenic%26price%3Dmin-11000%26regdate%3D2015-max%26mileage%3Dmin-150000%26seats%3D999999%26u_car_brand%3DRENAULT%26page%3D4
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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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_20260325_200656.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
→ 13 annonces récupérées (total en mémoire: 1063)
Export de 1063 annonces vers /home/ubuntu/app/leboncoin_ads_5008_20260325_200656.csv réussi.
Terminé : 1063 annonces au total dans /home/ubuntu/app/leboncoin_ads_5008_20260325_200656.csv
INFO: Model override : 5008
INFO: Schéma initialisé dans /home/ubuntu/app/db/lbc.sqlite
════════════════════════════════════════════════════════════
📦 MIGRATION CSV → SQLite unifié
════════════════════════════════════════════════════════════
📂 leboncoin_ads_5008_20260325_200656.csv
✅ 1063 lus, 1063 insérés, 0 ignorés, 0 erreurs
────────────────────────────────────────────────────────────
📊 TOTAL : 1063 lus, 1063 insérés
💾 Base : /home/ubuntu/app/db/lbc.sqlite
📌 7020 annonces en base
════════════════════════════════════════════════════════════
INFO: 1052 list_id lus dans le CSV.
INFO: 1082 annonces actives en base pour peugeot 5008.
INFO: 30 annonce(s) marquées indisponibles.
════════════════════════════════════════════════════════════
CHECK DISPONIBILITÉ
CSV : leboncoin_ads_5008_20260325_200656.csv
Brand : peugeot | Modèle : 5008
════════════════════════════════════════════════════════════
Annonces dans le CSV : 1052
Annonces actives en DB : 1082
Absentes du crawl : 30
Marquées indisponibles : 30
════════════════════════════════════════════════════════════
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
✅ 1758 annonces chargées (modèle '5008')
======================================================================
📊 EXPLORATION DES DONNÉES BRUTES
======================================================================
📌 Nombre total d'annonces : 1758
📋 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-25 21:01:27
Durée : 657 jours
👤 Répartition par type de vendeur :
private : 1149 (65.4%)
pro : 609 (34.6%)
⛽ Répartition par carburant :
diesel : 1615 (91.9%)
essence : 142 (8.1%)
hybride : 1 (0.1%)
🏭 Top 10 marques :
peugeot : 1758 (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 : 1756 / 1758
Pourcentage conservé : 99.9%
🔍 Détection des outliers (méthode IQR)...
price_eur : 0 outliers (0.0%)
Bornes IQR : [-469 ; 12,781]
mileage_km : 38 outliers (2.2%)
Bornes IQR : [63,325 ; 347,605]
age_years : 1 outliers (0.1%)
Bornes IQR : [5 ; 21]
📌 Total d'annonces outliers (au moins 1 variable) : 39 (2.2%)
⚠️ Les outliers sont identifiés mais NON supprimés.
======================================================================
📊 RÉSUMÉ APRÈS NETTOYAGE
======================================================================
Nombre d'annonces restantes : 1756
Dont outliers identifiés : 39
Annonces non-outliers : 1717
Plages de valeurs :
price_eur : [ 700 ; 11,000] (moy: 6,256)
mileage_km : [ 1 ; 410,000] (moy: 206,683)
year_model : [ 2,009 ; 2,022] (moy: 2,013)
age_years : [ 4 ; 17] (moy: 13)
km_per_year : [ 0 ; 53,776] (moy: 16,268)
💾 1756 annonces enrichies persistées dans SQLite
🔎 Détection des annonces suspectes...
⚠️ 19 signaux de suspicion détectés
km_trop_bas_essence: 1
km_trop_bas_diesel: 18
💾 19 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 1756 6256.280182 5990.000000 2319.116184 700.000000 4500.000000 7812.500000 11000.000000 3312.5
mileage_km 1756 206682.722665 207779.500000 56693.901279 1.000000 169930.000000 241000.000000 410000.000000 71070.0
year_model 1756 2012.968109 2012.000000 2.485767 2009.000000 2011.000000 2015.000000 2022.000000 4.0
age_years 1756 13.031891 14.000000 2.485767 4.000000 11.000000 15.000000 17.000000 4.0
km_per_year 1756 16268.185124 15792.857143 4999.299933 0.111111 13333.333333 18533.333333 53776.166667 5200.0
📊 Tableau formaté :
Variable Count Mean Median Std Min Q1 Q3 Max IQR
price_eur 1,756 6,256 5,990 2,319.12 700 4,500 7,812 11,000 3,312
mileage_km 1,756 206,683 207,780 56,693.90 1 169,930 241,000 410,000 71,070
year_model 1,756 2,013 2,012 2.49 2,009 2,011 2,015 2,022 4
age_years 1,756 13.0 14.0 2.49 4.0 11.0 15.0 17.0 4.0
km_per_year 1,756 16,268.2 15,792.9 4,999.30 0.1 13,333.3 18,533.3 53,776.2 5,200.0
📝 INTERPRÉTATION DES STATISTIQUES :
--------------------------------------------------
📌 price_eur :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Dispersion MODÉRÉE (CV = 37%, σ = 2,319)
→ Étendue : [700 ; 11,000] (IQR = 3,312)
📌 mileage_km :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Dispersion MODÉRÉE (CV = 27%, σ = 56,694)
→ Étendue : [1 ; 410,000] (IQR = 71,070)
📌 year_model :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Faible dispersion (CV = 0%, σ = 2)
→ Étendue : [2,009 ; 2,022] (IQR = 4)
📌 age_years :
→ Distribution asymétrique GAUCHE (moyenne 13 < médiane 14)
Quelques valeurs basses tirent la moyenne vers le bas.
→ Faible dispersion (CV = 19%, σ = 2)
→ Étendue : [4 ; 17] (IQR = 4)
📌 km_per_year :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Dispersion MODÉRÉE (CV = 31%, σ = 4,999)
→ Étendue : [0 ; 53,776] (IQR = 5,200)
======================================================================
📊 DISTRIBUTIONS PAR CATÉGORIES
======================================================================
2026-03-25 20:08:24,527 [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-25 20:08:24,527 [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.
📊 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 31 4,509 4,300 N/A
2010 269 4,492 4,450 +0.4%
2011 304 4,887 4,990 -8.8%
2012 289 5,458 5,490 -11.7%
2013 217 5,913 5,590 -8.3%
2014 167 6,995 6,990 -18.3%
2015 146 7,883 7,990 -12.7%
2016 174 8,044 7,990 -2.0%
2017 66 9,674 10,000 -20.3%
2018 49 9,909 10,490 -2.4%
2019 29 10,483 10,500 -5.8%
2020 13 9,558 9,990 +8.8%
📌 Décote annuelle moyenne : -7.4%
📊 Prix moyen par tranche de kilométrage...
📋 Table : Prix par tranche de km
----------------------------------------------------------------------
Tranche Nb Prix moy Prix méd Var %
----------------------------------------------------------------------
0-20k 12 5,712 4,775 N/A
20-50k 7 6,867 5,800 +20.2%
50-80k 7 9,153 9,450 +33.3%
80-120k 53 8,663 9,400 -5.4%
120-160k 257 8,519 8,990 -1.7%
160-200k 439 7,079 6,990 -16.9%
200k+ 981 5,147 4,990 -27.3%
📊 Prix moyen par âge...
📋 Table : Prix par âge
-----------------------------------------------------------------
Âge Nb Prix moy Décote %
-----------------------------------------------------------------
6 13 9,558 N/A
7 29 10,483 +9.7%
8 49 9,909 -5.5%
9 66 9,674 -2.4%
10 174 8,044 -16.8%
11 146 7,883 -2.0%
12 167 6,995 -11.3%
13 217 5,913 -15.5%
14 289 5,458 -7.7%
15 304 4,887 -10.5%
16 269 4,492 -8.1%
17 31 4,509 +0.4%
📌 La décote ralentit significativement à 9 ans
📊 Prix par type de carburant...
📋 Table : Prix par carburant
----------------------------------------------------------------------
Carburant Nb Prix moy Prix méd
----------------------------------------------------------------------
diesel 1614 6,116 5,900
essence 141 7,828 8,800
📌 Carburant avec prix médian le plus élevé : essence (8,800€)
📌 Carburant avec prix médian le plus bas : diesel (5,900€)
📊 Prix par type de vendeur...
📋 Table : Prix par type de vendeur
------------------------------------------------------------
Type Nb Prix moy Prix méd
------------------------------------------------------------
private 1148 5,842 5,500
pro 608 7,039 6,490
📌 Test Mann-Whitney (médiane) : p = 0.0000
✅ Différence SIGNIFICATIVE (p < 0.05)
📌 Écart médian Pro - Particulier : +990€
📊 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 -18.4% (n= 3)
30k : décote 15.1% (n= 3) ⚡
50k : décote -62.9% (n= 2)
60k : décote -13.1% (n= 2)
70k : décote 26.8% (n= 3) ⚡
80k : décote -12.1% (n= 4)
90k : décote -0.7% (n= 11)
100k : décote 0.5% (n= 15)
110k : décote 4.7% (n= 23)
120k : décote -10.8% (n= 42)
130k : décote -0.8% (n= 52)
140k : décote 12.6% (n= 76) ⚡
150k : décote 4.4% (n= 87)
160k : décote 0.4% (n=104)
170k : décote 5.6% (n=116)
180k : décote 10.2% (n=109) ⚡
190k : décote 2.3% (n=110)
200k : décote 4.1% (n=125)
210k : décote 2.8% (n=132)
220k : décote 6.0% (n=135)
230k : décote 6.2% (n=115)
240k : décote -0.8% (n=120)
250k : décote 8.5% (n= 72)
260k : décote 9.7% (n= 69)
270k : décote 8.7% (n= 53)
280k : décote -17.5% (n= 35)
290k : décote 27.0% (n= 30) ⚡
300k+ : décote 7.2% (n= 95)
📌 Seuils où la décote s'accélère (> 8%) :
→ 30k km : 15.1%
→ 70k km : 26.8%
→ 140k km : 12.6%
→ 180k km : 10.2%
→ 250k km : 8.5%
→ 260k km : 9.7%
→ 270k km : 8.7%
→ 290k km : 27.0%
✅ 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= 29) 🐢 LENTE
8 ans : décote 5.5% (n= 49)
9 ans : décote 2.4% (n= 66) 🐢 LENTE
10 ans : décote 16.8% (n=174) ⚡ FORTE
11 ans : décote 2.0% (n=146) 🐢 LENTE
12 ans : décote 11.3% (n=167)
13 ans : décote 15.5% (n=217) ⚡ FORTE
14 ans : décote 7.7% (n=289)
15 ans : décote 10.5% (n=304)
16 ans : décote 8.1% (n=269)
17 ans : décote -0.4% (n= 31) 🐢 LENTE
📌 Décote rapide (> 10% par an) :
→ 10 ans : 16.8%
→ 12 ans : 11.3%
→ 13 ans : 15.5%
→ 15 ans : 10.5%
📌 Décote lente (< 5% par an) :
→ 7 ans : -9.7%
→ 9 ans : 2.4%
→ 11 ans : 2.0%
→ 17 ans : -0.4%
✅ Sauvegardé : /home/ubuntu/app/stats/5008/figures/seuils_age.png
======================================================================
📊 IDENTIFICATION DES BONNES AFFAIRES
======================================================================
📊 Construction du modèle de prix attendu...
📌 Modèle : prix = -524.59 × âge + -0.0173 × km + 16,658
📌 R² = 0.655
📊 Calcul des écarts de prix...
📋 Classification des annonces :
🌟 Excellente affaire : 272 ( 15.5%)
👍 Bonne affaire : 251 ( 14.3%)
📊 Prix marché : 684 ( 39.0%)
💰 Cher : 234 ( 13.3%)
🔴 Très cher : 315 ( 17.9%)
📊 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. [3163345953] Peugeot 5008 1.6, 120cv B.hdi
Prix: 1,000€ | Attendu: 5,705€ | Écart: -82.5% | Année: 2014 | Km: 270,000
2. [3166827215] Voiture entiere avec moteur qui claque
Prix: 900€ | Attendu: 4,435€ | Écart: -79.7% | Année: 2010 | Km: 222,000
3. [3098662962] Peugeot 5008 hdi
Prix: 1,900€ | Attendu: 8,723€ | Écart: -78.2% | Année: 2016 | Km: 155,900
4. [3163979849] Opel Corsa 2009 232000km
Prix: 1,900€ | Attendu: 8,459€ | Écart: -77.5% | Année: 2018 | Km: 232,000
5. [3161987772] 5008 7 places
Prix: 1,000€ | Attendu: 4,131€ | Écart: -75.8% | Année: 2011 | Km: 270,000
6. [3154103448] Vend Peugeot 5008 dans l etat
Prix: 1,000€ | Attendu: 4,038€ | Écart: -75.2% | Année: 2010 | Km: 245,000
7. [3145452074] Peugeot 5008
Prix: 1,000€ | Attendu: 3,673€ | Écart: -72.8% | Année: 2012 | Km: 327,000
2026-03-25 20:08:59,010 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-25 20:08:59,017 [INFO] services.llm_service — Batch 0-16: 16 résultats extraits (modèle=gpt-5-nano)
2026-03-25 20:08:59,367 [INFO] stats.exporters.to_db — stats_descriptives : 5 lignes insérées
2026-03-25 20:08:59,370 [INFO] stats.exporters.to_db — modele_regression : 2 lignes insérées
2026-03-25 20:08:59,508 [INFO] stats.exporters.to_db — referentiel_prix : 67 segments insérés
2026-03-25 20:08:59,619 [INFO] stats.exporters.to_db — ads.deal_columns : 1756 annonces mises à jour
8. [3151017355] Vends Peugeot 5008 a spécialiste
Prix: 1,500€ | Attendu: 5,346€ | Écart: -71.9% | Année: 2012 | Km: 230,000
9. [3154289763] 5008 essence sur l'état
Prix: 1,700€ | Attendu: 6,035€ | Écart: -71.8% | Année: 2011 | Km: 159,660
10. [3162529124] Peugeot 5008
Prix: 1,500€ | Attendu: 5,112€ | Écart: -70.7% | Année: 2013 | Km: 274,000
🔴 TOP 10 ANNONCES SURÉVALUÉES (écart le plus positif) :
====================================================================================================
1. [3146000438] 5008 hdi
Prix: 7,500€ | Attendu: 3,703€ | Écart: +102.5% | Année: 2009 | Km: 234,000
2. [3152738100] Peugeot 5008 2l hdi 150cv
Prix: 8,000€ | Attendu: 4,338€ | Écart: +84.4% | Année: 2010 | Km: 227,600
3. [3126969597] Peugeot 5008
Prix: 4,200€ | Attendu: 2,306€ | Écart: +82.1% | Année: 2009 | Km: 315,000
4. [3157618424] Peugeot 5008
Prix: 3,500€ | Attendu: 1,968€ | Écart: +77.9% | Année: 2010 | Km: 365,000
5. [3165438627] Vend peugeot 5008 1l6 hdi année 2009
Caroserie 31
Prix: 4,000€ | Attendu: 2,254€ | Écart: +77.5% | Année: 2009 | Km: 318,000
6. [3126598226] Peugeot 5008 1.6 hdi fap confort pack 7pl
Prix: 7,990€ | Attendu: 4,530€ | Écart: +76.4% | Année: 2010 | Km: 216,500
7. [3155918327] Peugeot 5008
Prix: 6,500€ | Attendu: 3,703€ | Écart: +75.5% | Année: 2009 | Km: 234,000
8. [3147840406] Peugeot 5008 1.6 HDi Premium 7Places
Prix: 6,990€ | Attendu: 4,021€ | Écart: +73.8% | Année: 2010 | Km: 246,000
9. [3159646980] PEUGEOT 5008 2.0 HDI 163cv
Prix: 7,500€ | Attendu: 4,397€ | Écart: +70.6% | Année: 2012 | Km: 285,000
10. [3129737643] 🚗 Peugeot 5008 1.6 HDi 110 Premium – 7 places
Prix: 10,000€ | Attendu: 5,884€ | Écart: +69.9% | Année: 2010 | Km: 138,000
🔎 Détection des prix suspects (seuil: -40%)...
⚠️ 85 annonces avec prix suspect
💾 85 signaux prix persistés dans SQLite
======================================================================
M05 — Extraction LLM des titres (GPT-5 Nano)
======================================================================
Annonces sans évaluation LLM : 16
Résultats extraits : 16
Évaluations insérées : 16
======================================================================
📊 TABLEAU DE BORD RÉCAPITULATIF
======================================================================
┌──────────────────────────────────────────────────┐
│ Nombre total d'annonces │ 1,756 │
│ Prix moyen │ 6,256 € │
│ Prix médian │ 5,990 € │
│ Km moyen │ 206,683 km │
│ Km médian │ 207,780 km │
│ Âge moyen │ 13.0 ans │
│ Âge médian │ 14.0 ans │
│ Km/an moyen │ 16,268 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 18.0% plus cher que les particuliers (médiane)
🔄 Km/an médian : 15,793 km → Profil dominant : 15-25k (Intensif)
🏭 Top 3 marques = 100% du marché : peugeot (1756)
======================================================================
💡 RECOMMANDATIONS
======================================================================
🛒 POUR UN ACHETEUR :
--------------------------------------------------
• Sweet spot : véhicules de 5-8 ans, 60-120k km
Prix moyen dans cette fourchette : 9,858€
(8 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 < 207,780 km se vendent mieux
• Mettre en avant un faible km/an si applicable
🎯 SEGMENTS DE MARCHÉ :
--------------------------------------------------
• Budget (448 annonces) :
Prix : 700€ - 4,500€
Âge moyen : 14.8 ans | Km moyen : 255,413
• Milieu de gamme (869 annonces) :
Prix : 4,590€ - 7,800€
Âge moyen : 13.4 ans | Km moyen : 204,724
• Premium (439 annonces) :
Prix : 7,850€ - 11,000€
Âge moyen : 10.4 ans | Km moyen : 160,830
======================================================================
💾 EXPORT DES RÉSULTATS EN BASE SQLite
======================================================================
📌 Run #168 créé
🔍 Modèle : 5008
📎 1756 annonces liées au run
✅ Stats descriptives : 5 variables
✅ Modèle régression : 2 coefficients (R²=0.655)
✅ Référentiel prix : 67 segments
✅ Classifications deal : 1756 annonces
💾 Tout exporté dans /home/ubuntu/app/db/lbc.sqlite
══════════════════════════════════════════════════════════════════════
✅ ANALYSE TERMINÉE en 37.9 secondes
📊 1756 annonces analysées (run #168)
🔍 Modèle : 5008
💾 Base SQLite : /home/ubuntu/app/db/lbc.sqlite
📁 Figures : /home/ubuntu/app/stats/5008/figures
══════════════════════════════════════════════════════════════════════
Récupération de la page 1/44 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=ford+fiesta&price=3000-10000®date=2014-max&u_car_brand=FORD&fuel=1%2C2&u_car_model=FORD_Fiesta&page=1
→ 35 annonces récupérées (total en mémoire: 35)
Export de 35 annonces vers /home/ubuntu/app/leboncoin_ads_fiesta_20260325_200900.csv réussi.
Récupération de la page 2/44 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=ford+fiesta&price=3000-10000®date=2014-max&u_car_brand=FORD&fuel=1%2C2&u_car_model=FORD_Fiesta&page=2
→ 35 annonces récupérées (total en mémoire: 70)
Export de 70 annonces vers /home/ubuntu/app/leboncoin_ads_fiesta_20260325_200900.csv réussi.
Récupération de la page 3/44 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=ford+fiesta&price=3000-10000®date=2014-max&u_car_brand=FORD&fuel=1%2C2&u_car_model=FORD_Fiesta&page=3
→ 35 annonces récupérées (total en mémoire: 105)
Export de 105 annonces vers /home/ubuntu/app/leboncoin_ads_fiesta_20260325_200900.csv réussi.
Récupération de la page 4/44 avec l'URL: https://www.leboncoin.fr/recherche?category=2&text=ford+fiesta&price=3000-10000®date=2014-max&u_car_brand=FORD&fuel=1%2C2&u_car_model=FORD_Fiesta&page=4
Erreur lors de l'appel à l'API: 502 Server Error: Bad Gateway for url: https://piloterr.com/api/v2/leboncoin/search?query=https%3A%2F%2Fwww.leboncoin.fr%2Frecherche%3Fcategory%3D2%26text%3Dford%2Bfiesta%26price%3D3000-10000%26regdate%3D2014-max%26u_car_brand%3DFORD%26fuel%3D1%252C2%26u_car_model%3DFORD_Fiesta%26page%3D4
Récupération de la page 1/3 avec l'URL: https://www.leboncoin.fr/recherche?category=5&text=nv200&u_utility_brand=NISSAN&u_utility_model=NISSAN_NV200&fuel=2&page=1
→ 35 annonces récupérées (total en mémoire: 35)
Export de 35 annonces vers /home/ubuntu/app/leboncoin_ads_nv200_20260325_200912.csv réussi.
Récupération de la page 2/3 avec l'URL: https://www.leboncoin.fr/recherche?category=5&text=nv200&u_utility_brand=NISSAN&u_utility_model=NISSAN_NV200&fuel=2&page=2
→ 35 annonces récupérées (total en mémoire: 70)
Export de 70 annonces vers /home/ubuntu/app/leboncoin_ads_nv200_20260325_200912.csv réussi.
Récupération de la page 3/3 avec l'URL: https://www.leboncoin.fr/recherche?category=5&text=nv200&u_utility_brand=NISSAN&u_utility_model=NISSAN_NV200&fuel=2&page=3
→ 31 annonces récupérées (total en mémoire: 101)
Export de 101 annonces vers /home/ubuntu/app/leboncoin_ads_nv200_20260325_200912.csv réussi.
Terminé : 101 annonces au total dans /home/ubuntu/app/leboncoin_ads_nv200_20260325_200912.csv
INFO: Model override : nv200
INFO: Schéma initialisé dans /home/ubuntu/app/db/lbc.sqlite
════════════════════════════════════════════════════════════
📦 MIGRATION CSV → SQLite unifié
════════════════════════════════════════════════════════════
📂 leboncoin_ads_nv200_20260325_200912.csv
✅ 101 lus, 101 insérés, 0 ignorés, 0 erreurs
────────────────────────────────────────────────────────────
📊 TOTAL : 101 lus, 101 insérés
💾 Base : /home/ubuntu/app/db/lbc.sqlite
📌 7023 annonces en base
════════════════════════════════════════════════════════════
INFO: 101 list_id lus dans le CSV.
INFO: 103 annonces actives en base pour nissan nv200.
INFO: 2 annonce(s) marquées indisponibles.
════════════════════════════════════════════════════════════
CHECK DISPONIBILITÉ
CSV : leboncoin_ads_nv200_20260325_200912.csv
Brand : nissan | Modèle : nv200
════════════════════════════════════════════════════════════
Annonces dans le CSV : 101
Annonces actives en DB : 103
Absentes du crawl : 2
Marquées indisponibles : 2
════════════════════════════════════════════════════════════
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/nv200/figures
🔍 Modèle filtré : nv200
📊 Graphiques : Non
══════════════════════════════════════════════════════════════════════
📂 Chargement depuis SQLite : /home/ubuntu/app/db/lbc.sqlite
✅ 196 annonces chargées (modèle 'nv200')
======================================================================
📊 EXPLORATION DES DONNÉES BRUTES
======================================================================
📌 Nombre total d'annonces : 196
📋 Premières lignes (colonnes parsées) :
list_id subject price_eur year_model mileage_km fuel brand model owner_type first_publication_date
0 2859214095 Nissan NV200 N CONNNECTA 90CV 12990 2017 94500 diesel nissan nv200 pro 2024-10-05 17:02:00
1 3139983877 Nissan NV200 1,5L dCi 90ch Acenta 11990 2013 106800 diesel nissan nv200 pro 2026-02-05 16:52:21
2 3083668151 Nissan NV200 1.5 DCI 90CH VAN AMENAGE 14999 2014 121041 diesel nissan nv200 pro 2025-10-29 21:10:00
3 3131716141 Nissan NV200 1.5 DCI 110 N-CONNECTA 9890 2016 194000 diesel nissan nv200 pro 2026-01-21 20:45:17
4 3131492774 Nissan NV200 Fourgon 1.5 dCi 110cv 1ère Main N-Connecta 8990 2017 187000 diesel nissan nv200 pro 2026-01-21 14:43:24
❓ 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-09-27 22:07:00
Dernière publication : 2026-03-25 19:26:41
Durée : 543 jours
👤 Répartition par type de vendeur :
private : 136 (69.4%)
pro : 60 (30.6%)
⛽ Répartition par carburant :
diesel : 196 (100.0%)
🏭 Top 10 marques :
nissan : 196 (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 : 196 / 196
Pourcentage conservé : 100.0%
🔍 Détection des outliers (méthode IQR)...
price_eur : 1 outliers (0.5%)
Bornes IQR : [-2,735 ; 19,225]
mileage_km : 1 outliers (0.5%)
Bornes IQR : [-37,630 ; 362,449]
age_years : 1 outliers (0.5%)
Bornes IQR : [3 ; 19]
📌 Total d'annonces outliers (au moins 1 variable) : 3 (1.5%)
⚠️ Les outliers sont identifiés mais NON supprimés.
======================================================================
📊 RÉSUMÉ APRÈS NETTOYAGE
======================================================================
Nombre d'annonces restantes : 196
Dont outliers identifiés : 3
Annonces non-outliers : 193
Plages de valeurs :
price_eur : [ 2,000 ; 19,990] (moy: 8,556)
mileage_km : [ 1 ; 420,000] (moy: 164,410)
year_model : [ 2,006 ; 2,019] (moy: 2,015)
age_years : [ 7 ; 20] (moy: 11)
km_per_year : [ 0 ; 30,000] (moy: 14,752)
💾 196 annonces enrichies persistées dans SQLite
🔎 Détection des annonces suspectes...
⚠️ 5 signaux de suspicion détectés
km_trop_bas_diesel: 5
💾 5 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 196 8555.729592 8125.000000 3698.798067 2000.000000 5500.000000 10990.000000 19990.0 5490.000000
mileage_km 196 164409.744898 153500.000000 70356.853623 1.000000 112400.000000 212419.750000 420000.0 100019.750000
year_model 196 2014.693878 2015.000000 2.778703 2006.000000 2013.000000 2017.000000 2019.0 4.000000
age_years 196 11.306122 11.000000 2.778703 7.000000 9.000000 13.000000 20.0 4.000000
km_per_year 196 14752.318014 13666.666667 5894.951342 0.066667 10267.045455 18461.538462 30000.0 8194.493007
📊 Tableau formaté :
Variable Count Mean Median Std Min Q1 Q3 Max IQR
price_eur 196 8,556 8,125 3,698.80 2,000 5,500 10,990 19,990 5,490
mileage_km 196 164,410 153,500 70,356.85 1 112,400 212,420 420,000 100,020
year_model 196 2,015 2,015 2.78 2,006 2,013 2,017 2,019 4
age_years 196 11.3 11.0 2.78 7.0 9.0 13.0 20.0 4.0
km_per_year 196 14,752.3 13,666.7 5,894.95 0.1 10,267.0 18,461.5 30,000.0 8,194.5
📝 INTERPRÉTATION DES STATISTIQUES :
--------------------------------------------------
📌 price_eur :
→ Distribution asymétrique DROITE (moyenne 8,556 > médiane 8,125)
Quelques valeurs élevées tirent la moyenne vers le haut.
→ Dispersion MODÉRÉE (CV = 43%, σ = 3,699)
→ Étendue : [2,000 ; 19,990] (IQR = 5,490)
📌 mileage_km :
→ Distribution asymétrique DROITE (moyenne 164,410 > médiane 153,500)
Quelques valeurs élevées tirent la moyenne vers le haut.
→ Dispersion MODÉRÉE (CV = 43%, σ = 70,357)
→ Étendue : [1 ; 420,000] (IQR = 100,020)
📌 year_model :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Faible dispersion (CV = 0%, σ = 3)
→ Étendue : [2,006 ; 2,019] (IQR = 4)
📌 age_years :
→ Distribution relativement SYMÉTRIQUE (moyenne ≈ médiane)
→ Faible dispersion (CV = 25%, σ = 3)
→ Étendue : [7 ; 20] (IQR = 4)
📌 km_per_year :
→ Distribution asymétrique DROITE (moyenne 14,752 > médiane 13,667)
Quelques valeurs élevées tirent la moyenne vers le haut.
→ Dispersion MODÉRÉE (CV = 40%, σ = 5,895)
→ Étendue : [0 ; 30,000] (IQR = 8,194)
======================================================================
📊 DISTRIBUTIONS PAR CATÉGORIES
2026-03-25 20:09:23,777 [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-25 20:09:23,778 [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.
======================================================================
📊 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 3,600 3,600 N/A
2010 9 4,764 4,200 -32.3%
2011 20 5,060 4,800 -6.2%
2012 15 6,741 5,990 -33.2%
2013 24 7,259 7,690 -7.7%
2014 24 8,962 8,895 -23.5%
2015 13 8,429 9,000 +5.9%
2016 27 8,817 8,000 -4.6%
2017 22 10,629 9,895 -20.6%
2018 24 11,774 12,245 -10.8%
2019 15 11,246 10,990 +4.5%
📌 Décote annuelle moyenne : -12.8%
📊 Prix moyen par tranche de kilométrage...
📋 Table : Prix par tranche de km
----------------------------------------------------------------------
Tranche Nb Prix moy Prix méd Var %
----------------------------------------------------------------------
0-20k 1 2,000 2,000 N/A
20-50k 5 13,656 12,800 +582.8%
50-80k 12 13,528 12,995 -0.9%
80-120k 39 11,322 10,900 -16.3%
120-160k 46 9,656 9,500 -14.7%
160-200k 33 6,849 6,750 -29.1%
200k+ 60 5,543 5,200 -19.1%
📊 Prix moyen par âge...
📋 Table : Prix par âge
-----------------------------------------------------------------
Âge Nb Prix moy Décote %
-----------------------------------------------------------------
7 15 11,246 N/A
8 24 11,774 +4.7%
9 22 10,629 -9.7%
10 27 8,817 -17.0%
11 13 8,429 -4.4%
12 24 8,962 +6.3%
13 24 7,259 -19.0%
14 15 6,741 -7.1%
15 20 5,060 -24.9%
16 9 4,764 -5.8%
17 2 3,600 -24.4%
📌 La décote ralentit significativement à 11 ans
📊 Prix par type de carburant...
📋 Table : Prix par carburant
----------------------------------------------------------------------
Carburant Nb Prix moy Prix méd
----------------------------------------------------------------------
diesel 196 8,556 8,125
📊 Prix par type de vendeur...
📋 Table : Prix par type de vendeur
------------------------------------------------------------
Type Nb Prix moy Prix méd
------------------------------------------------------------
private 136 7,966 7,500
pro 60 9,892 9,935
📌 Test Mann-Whitney (médiane) : p = 0.0004
✅ Différence SIGNIFICATIVE (p < 0.05)
📌 Écart médian Pro - Particulier : +2,435€
📊 Prix par modèle de véhicule...
ℹ️ Un seul modèle détecté (nv200) — comparaison non applicable
✅ Toutes les distributions par catégorie sauvegardées dans /home/ubuntu/app/stats/nv200/figures
======================================================================
📊 ANALYSES AVANCÉES - SEUILS PSYCHOLOGIQUES
======================================================================
📊 Analyse des seuils de kilométrage...
📋 Taux de décote par tranche de 10k km :
--------------------------------------------------
50k : décote -7.3% (n= 4)
60k : décote 12.4% (n= 2) ⚡
70k : décote 1.3% (n= 6)
80k : décote 4.6% (n= 9)
90k : décote -0.2% (n= 10)
100k : décote 5.9% (n= 8)
110k : décote 16.1% (n= 12) ⚡
120k : décote -22.1% (n= 11)
130k : décote 12.1% (n= 13) ⚡
140k : décote 14.7% (n= 13) ⚡
150k : décote 20.3% (n= 9) ⚡
160k : décote -13.9% (n= 6)
170k : décote 29.5% (n= 8) ⚡
180k : décote -12.2% (n= 6)
190k : décote -13.8% (n= 13)
200k : décote -4.9% (n= 8)
210k : décote 23.1% (n= 7) ⚡
220k : décote 0.8% (n= 8)
230k : décote -0.4% (n= 7)
240k : décote -0.2% (n= 9)
250k : décote 22.2% (n= 5) ⚡
260k : décote 15.2% (n= 2) ⚡
290k : décote -21.6% (n= 6)
300k+ : décote 15.3% (n= 6) ⚡
📌 Seuils où la décote s'accélère (> 8%) :
→ 60k km : 12.4%
→ 110k km : 16.1%
→ 130k km : 12.1%
→ 140k km : 14.7%
→ 150k km : 20.3%
→ 170k km : 29.5%
→ 210k km : 23.1%
→ 250k km : 22.2%
→ 260k km : 15.2%
→ 300k+ km : 15.3%
✅ Sauvegardé : /home/ubuntu/app/stats/nv200/figures/seuils_km.png
📊 Analyse des seuils d'âge...
📋 Taux de décote par année d'âge :
---------------------------------------------
8 ans : décote -4.7% (n= 24) 🐢 LENTE
9 ans : décote 9.7% (n= 22)
10 ans : décote 17.0% (n= 27) ⚡ FORTE
11 ans : décote 4.4% (n= 13)
12 ans : décote -6.3% (n= 24) 🐢 LENTE
13 ans : décote 19.0% (n= 24) ⚡ FORTE
14 ans : décote 7.1% (n= 15)
15 ans : décote 24.9% (n= 20) ⚡ FORTE
16 ans : décote 5.8% (n= 9)
17 ans : décote 24.4% (n= 2) ⚡ FORTE
📌 Décote rapide (> 10% par an) :
→ 10 ans : 17.0%
→ 13 ans : 19.0%
→ 15 ans : 24.9%
→ 17 ans : 24.4%
📌 Décote lente (< 5% par an) :
→ 8 ans : -4.7%
→ 11 ans : 4.4%
→ 12 ans : -6.3%
✅ Sauvegardé : /home/ubuntu/app/stats/nv200/figures/seuils_age.png
======================================================================
📊 IDENTIFICATION DES BONNES AFFAIRES
======================================================================
📊 Construction du modèle de prix attendu...
📌 Modèle : prix = -482.34 × âge + -0.0291 × km + 18,794
📌 R² = 0.605
📊 Calcul des écarts de prix...
📋 Classification des annonces :
🌟 Excellente affaire : 39 ( 20.0%)
👍 Bonne affaire : 37 ( 19.0%)
📊 Prix marché : 62 ( 31.8%)
💰 Cher : 24 ( 12.3%)
🔴 Très cher : 33 ( 16.9%)
📊 Graphique : Distribution des écarts de prix...
✅ Sauvegardé : /home/ubuntu/app/stats/nv200/figures/ecarts_prix.png
🌟 TOP 10 MEILLEURES AFFAIRES (écart le plus négatif) :
====================================================================================================
1. [3138843536] Vehicule camionnette nissan nv200
Prix: 2,000€ | Attendu: 11,558€ | Écart: -82.7% | Année: 2011 | Km: 1
2. [3159812831] Vend utilitaires nv200 nissan
Prix: 2,000€ | Attendu: 6,611€ | Écart: -69.7% | Année: 2011 | Km: 170,000
3. [3158806155] Peugeot partner 1.9d 70 cv ct ok
Prix: 2,490€ | Attendu: 5,946€ | Écart: -58.1% | Année: 2006 | Km: 110,000
4. [3160668277] Nissan nv 200
Prix: 3,000€ | Attendu: 7,052€ | Écart: -57.5% | Année: 2013 | Km: 188,000
5. [3164906877] Nissan
Prix: 3,500€ | Attendu: 6,695€ | Écart: -47.7% | Année: 2016 | Km: 250,000
6. [3109648143] Nissan nv200 1.5 dci turbo
Prix: 3,990€ | Attendu: 6,919€ | Écart: -42.3% | Année: 2012 | Km: 176,000
7. [3154995725] Nissan NV200 Fourgon 1.5 DCi 110ch BVM5 Optima - 2
Prix: 4,000€ | Attendu: 6,781€ | Écart: -41.0% | Année: 2014 | Km: 213,880
8. [3116605709] Nissan NV200
Prix: 4,500€ | Attendu: 7,484€ | Écart: -39.9% | Année: 2011 | Km: 140,000
9. [3142568361] Nissan nv 200 1.5 90ch
Prix: 5,200€ | Attendu: 8,354€ | Écart: -37.8% | Année: 2016 | Km: 193,000
10. [3127367839] Nissan NV200 1.5 DCI
2026-03-25 20:09:38,506 [INFO] httpx — HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2026-03-25 20:09:38,513 [INFO] services.llm_service — Batch 0-3: 3 résultats extraits (modèle=gpt-5-nano)
2026-03-25 20:09:38,812 [INFO] stats.exporters.to_db — stats_descriptives : 5 lignes insérées
2026-03-25 20:09:38,816 [INFO] stats.exporters.to_db — modele_regression : 2 lignes insérées
2026-03-25 20:09:38,920 [INFO] stats.exporters.to_db — referentiel_prix : 46 segments insérés
2026-03-25 20:09:38,938 [INFO] stats.exporters.to_db — ads.deal_columns : 196 annonces mises à jour
Prix: 5,490€ | Attendu: 8,760€ | Écart: -37.3% | Année: 2014 | Km: 145,899
🔴 TOP 10 ANNONCES SURÉVALUÉES (écart le plus positif) :
====================================================================================================
1. [3156635875] Nissan NV200
Prix: 3,500€ | Attendu: 571€ | Écart: +513.1% | Année: 2010 | Km: 361,000
2. [3154023820] Camion
Prix: 3,500€ | Attendu: 745€ | Écart: +369.5% | Année: 2010 | Km: 355,000
3. [3153372541] Nissan nv 200
Prix: 10,500€ | Attendu: 5,539€ | Écart: +89.6% | Année: 2013 | Km: 240,000
4. [3114600758] Van
Prix: 18,500€ | Attendu: 10,154€ | Écart: +82.2% | Année: 2014 | Km: 98,000
5. [3156516616] 🚐 Nissan NV200 aménagé – Prêt à voyager
Prix: 9,300€ | Attendu: 5,651€ | Écart: +64.6% | Année: 2011 | Km: 203,000
6. [3158536730] Véhicule aménagé
Prix: 13,500€ | Attendu: 8,258€ | Écart: +63.5% | Année: 2012 | Km: 130,000
7. [3083668151] Nissan NV200 1.5 DCI 90CH VAN AMENAGE
Prix: 14,999€ | Attendu: 9,483€ | Écart: +58.2% | Année: 2014 | Km: 121,041
8. [3163982347] Utilitaire aménagé Van NV200 2016 84000 km
Prix: 17,900€ | Attendu: 11,526€ | Écart: +55.3% | Année: 2016 | Km: 84,000
9. [3155364135] Utilitaire Van Nissan NV200 2016
Prix: 17,900€ | Attendu: 11,555€ | Écart: +54.9% | Année: 2016 | Km: 83,000
10. [3150255673] Van aménagé Nissan NV200
Prix: 8,500€ | Attendu: 5,489€ | Écart: +54.9% | Année: 2010 | Km: 192,000
🔎 Détection des prix suspects (seuil: -40%)...
⚠️ 7 annonces avec prix suspect
💾 7 signaux prix persistés dans SQLite
======================================================================
M05 — Extraction LLM des titres (GPT-5 Nano)
======================================================================
Annonces sans évaluation LLM : 3
Résultats extraits : 3
Évaluations insérées : 3
======================================================================
📊 TABLEAU DE BORD RÉCAPITULATIF
======================================================================
┌──────────────────────────────────────────────────┐
│ Nombre total d'annonces │ 196 │
│ Prix moyen │ 8,556 € │
│ Prix médian │ 8,125 € │
│ Km moyen │ 164,410 km │
│ Km médian │ 153,500 km │
│ Âge moyen │ 11.3 ans │
│ Âge médian │ 11.0 ans │
│ Km/an moyen │ 14,752 km/an │
└──────────────────────────────────────────────────┘
✅ Sauvegardé : /home/ubuntu/app/stats/nv200/figures/dashboard_kpis.png
======================================================================
💡 INSIGHTS PRINCIPAUX
======================================================================
🎯 Âge optimal d'achat : ~16 ans (meilleur rapport prix/ancienneté)
⚡ Seuil km critique : la décote s'accélère le plus autour de (20000, 40000]
👔 Les pros vendent 32.5% plus cher que les particuliers (médiane)
🔄 Km/an médian : 13,667 km → Profil dominant : 15-25k (Intensif)
🏭 Top 3 marques = 100% du marché : nissan (196)
======================================================================
💡 RECOMMANDATIONS
======================================================================
🛒 POUR UN ACHETEUR :
--------------------------------------------------
• Sweet spot : véhicules de 5-8 ans, 60-120k km
Prix moyen dans cette fourchette : 11,942€
(16 annonces disponibles)
• Prix médian du marché : 8,125€ → cible < 7,312€ 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,125€
• Positionner légèrement sous le marché pour vendre vite (-5% à -10%)
• Les véhicules < 153,500 km se vendent mieux
• Mettre en avant un faible km/an si applicable
🎯 SEGMENTS DE MARCHÉ :
--------------------------------------------------
• Budget (53 annonces) :
Prix : 2,000€ - 5,500€
Âge moyen : 13.8 ans | Km moyen : 230,901
• Milieu de gamme (96 annonces) :
Prix : 5,800€ - 10,990€
Âge moyen : 10.9 ans | Km moyen : 160,630
• Premium (47 annonces) :
Prix : 11,000€ - 19,990€
Âge moyen : 9.4 ans | Km moyen : 97,150
======================================================================
💾 EXPORT DES RÉSULTATS EN BASE SQLite
======================================================================
📌 Run #169 créé
🔍 Modèle : nv200
📎 196 annonces liées au run
✅ Stats descriptives : 5 variables
✅ Modèle régression : 2 coefficients (R²=0.605)
✅ Référentiel prix : 46 segments
✅ Classifications deal : 196 annonces
💾 Tout exporté dans /home/ubuntu/app/db/lbc.sqlite
══════════════════════════════════════════════════════════════════════
✅ ANALYSE TERMINÉE en 17.9 secondes
📊 196 annonces analysées (run #169)
🔍 Modèle : nv200
💾 Base SQLite : /home/ubuntu/app/db/lbc.sqlite
📁 Figures : /home/ubuntu/app/stats/nv200/figures
══════════════════════════════════════════════════════════════════════
======================================================================
M05 — Extraction LLM des titres (GPT-5 Nano)
======================================================================
Annonces sans évaluation LLM : 0
Toutes les annonces ont déjà été analysées.
============================================================
CRAWL ALL — 9 modèle(s)
============================================================
[1/9] CLIO_4 (brand=renault, pages=41)
URL: https://www.leboncoin.fr/recherche?category=2&text=clio%204&price=3000-9000®d...
$ /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_20260325_200000.csv
$ /home/ubuntu/app/.venv/bin/python -m db.migrate_csv --input /home/ubuntu/app/leboncoin_ads_clio_4_20260325_200000.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_20260325_200000.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/9] 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_20260325_200357.csv
$ /home/ubuntu/app/.venv/bin/python -m db.migrate_csv --input /home/ubuntu/app/leboncoin_ads_yaris_20260325_200357.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_20260325_200357.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/9] I20 (brand=hyundai, pages=4)
URL: https://www.leboncoin.fr/recherche?category=2&text=i20&price=3000-9000®date=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_20260325_200421.csv
$ /home/ubuntu/app/.venv/bin/python -m db.migrate_csv --input /home/ubuntu/app/leboncoin_ads_i20_20260325_200421.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_20260325_200421.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/9] 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_20260325_200446.csv
$ /home/ubuntu/app/.venv/bin/python -m db.migrate_csv --input /home/ubuntu/app/leboncoin_ads_berlingo_20260325_200446.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_20260325_200446.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/9] C4 (brand=citroen, pages=5)
URL: https://www.leboncoin.fr/recherche?category=2&text=c4&price=min-11000®date=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_20260325_200550.csv
$ /home/ubuntu/app/.venv/bin/python -m db.migrate_csv --input /home/ubuntu/app/leboncoin_ads_c4_20260325_200550.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_20260325_200550.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/9] SCENIC (brand=renault, pages=4)
URL: https://www.leboncoin.fr/recherche?category=2&text=scenic&price=min-11000®dat...
$ /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
ERREUR : crawler échoué pour scenic
[7/9] 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_20260325_200656.csv
$ /home/ubuntu/app/.venv/bin/python -m db.migrate_csv --input /home/ubuntu/app/leboncoin_ads_5008_20260325_200656.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_20260325_200656.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
[8/9] FIESTA (brand=ford, pages=44)
URL: https://www.leboncoin.fr/recherche?category=2&text=ford%20fiesta&price=3000-1000...
$ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/crawler/leboncoin_search_export.py --output-file /home/ubuntu/app/leboncoin_ads.csv --pages 44 --model fiesta
ERREUR : crawler échoué pour fiesta
[9/9] NV200 (brand=nissan, pages=3)
URL: https://www.leboncoin.fr/recherche?category=5&text=nv200&u_utility_brand=NISSAN&...
$ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/crawler/leboncoin_search_export.py --output-file /home/ubuntu/app/leboncoin_ads.csv --pages 3 --model nv200
CSV : leboncoin_ads_nv200_20260325_200912.csv
$ /home/ubuntu/app/.venv/bin/python -m db.migrate_csv --input /home/ubuntu/app/leboncoin_ads_nv200_20260325_200912.csv --db /home/ubuntu/app/db/lbc.sqlite --model nv200
$ /home/ubuntu/app/.venv/bin/python /home/ubuntu/app/scripts/check_availability.py --csv /home/ubuntu/app/leboncoin_ads_nv200_20260325_200912.csv --brand nissan --model nv200 --db /home/ubuntu/app/db/lbc.sqlite
$ /home/ubuntu/app/.venv/bin/python -m stats.main --model nv200 --skip-plots
.env restauré
============================================================
LLM — Extraction des titres (toutes les annonces)
============================================================
$ /home/ubuntu/app/.venv/bin/python -m stats.m05_llm_title_analysis
============================================================
RÉSUMÉ
============================================================
✓ clio_4 → OK
✓ yaris → OK
✓ i20 → OK
✓ berlingo → OK
✓ c4 → OK
✗ scenic → ERREUR crawler
✓ 5008 → OK
✗ fiesta → ERREUR crawler
✓ nv200 → OK
============================================================
============================================================
Finished: 2026-03-25T20:09:39.999921
Duration: 580.0s
STATUS:SUCCESS