@if (loading()) {
} @else if (errored() || !details()) {

Match details

Could not load match statistics.

} @else { @let d = details()!;
{{ d.leagueName }} ({{ d.country }}) · {{ d.seasonName }} · Round {{ d.matchdayNumber }}
{{ d.homeTeamName }}
@if (d.hasScore) { {{ d.homeScoreFt }} : {{ d.awayScoreFt }} @if (d.homeScoreHt != null) { HT {{ d.homeScoreHt }}:{{ d.awayScoreHt }} } } @else { {{ d.status }} }
{{ d.awayTeamName }}
event{{ d.kickoffAt | date: 'EEE d MMM y, HH:mm' }} @if (d.stadium) { stadium{{ d.stadium }} } @if (d.referee) { sports{{ d.referee }} }
@if (showComparison()) {

Predictions{{ hasActual() ? ' vs actual' : '' }}

@if (anyPrediction(); as p) { LLM · trained {{ p.modelTrainedAt | date: 'mediumDate' }}@if (p.halfLifeDays != null) {, half-life {{ p.halfLifeDays }}d} } @if (anyOpenAi(); as o) { OpenAI {{ o.model }}@if (o.confidence) { · {{ o.confidence }} confidence} } @if (hasActual()) { Actual }
{{ d.homeTeamName }}
{{ d.awayTeamName }}
@if (hasLlm()) { } @if (hasOpenAi()) { } @if (hasActual()) { } @if (hasLlm() && hasActual()) { } @if (hasLlm()) { } @if (hasOpenAi()) { } @if (hasActual()) { } @if (hasLlm() && hasActual()) { } @for (r of predRows(); track r.label) { @if (hasLlm()) { } @if (hasOpenAi()) { } @if (hasActual()) { } @if (hasLlm() && hasActual()) { } @if (hasLlm()) { } @if (hasOpenAi()) { } @if (hasActual()) { } @if (hasLlm() && hasActual()) { } }
{{ d.homeTeamName }} {{ d.awayTeamName }}
MetricLLMOpenAIActualΔLLMOpenAIActualΔ
{{ r.label }}{{ fmt(r.homeLlm) }}{{ fmt(r.homeOpenAi) }}{{ fmt(r.homeActual) }}{{ delta(r.homeActual, r.homeLlm) }}{{ fmt(r.awayLlm) }}{{ fmt(r.awayOpenAi) }}{{ fmt(r.awayActual) }}{{ delta(r.awayActual, r.awayLlm) }}
} @else if (d.hasScore) {

No stored model prediction for this match.

}

Team statistics

@if (hasStats()) {
@for (row of statRows(); track row.label) {
{{ row.home }} {{ row.label }} {{ row.away }}
}
} @else {

No per-team statistics recorded for this match.

}

Goals

@if (d.goals.length) { } @else {

No goals recorded.

} @if (d.cards.length) {

Cards

} @if (d.penalties.length) {

Penalties

}
}