Files
iddaai-be/mds/brainstorm-leagues-and-national-teams.md
T
fahricansecer 4e563e996e
Deploy Iddaai Backend / build-and-deploy (push) Successful in 1m7s
vv
2026-06-02 03:37:00 +03:00

73 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Gereksinim Keşfi: Lig Etiketleme + Milli Takım / Dünya Kupası Desteği
> `/sc:brainstorm` çıktısı — REQUIREMENTS ONLY. Tasarım/kod sonraki adım (/sc:design, /sc:workflow).
> Tarih: 2026-06 · Kaynak: 10k backtest + canlı DB/API kanıtı.
## Doğrulanmış Gerçekler (kanıta dayalı, varsayım değil)
### Lig performansı
- 10k backtest 18 ligde BET üretti; ROI dağılımı: ~7 güçlü kârlı (+25%..+102%),
~4 başabaş, ~7 zararlı (12%..62%).
- `live_matches` distinct lig ≠ `qualified_leagues.json` (48 lig). live_matches'te
qualified olmayan ligler var → kullanıcının "gereksiz ligler" sezgisi DOĞRU.
- Lig isimleri backtest CSV'de boş; DB'den `leagues` tablosundan çözülür.
### Milli takım / Dünya Kupası (ÖNEMLİ — ilk hipotez ÇÜRÜDÜ)
- Milli takımlar DB'de VAR: Türkiye(9s2kpeunkes0g17l95r3t91j6, elo 1675),
Almanya(3l2t2db0c5ow2f7s7bhr6mij4, 1689), Kolombiya(1692), Andorra(1243).
ELO + matches_played (30-37) MEVCUT.
- Milli maç hacmi yüksek: DK Elemeler 645, Hazırlık Maçları Ülkeler 522,
Uluslar Ligi 148, Avrupa Şamp. Elemeleri 120 bitmiş maç. Ayrı ligler halinde.
- football_ai_features milli maçlar için %98 üretiliyor (196/200) — kulüpten yüksek.
- **KÖK SEBEP (canlı API ile kanıtlandı):** Sistem milli maçı tahmin EDİYOR
(MS olasılıkları + 9-10 market geliyor, data_quality MEDIUM 0.57-0.74). Sorun:
`betting_brain approved=0` — hiçbir market "oynanabilir" işaretlenmiyor. Ortak
flag `ai_features_inferred_from_history` → data_quality MEDIUM tavanı (0.74) +
lig qualified değil → brain eşikleri geçilemiyor. Yani "yetersiz veri" mesajı
aslında "brain güvenmiyor, BET yok" demek. Model/veri sorunu DEĞİL, gate/tuning sorunu.
## Kullanıcı Kararları (bu oturumda alındı)
- Lig filtresi: **"Hepsi görünsün ama etiketli"** (gizleme yok; güven rozeti: Yüksek/Orta/Düşük).
- Milli takım: başta "ayrı model" istendi; veri görülünce yön = mevcut motoru milli
maçlara uyarlamak (ayrı ML modeli gereksiz — ELO+feature+geçmiş zaten var).
- Öncelik: **önce lig etiketleme** (hazır veri), sonra milli takım.
- Dünya Kupası: hazırlık maçlarında test edilebilmeli (yakın takvim baskısı).
## Fonksiyonel Gereksinimler
### A. Lig Güven Etiketleme
- FR-A1: Her lig için backtest'e dayalı güven seviyesi (Yüksek/Orta/Düşük) hesaplanmalı
(metrik: BET ROI + örneklem sayısı; düşük örneklem = otomatik Düşük/Bilinmiyor).
- FR-A2: live_matches'teki maçlar lig güven rozetiyle gösterilmeli (gizlenmeden).
- FR-A3: Etiket kaynağı tek yerde (config/tablo) tutulmalı, backtest tazelendikçe güncellenebilmeli.
- FR-A4: Forward-test (Model Performansı) verisi biriktikçe etiketler canlı sonuçla doğrulanmalı.
### B. Milli Takım / Dünya Kupası Desteği
- FR-B1: Milli maçlarda da BET önerisi çıkabilmeli (şu an approved=0).
- FR-B2: `ai_features_inferred_from_history` flag'i olan milli maçlar için data_quality
tavanı / brain eşikleri milli-maça uygun kalibre edilmeli (kör gevşetme DEĞİL).
- FR-B3: Milli maç ligleri (DK Elemeler, Hazırlık Maçları Ülkeler, Uluslar Ligi, Avrupa
Şamp., Dünya Kupası) "tanınan" kapsama alınmalı (qualified benzeri).
- FR-B4: Hazırlık maçlarında uçtan uca test edilebilmeli (tahmin + forward-test kaydı).
- FR-B5: Milli maç kalibrasyonu ayrı izlenmeli (kulüple karışmasın) — Model Performansı
sayfasında "milli" kırılımı.
## Fonksiyonel Olmayan Gereksinimler
- NFR-1: Gerçek para — milli maç eşik değişiklikleri backtest/forward-test ile doğrulanmadan
canlı agresifleştirilmemeli.
- NFR-2: Lig etiketleme mevcut hacmi düşürmemeli (gizleme değil işaretleme).
- NFR-3: Değişiklikler additive; mevcut kulüp tahmin akışını bozmamalı.
## Açık Sorular (sonraki tasarım turunda netleşecek)
- OQ-1: Lig güven eşikleri tam olarak ne? (örn. Yüksek = ROI>+10% & N≥30 BET)
- OQ-2: Milli maçlar için brain eşiği nasıl ayarlanacak — ayrı tier mi, data_quality
flag istisnası mı? Önce backtest: milli maçlarda mevcut motor kaç BET/ne ROI verirdi
(eşik gevşetilse)? Bu ölçülmeden tuning yapılmamalı.
- OQ-3: Etiket nerede saklanacak: yeni tablo mı, mevcut league_tiers mı, config mi?
- OQ-4: Dünya Kupası grup maçlarında lineup geç gelir — probable_xi cezası milli maçta
nasıl ele alınacak?
## Sonraki Adım
1. (Önce) Lig güven etiketleme → /sc:design veya doğrudan uygulama (veri hazır).
2. (Sonra) Milli maç backtest'i: eşik gevşetildiğinde milli maçlarda ROI ne? → ona göre tuning.