Players Statistiques · LaDOSE

Players Statistiques

Pick two players and see how often they met, game by game, across every event ever imported. For leaderboards and attendance, see Rankings Statistiques .

{#if error} {/if}

Pairing ({players.length} players with recorded sets)

{#if loading} Reading their sets… {:else if loadingPlayers} Only players with at least one set in a bracket with a known game are listed. {:else} The count beside a name is their total sets, whoever the opponent was. {/if}
{#if versus && (playerAId !== null) && (playerBId !== null)}

{versus.playerA} vs {versus.playerB}

= winsB ? '' : 'text-muted'}>{winsA} winsA ? '' : 'text-muted'}>{winsB}

{#if sets === 0}

No recorded meeting in a bracket with a known game. {#if unknown > 0} They did meet {unknown} time{unknown === 1 ? '' : 's'}, but in {unknown === 1 ? 'a bracket' : 'brackets'} with no game attached. {/if}

{:else}
{#each [['Meetings', String(sets)], ['Games played', String(games.length)], ['Decided', String(decided)], [`${versus.playerA ?? 'A'} win rate`, percent(share(winsA, winsB))]] as const as [caption, value] (caption)}
{caption}
{value}
{/each}
{/if}
{#if unknown > 0 && sets > 0}

{unknown} further meeting{unknown === 1 ? '' : 's'} excluded: the bracket has no game attached, so {unknown === 1 ? 'it' : 'they'} cannot be filed under one. Set the game on those tournaments to see {unknown === 1 ? 'it' : 'them'} here.

{/if} {#if games.length}

Meetings per game

Most-played first. Games counts the individual games inside the decided sets — a DQ is stored as a negative score and counts as zero.

{#each games as row (row.gameId)} {@const rowWinsA = row.winsA ?? 0} {@const rowWinsB = row.winsB ?? 0} {/each}
Game Meetings Decided Record Games {versus.playerA} share
{row.game} {#if row.gameLongName && row.gameLongName !== row.game} {row.gameLongName} {/if} {row.sets} {row.decidedSets} {rowWinsA}–{rowWinsB} {row.gamesWonA}–{row.gamesWonB}
{rowWinsA + rowWinsB === 0 ? '—' : percent(share(rowWinsA, rowWinsB))}
{#if undecided > 0}

{undecided} of these {sets} meetings {undecided === 1 ? 'has' : 'have'} equal scores — counted as a meeting, but won by nobody, so {undecided === 1 ? 'it is' : 'they are'} absent from the records above.

{/if}
{/if} {:else if !loading}

{#if playerAId === null && playerBId === null} Pick a player on each side to see their history. {:else} Pick a second player to compare. {/if}

{/if}