Önceki işi denetledik ve maliyet tahmini için 30 beceri öğrendik: 24 tanesi bugün uygulandı, 1 tanesi ölçüldü ama yayınlanmadı, 5 tanesi planlandı. Sonuç: parça fiyatları artık 4 ülkeden 1.100 gerçek ilana dayanıyor ve her tahmin kendi ilan bağlantılarını gösteriyor.We audited the previous work and learned 30 skills for cost estimation: 24 applied today, 1 measured but not shipped, 5 planned. Result: part prices now rest on 1,100 real listings from 4 countries, and every estimate shows its own listing links.
Ne değiştiWhat changed
- 1.100 fiyatlı ilan (TR/DE/UK/US × 275), 2.633 tekil alakalı ilan havuzundan; bağlantı, araç, yıl + 20 alan. Veritabanı →1,100 priced listings (TR/DE/UK/US × 275) from a pool of 2,633 unique relevant listings; link, car, years + 20 fields. Database →
- Maliyet modeli 1.2: sıfır parça aralığı geriye testte gerçek ilanların %45 yerine %58’sini kapsıyor; orta nokta hatası ×1.61 → ×1.36 (aralık biraz daha geniş: 3.54× → 3.92×).Cost model 1.2: in a split-half backtest the new-part range covers 58% of real listings instead of 45%; midpoint error ×1.61 → ×1.36 (range slightly wider: 3.54× → 3.92×).
- Doğruluk denetimi: rastgele bağımsız örnekte doğru parça + araç %87.5 (GA %78.5–93.1); hatalar türüne göre düzeltildi.Accuracy audit: on a random held-out sample, right part + car 87.5% (CI 78.5–93.1%); errors fixed by type.
- Yeni API:
GET /v1/prices?country=TR&part=headlight&model=egeave her maliyet satırındapart_price_basis(ilan sayısı + bağlantılar).New API:GET /v1/prices?country=TR&part=headlight&model=egeaandpart_price_basis(listing count + links) on every cost line. - Sınırlar: DE ve UK verisi çoğunlukla çıkma parça; ABD’de kapı/ön cam/bagaj yok (katalogda yok); TR bagaj kapağı n=3 → 1.1 değeri korundu.Limits: DE and UK data is mostly used parts; no US doors / windscreens / tailgates (not in the catalogue); TR tailgate n=3 → the 1.1 value is kept.
- 1Önce eski işi denetle: bağlantı çürümesiAudit the previous work first: link rotUygulandıApplied
1.1 kaynaklarından 47 bağlantı test edildi: 13’ü 200 dönmedi; 1 gerçek 404 (parcafilosu), gerisi bot engeli. Kaynaklar artık tek tek ilan bağlantılarıyla destekleniyor.47 links behind cost model 1.1 were tested: 13 did not return 200; 1 real 404 (parcafilosu), the rest bot blocks. Prices are now backed by individual listing links.
📄 Klein et al. 2014 — Scholarly context not found: one in five articles suffers from reference rot ↗
- 2robots.txt’e uy, tarama gecikmesi koyObey robots.txt and rate-limitUygulandıApplied
Yalnız izin verilen yollar (ör. otocikma’da arama yasak → kategori sayfaları), sayfa başına 2,5–4,5 sn; breakeryard 403 dönünce tarama hemen durduruldu.Only allowed paths (e.g. otocikma forbids search → category pages), 2.5–4.5 s per page; when breakeryard returned 403 the crawl was stopped at once.
- 3Bot korumasını aşma; kaynağı değiştirNever bypass bot protection; switch sourceUygulandıApplied
eBay, Trendyol, Hepsiburada, autodoc, akakçe, idealo… engelli → atlandı; yerine izinli pazar yerleri (n11, otocikma, Kleinanzeigen, breakeryard, RockAuto).eBay, Trendyol, Hepsiburada, autodoc, akakçe, idealo… blocked → skipped; replaced by allowed marketplaces (n11, otocikma, Kleinanzeigen, breakeryard, RockAuto).
📄 RFC 9309 §2.2 — crawlers must respect the rules; robots.txt is not access control ↗
- 4Ülke başına birden çok kaynak türüSeveral source types per countryUygulandıApplied
TR: sıfır (n11) + çıkma (otocikma); DE: ilan sitesi; UK: söküm yerleri; US: katalog. Sıfır/çıkma ayrı istatistik.TR: new (n11) + used (otocikma); DE: classifieds; UK: breakers; US: catalogue. New and used get separate statistics.
📄 Ghose & Yao 2011 — Using transaction prices to re-examine price dispersion in electronic markets ↗
- 5Parça sözlüğü: pozitif + negatif kelimelerPart taxonomy: positive + negative wordsUygulandıApplied
4 dilde parça kelimesi zorunlu; aksesuar/parçacık kelimeleri (çıta, krom, sis çerçevesi, braket, lip, uç, slam panel, conta…) elenir.The part word is required in 4 languages; accessory / sub-part words (trim, chrome, fog frame, bracket, lip, end cap, slam panel, seal…) are rejected.
📄 Manning, Raghavan & Schütze — Introduction to Information Retrieval (boolean retrieval) ↗
- 6Uyum (fitment) doğrulamasıFitment verificationUygulandıApplied
Başlıkta araç modeli olmalı; yanlış kuşak (Golf 6 ≠ Golf 7), yanlış model (Corolla Cross, C-Max, Peugeot 308 / “2008” yılı) elenir; ABD’de katalog uyumu (yıl+model+motor).The car model must be in the title; wrong generation (Golf 6 ≠ Golf 7) and wrong model (Corolla Cross, C-Max, Peugeot 308 / the year “2008”) are rejected; US uses catalogue fitment (year+model+engine).
📄 Christen 2012 — Data Matching (record linkage and entity resolution) ↗
- 7Kuşak kodu → yıl tablosuGeneration code → year tableUygulandıApplied
9N, 6R, Corsa C/D/E/F, Mk3/Mk4, J10/J11, W205, F30, B8, AE101… başlıktan üretim yılı çıkarılır; yıl yoksa “doğrulanmamış” işaretlenir (102 satır).9N, 6R, Corsa C/D/E/F, Mk3/Mk4, J10/J11, W205, F30, B8, AE101… give production years; if none, the row is flagged “unverified” (102 rows).
📄 Wikipedia model generation tables (e.g. Volkswagen Polo generations) ↗
- 8Paket ilanları ayıklaRemove bundle listingsUygulandıApplied
“Frontpaket / body kit” ve 3+ farklı parça adı geçen ilanlar elendi (Golf 7 TCR 3.897 € gibi uç değerler).“Frontpaket / body kit” and titles naming 3+ different parts are removed (outliers like a €3,897 Golf 7 TCR front end).
📄 Rousseeuw & Hubert 2011 — Robust statistics for outlier detection ↗
- 9Makul fiyat aralığı süzgeciPlausible price windowUygulandıApplied
Parça başına € alt sınır (klips/ampul) ve 4.000 € üst sınır (araç / paket).Per-part € floor (clips / bulbs) and a €4,000 ceiling (whole cars / bundles).
📄 Rousseeuw & Hubert 2011 — Robust statistics for outlier detection ↗
- 10Ortalama değil, yüzdelikQuantiles, not meansUygulandıApplied
Parça fiyatı = p25–p90 (sıfır) ; medyan ve p10/p75 de saklanıyor.Part price = p25–p90 (new); median and p10/p75 are stored too.
📄 Hyndman & Fan 1996 — Sample quantiles in statistical packages ↗
- 11KDV normalizasyonuVAT normalisationUygulandıApplied
Mağaza fiyatlarından KDV düşüldü (TR %20, DE %19, UK %20); bireysel ilanlarda KDV ayrımı yok; ABD satış vergisi hariç.VAT removed from shop prices (TR 20%, DE 19%, UK 20%); no VAT split on private listings; US excludes sales tax.
- 12Tarihli resmi kurDated official FX rateUygulandıApplied
Tüm fiyatlar ECB referans kuruyla € (23.10.2026: 1 € = 55,67 TL = 0,837 £ = 1,119 $); kur ve tarih her satırda.All prices also in € at the ECB reference rate (23 Oct 2026: €1 = TRY 55.67 = £0.837 = $1.119); rate and date on every row.
- 13Set / çift fiyatını birime çevirConvert sets / pairs to unit pricesUygulandıApplied
“2x, takım, Paar, pair” ilanlarında fiyat ikiye bölünerek istatistiğe girer (units alanı).“2x, takım, Paar, pair” listings enter the statistics at half price (units field).
📄 Hyndman & Fan 1996 — Sample quantiles (unit-consistent samples) ↗
- 14TekilleştirmeDe-duplicationUygulandıApplied
Aynı URL veya aynı (ülke, parça, başlık, fiyat) tek satır; 2.633 tekil alakalı ilan havuzu.Same URL or same (country, part, title, price) → one row; pool of 2,633 unique relevant listings.
- 15Dengeli tabakalı örneklemeBalanced stratified samplingUygulandıApplied
Her ülke 275 ilan; araç × parça hücrelerinden sırayla, ucuz-pahalı dönüşümlü seçilerek fiyat yayılımı korunur.275 listings per country, round-robin over car × part cells, alternating cheap/expensive to keep the spread.
📄 Cochran 1977 — Sampling Techniques (stratified sampling) ↗
- 16Rastgele elle denetim + Wilson aralığıRandom manual audit + Wilson intervalUygulandıApplied
Bağımsız örnek: parça+araç doğru 70/80 = %87.5 (GA %78.5–93.1); düzeltme sonrası yeni örnek 53/60 = %88.3.Held-out sample: right part + car 70/80 = 87.5% (CI 78.5–93.1%); fresh sample after fixes 53/60 = 88.3%.
📄 Brown, Cai & DasGupta 2001 — Interval estimation for a binomial proportion ↗
- 17Ayar örneği ≠ test örneğiTuning sample ≠ test sampleUygulandıApplied
İlk 60 satırlık örnek yalnız filtre tasarımı için kullanıldı; doğruluk ayrı rastgele örneklerde raporlandı.The first 60-row sample was used only to design the filter; accuracy is reported on separate random samples.
📄 Kapoor & Narayanan 2023 — Leakage and the reproducibility crisis in ML-based science ↗
- 18Yarıya bölme ile geriye testSplit-half backtestUygulandıApplied
Yarıda öğren, diğer yarıda test (50 tekrar): sıfır parça aralığı kapsaması %45 → %58; orta nokta hatası ×1.61 → ×1.36.Fit on one half, test on the other (50 repeats): new-part range coverage 45% → 58%; midpoint error ×1.61 → ×1.36.
📄 Angelopoulos & Bates 2021 — A gentle introduction to conformal prediction ↗
- 19Sıfır / çıkma ayrı kuralSeparate rules for new vs usedUygulandıApplied
≥8 sıfır ilan → p25–p90; yalnız çıkma varsa alt sınır = çıkma p25, üst sınır = 1.1 sıfır üst sınırı (DE/UK).≥8 new listings → p25–p90; used only → low end = used p25, high end = the 1.1 new-part maximum (DE/UK).
📄 NAMIC / GAO via MWL — non-OEM crash parts cost 20–65% less than OEM ↗
- 20OEM / yan sanayi / CAPA etiketiOEM / aftermarket / CAPA flagUygulandıApplied
Kalite alanı: orijinal, çıkma orijinal, yan sanayi, CAPA sertifikalı (RockAuto etiketi).Quality field: OEM, used OEM, aftermarket, CAPA certified (RockAuto tag).
- 21Kaynağı çıktıda gösterShow provenance in the outputUygulandıApplied
Maliyet kutusu ve API her parça satırında “N ilana göre, medyan X” + 3 ilan bağlantısı + tüm ilanlar sayfası veriyor.The cost box and the API give “based on N listings, median X” + 3 listing links + the full list on every part line.
- 22Veri sayfası (datasheet) yayınlaPublish a datasheetUygulandıApplied
price-db.html: alanlar, yöntem, sınırlar, indirilebilir CSV/JSON; HF veri kümesi README.price-db.html: fields, method, limits, downloadable CSV/JSON; HF dataset README.
- 23İlan fiyatı ≠ satış fiyatı uyarısıAsking price ≠ sale price warningUygulandıApplied
İlan fiyatlarının dağılımı satış fiyatlarının ~3 katı bulunmuş; sayfada ve API notunda belirtiliyor.Listing-price dispersion was found to be ~3× that of transaction prices; stated on the page and in the API note.
📄 Deng et al. 2015 — Online price dispersion revisited (JMIS) ↗
- 24Tek doğruluk kaynağı, sürüm testiSingle source of truth + version testsUygulandıApplied
Site ve API aynı cost-model.json 1.2 + aynı fiyat verisi; API testleri 24/24 (fiyat uç noktası + basis bağlantıları).Site and API share cost-model.json 1.2 and the same price data; API tests 24/24 (price endpoint + basis links).
- 25Hedonik fiyat modeliHedonic price modelÖlçüldü, yayınlanmadıMeasured, not shipped
Fiyat ~ parça + sınıf + durum + yaş modeli incelendi: hücre başına ilan sayısı (7–46) küçük, bu yüzden şimdilik yüzdelik kullanılıyor; veri büyüyünce tekrar.Price ~ part + class + condition + age: cells hold only 7–46 listings, so quantiles are used for now; revisit when data grows.
- 26Seyrek hücrelerde kısmi havuzlamaPartial pooling for sparse cellsPlanlandıPlanned
Az ilanlı hücreler (TR bagaj kapağı n=3) ülke-parça ve sınıf ortalamasına doğru büzülecek (ampirik Bayes).Sparse cells (TR tailgate n=3) will shrink towards country-part and class means (empirical Bayes).
📄 Efron & Morris 1975 — Data analysis using Stein’s estimator ↗
- 27Konformal kantil regresyonConformalized quantile regressionPlanlandıPlanned
Araç sınıfı + parça girdisiyle garanti kapsamlı fiyat aralığı; ~5.000 ilan sonrası.Price intervals with a coverage guarantee from car class + part; after ~5,000 listings.
📄 Romano, Patterson & Candès 2019 — Conformalized quantile regression ↗
- 28Gradyan artırma ile maliyetGradient boosting for costPlanlandıPlanned
Gerçek eksper faturalarıyla (onaylı geri bildirim) XGBoost; yayınlanmış R² .97 değeri kendi uzman verisiyle, genelleşmesi bilinmiyor.XGBoost on real assessor invoices (consented feedback); the published R² .97 is on its own expert data, generalisation unknown.
📄 Sci. Reports 2026 — Automated vehicle damage classification + XGBoost repair cost ↗
- 29Onar / değiştir eşiğiRepair-vs-replace thresholdPlanlandıPlanned
Onarım (saat × ücret) > parça + takma maliyetinin belli oranı ise değiştir; şimdilik alan eşiği kullanılıyor.Replace when repair (hours × rate) exceeds a share of part + fitting cost; today an area threshold is used.
📄 SSRG IJME 2026 — repair vs replace decision layer (severity > 80% → replace) ↗
- 30Enflasyon / tazelik takibiInflation / freshness trackingPlanlandıPlanned
TR fiyatları hızla eskiyor: aylık yeniden tarama (DO alarm) ve medyan değişimi izleme; captured_at her satırda.TR prices age fast: monthly re-crawl (DO alarm) and median-drift monitoring; captured_at is on every row.
📄 Cavallo 2017 — Are online and offline prices similar? (Billion Prices Project) ↗
Kod: cekicin-ai/pricedb (scrape_pw.py, scrape_http.py, build_db.py, audit_results.json), v5/cost/apply_pricedb.py, validation_1_2.json. Maliyet modeli 1.2.0 · API 1.7.0.Code: cekicin-ai/pricedb (scrape_pw.py, scrape_http.py, build_db.py, audit_results.json), v5/cost/apply_pricedb.py, validation_1_2.json. Cost model 1.2.0 · API 1.7.0.