Come funziona — Tipster Intelligence (TIL)¶
Il Tipster Intelligence Layer cattura i pronostici pubblicati da fonti pubbliche (canali Telegram, YouTube, blog — italiane e internazionali) e li misura contro il mercato reale. Principio fondante (ADR-0010): il tip non si segue, si misura — l'LLM non giudica mai, struttura soltanto; ogni valutazione è deterministica.
La pipeline, passo per passo¶
fonti pubbliche ──▶ 1. CATTURA worker deterministico (timer ~30min, no LLM)
(documenti) → POST /api/admin/til/documents
→ source_documents (raw IMMUTABILE, dedup content_hash)
──▶ 2. ESTRAZIONE agente LLM til-extractor: dal raw a tip strutturati
(LLM, solo struttura) con span_citation VERBATIM verificata server-side;
normalizzazione quote/mercato/linea deterministica
──▶ 3. ANCORAGGIO risoluzione del tip alla fixture reale (squadre +
(fixture) kickoff) e, per i player-prop, al giocatore
──▶ 4. MARKET CHECK la quota DICHIARATA dal tipster è verificata contro
(quota vs mercato) i NOSTRI mercati salvati as-of cattura (forward-only)
──▶ 5. DEDUP i repost/ricicli dello stesso tip su più canali sono
(repost) deduplicati semanticamente (stessa giocata = 1 tip)
──▶ 6. GRADING doppio, deterministico e SEPARATO:
(CLV + storico) · CLV fair-vs-fair vs closing (de-vig intero mercato)
· won/lost + ROI dal risultato (settlement v2)
──▶ 7. RECORD scoreboard per fonte con soglia campione minima
(per fonte) → serving pubblico su pagina match + admin
1. Cattura — deterministica e immutabile¶
Un worker senza LLM raccoglie i documenti dalle fonti registrate e li deposita così come sono, con hash del contenuto per il dedup. Lo snapshot nostro è la verità: se la fonte edita o cancella una giocata persa, il raw originale resta a database — il record non è manipolabile a posteriori.
2. Estrazione — LLM con citazione obbligatoria¶
Un agente LLM trasforma il testo grezzo in tip strutturati (mercato, selezione, linea,
quota dichiarata, eventuale stake). Regola dura anti-allucinazione: ogni campo estratto
deriva da una span_citation verbatim che il server verifica contro il documento
originale — se la citazione non esiste nel raw, il tip è rifiutato. La normalizzazione di
quote, mercati e linee è fatta da funzioni pure deterministiche, non dall'LLM.
3. Ancoraggio alla fixture¶
Il tip viene risolto contro il calendario reale (nomi squadra + finestra di kickoff); i player-prop vengono ancorati anche al giocatore. Un tip che non si ancora a una partita verificabile non entra nel circuito di misura.
4. Market check — la quota dichiarata non si fida¶
La quota scritta dal tipster viene confrontata con i mercati che BAP ha realmente salvato (lavagna Bet365 + snapshot multi-book) as-of il momento della cattura, forward-only. Quota dichiarata troppo distante dal mercato reale → il tip viene trattato di conseguenza (quota di mercato o esclusione), mai preso per buono.
5. Dedup dei repost¶
Lo stesso pronostico ripubblicato su più canali o in più formati viene riconosciuto e contato una volta sola: il record di una fonte non si gonfia col riciclo.
6. Grading doppio: CLV e storico, separati¶
- CLV (qualità predittiva): confronto fair-vs-fair tra la quota alla cattura e la
closing line — de-vig dell'intero mercato su entrambi i lati, book di riferimento il più
sharp disponibile. Tip catturato dopo il kickoff =
ungradablecon motivo esplicito — mai retrodatare. - Storico won/lost + ROI (settlement v2): l'esito reale della giocata, risolto deterministicamente dal risultato del match; copre la grande maggioranza dei tipi di giocata (1X2, doppia chance, over/under, BTTS, handicap, risultato esatto, multigol, corner, cartellini, combo).
Le due misure restano separate per scelta: un tipster può vincere per varianza con CLV negativo (fortuna) o perdere con CLV positivo (sfortuna) — il CLV dice l'abilità, lo storico dice cosa è successo.
7. Record per fonte, con soglia campione¶
Ogni fonte ha uno scoreboard rolling. Gate di pubblicazione: nessun claim di qualità (score CLV, win rate) sotto una soglia minima di tip valutati (30); il record grezzo W-P-A (vinte-perse-annullate) è pubblico da subito perché è un conteggio, non un claim.
Dove si vede¶
/tipster: la leaderboard pubblica delle fonti — record grezzo W-P-A da subito, CLV medio pubblicato sopra la soglia di 30 tip gradati (sotto: stima regolarizzata)./consensus: le prossime partite (48h) dove più fonti misurate concordano o c'è un edge verificato vs la quota fair.- Sulla pagina match: sezione "Cosa suggeriscono le fonti" (consenso unificato per selezione, con numero di fonti concordi e record storico della fonte inline) e Tipster Intel (tip singoli con citazione e market check) — sempre con il disclaimer misure-non-consigli.
- Lato admin: anagrafica fonti con scoreboard CLV, timeline tip, segnali per fixture.

Le 5 tabelle¶
| Tabella | Ruolo |
|---|---|
tip_sources |
anagrafica fonti (platform, handle, trust_tier, enabled) |
source_documents |
raw catturato, immutabile (lo snapshot nostro è la verità) |
tips |
tip estratti, span-cited, ancorati a match/player |
tip_grades |
misura per-tip: CLV vs closing + won/lost/ROI storico |
source_scores |
scoreboard rolling per fonte (soglia minima campione) |
Perché è diverso da un sito di pronostici¶
BAP non seleziona "i tipster migliori da seguire": costruisce un track record verificato e immune al selection bias — anche una fonte popolare con CLV negativo è informazione (segnale contrarian). Termini come CLV e settlement sono nel Glossario; cosa questo layer NON è (un servizio di pronostici) è in Limiti & disclaimer.