WikifitaGitHub live67e8de5
pesquisa · kaggle/pokemon_tcg_submissions_and_elo

Pokémon TCG — Submissions and Elo Lineages

Model/deck identity, local and remote submissions, and independent rating layers.

Baixar raw

Pokémon TCG — Submissions and Elo Lineages

August 14 evidence boundary

The live database now contains 128 tournament summaries, 1,621 matchup summaries, 8,055 submission observations and source-separated remote/local tables. These counts describe the current local catalog, not a single submission's competitive rating. The cross-cohort tournament results and the uncertainty about replay-row retention are recorded in pokemon_tcg_aug14_ablations_tournaments and pokemon_tcg_aug14_data_etl_database_audit.

The next read-only revalidation of the same source snapshot reports 139,783 matches, 3,065,706 match steps, 1,117 agents, 948 decks, 28,745 daily agent Elo rows, 10,742 daily deck-Elo rows, 9,350 daily card-Elo rows, 128 tournament summaries and 1,621 matchup summaries. The match split is 138,023 remote and 1,760 local. These are database observations at the inspected endpoint, not proof that all archived JSON members were ingested or that all tournament cohorts share one reset boundary. The unresolved archive/database count delta remains recorded in pokemon_tcg_aug14_data_etl_database_audit.

Identity

A model is a stable identity with immutable artifact revisions. A deck family is renameable with immutable composition revisions. A submission points to one concrete model revision and one concrete deck revision. The same model with several decks therefore produces several submissions without pretending the model changed.

The current implementation has partial submission identity: teams, submissions, and submission_decks exist, and a submission can reference multiple observed decks. Exact model/model-revision identity and submission lifecycle events are still planned.

Local policy

The same model/deck pair is one persistent local submission lineage across synchronous arena runs. A new pair starts at Elo 600. Local card ratings accumulate evidence across submissions.

Remote policy

Each new Kaggle submission starts its own remote rating lineage at 600, even if the model is unchanged or only the deck changed. Local and remote evidence remain separate.

Rating layers

Submission, model, deck and card ratings are separate. Submission ratings represent a concrete competitive pairing. Model and deck ratings aggregate their relevant populations. Card ratings aggregate card-level match evidence. A deck rating is an outcome-based composition rating, not a simple average of its cards.

The current code computes deck Elo and card Elo per source. Submission Elo, model Elo, rating policies, epochs, and append-only rating events remain target scope rather than implemented behavior.

Current invariant-deck calculation

The live ResultsDB.get_invariant_deck_elo path is a deck-level calibration surface, not a universal submission or model rating. For a deck with N games and W wins, the current implementation clips W/N to [0.02, 0.98], applies the Bradley-Terry-style inversion around R0 = 600, shrinks it toward 600 with N0 = 10, and adds a weighted local-to-remote translation estimated over overlapping decks. The translation weights are exponential in local game volume with tau = 20, capped for numerical stability.

The code currently uses wins / games_played for this invariant calculation. Stored draws are not converted to half-wins in that path, even though the ordinary online Elo update uses a 0.5 draw score. That difference is an implementation detail and an open interpretation point, not a reason to call the two ratings equivalent. The formula, assumptions and research boundary are expanded in pokemon_tcg_elo_pagerank_invariance.

The current local probe gives deck 633 an invariant Elo of approximately 412.21 over 420 games and deck 251 approximately 577.39 over 420 games; both satisfy the MD10 completeness flag. These values are source/database observations from the inspected snapshot. They do not replace the deck-conditioned win rates in pokemon_tcg_aug14_ablations_tournaments, and they should not be compared across reset or source boundaries without a cohort label.

Provenance of the rating lineage

The rating surface evolved in layers rather than arriving as one atomic feature:

Project historyDocumentation meaning
876ce34 and 8cfe68d (2026-07-26)Enforced source-separated card/deck Elo and changed the bootstrap from 1000 to 600
5beaac9 (2026-07-29)Rebuilt the normalized SQLite database shape that carries day/source-partitioned ratings
f90ac1e (2026-08-11)Added curriculum sweep orchestration and atomic Elo updates
86aa528 and 89deb7d (2026-08-12)Added the Stage 3 tournament/rating changes and later local-Elo direction
dbf298a (2026-08-13)Separated bulk Elo recomputation from ETL synchronization and recorded the idempotency boundary
936d301 (2026-08-14)Added the PageRank/Abelian graph-invariance monograph and updated the master RFC

This sequence is why the project has several legitimate rating vocabularies: ordinary daily Elo, source-separated deck/card Elo, invariant deck calibration, and the proposed graph-theoretic bridge. They share lineage but are not one metric.

Related

pokemon_tcg_ladder_and_research · pokemon_tcg_deck_strategy · pokemon_tcg_physical_schema · pokemon_tcg_dashboard_and_tournament · pokemon_tcg_local_platform_status

pokemon_tcg_elo_pagerank_invariance · pokemon_tcg_sqlite_schema_current · pokemon_tcg_current_state_reconciliation · pokemon_tcg_empirical_ablation_monograph