Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | /**
* Type definitions for CLV (Closing Line Value) analytics
*/
export interface CLVSummary {
totalBets: number;
averageCLV: number;
positiveCLVCount: number;
negativeCLVCount: number;
neutralCLVCount: number;
clvWinRate: number;
expectedROI: number;
actualROI: number;
}
export interface CLVBySport {
sport: string;
sportName: string;
totalBets: number;
averageCLV: number;
positiveCLVCount: number;
negativeCLVCount: number;
clvWinRate: number;
}
export interface CLVByBookmaker {
bookmaker: string;
totalBets: number;
averageCLV: number;
positiveCLVCount: number;
negativeCLVCount: number;
clvWinRate: number;
}
export interface CLVTrend {
date: string;
averageCLV: number;
betCount: number;
winRate: number;
}
export interface CLVBetDetail {
betId: string;
gameId: string;
sportKey: string;
sportName: string;
matchup: string;
selectionType: string;
odds: number;
closingOdds: number;
clv: number;
clvCategory: 'positive' | 'negative' | 'neutral';
outcome?: 'won' | 'lost' | 'push';
createdAt: string;
}
export interface CLVReport {
summary: CLVSummary;
bySport: CLVBySport[];
byBookmaker: CLVByBookmaker[];
trends: CLVTrend[];
topBets: CLVBetDetail[];
worstBets: CLVBetDetail[];
}
export interface CLVFilters {
sportKey?: string;
betType?: string;
startDate?: string;
endDate?: string;
period?: 'week' | 'month' | 'season' | 'all-time';
}
|