---
type: analysis
title: "Pokémon TCG — Abelian Elo and PageRank Invariance"
description: "Formal and empirical bridge between translation-invariant tournament ratings, sampled opponent graphs and the PageRank analogy in the project research documents."
tags: [pokemon-tcg, elo, abelian-group, pagerank, tournament, graph, invariance, sampling]
timestamp: "2026-08-15T17:14:00-03:00"
---

# Pokémon TCG — Abelian Elo and PageRank Invariance

## Research question

The rating documents ask whether tournament strength should be represented relationally rather than as an absolute score. If every latent strength is translated by the same constant, pairwise outcomes should remain unchanged. The PageRank document explores whether a similar invariance appears when the tournament is viewed as a directed graph and the ranking is treated as a stationary distribution.

This is a formal research bridge. The project has not established a general spectral isomorphism between the live Elo implementation and Wikifita's PageRank graph.

## Abelian rating formulation

The proposed group is the additive real line:

$$
(\mathbb{R}, +), \qquad s_i' = s_i + c.
$$

Pairwise Bradley–Terry-style probabilities depend on differences:

$$
P(i \succ j) = \sigma\!\left(\frac{s_i-s_j}{\tau}\right).
$$

The common translation cancels from `s_i - s_j`. The document also describes a temperature and moving/median smoothing choices for noisy tournament observations. These equations are a model proposal; the implementation in `rl/results_db.py` and the stored tournament rows must be checked whenever a numerical claim is made.

The live implementation now exposes a narrower, inspectable version of this
idea through `ResultsDB.get_invariant_deck_elo`. It computes a clipped
win-rate inversion around `R0 = 600`, applies MD10 shrinkage with `N0 = 10`,
then adds a softmax-weighted local-to-remote translation over overlapping
decks. The source currently uses `wins / games_played` in this invariant path;
stored draws are not converted to half-wins there. This differs from the
ordinary online agent/deck update, which scores a draw as `0.5`, so “Elo” must
always be qualified by estimator, source and cohort. Current local probes and
the rating lineage are recorded in [[pokemon_tcg_submissions_and_elo]].

## Why sampling changes the interpretation

The platform analysis records approximately 6,791 official teams but only about 1,059 teams in the exported replay corpus, with daily coverage around 1.05–2.37% in July and a maximum around 5.57% in August. The observed graph is therefore a sampled subgraph of the competition population.

Consequences:

- a rating can be internally consistent on the observed graph while being poorly calibrated to the full leaderboard;
- top-10/top-25/top-100 comparisons are vulnerable to blind spots and selection effects;
- a translation-invariant estimator does not remove sampling bias;
- deck, source cohort and archive-window differences can alter graph connectivity.

The invariant formulation is useful precisely because it makes the relational assumption explicit, not because it magically solves the coverage problem.

## PageRank analogy

The PageRank document treats Wikifita relations as a graph and compares stationary influence to tournament strength. The analogy is strongest at the level of graph structure:

```text
nodes        -> models, teams, documents or concepts
directed edge -> observed win, reference or relation
edge weight  -> frequency, confidence or transition mass
ranking      -> stationary or pairwise-relative importance
```

The analogy becomes a testable research program only after defining the graph, normalization, damping/temperature, missingness model and equivalence criterion. A visual similarity between two rank lists is not an isomorphism proof.

## Three Elo contexts that must remain distinct

The same label, Elo, appears in several Wikifita projects with different
objects and update semantics:

| Context | Rated object | Anchor and evidence boundary |
|---|---|---|
| Pokémon TCG AI Battle | Decks, cards, agents and planned submission/model lineages | Current database ratings start from 600, are split by `remote`/`local`, and include an experimental invariant-deck calibration; source and reset boundaries matter |
| Antigravity 2.0 / unit-distance research | Mathematical hypotheses against published or human reference results | The research page records a 1200 reset and Elo as an evaluation protocol for hypotheses, not a competitive-game rating |
| Co-Scientist | Candidate research systems or hypotheses in head-to-head evaluation | The tournament page describes its own initial scale, K-factor choices, deterministic match IDs and gold-set/pair-selection protocol |

The cross-project comparison is methodological: Elo can provide a compact
relative-evidence protocol. It is not evidence that a Pokémon deck rating,
an Antigravity hypothesis score and a Co-Scientist model score share a common
scale or can be merged. See [[elo-as-experimental-protocol]],
[[/pesquisas/antigravity-2.0]] and [[co-scientist-elo-tournament]].

## Current empirical anchors

The SQLite tournament ledger contains the following separate cohorts:

| Cohort | Observation |
|---|---|
| IDs 98–102 | Full round robin: Stage 1 28.47%, Stage 2 28.93%, Stage 3 epochs 31/32 30.42%/30.19%, teacher 67.16% |
| IDs 105–109 | 20-game benchmark: stages 1–4 from 14.17% to 14.72%, teacher 43.89% |
| IDs 119–122 | Comparable FP32 420-game matrix: Stage 1–4 from 13.81% to 17.14% |
| IDs 123–128 | 800-game and later teacher sweeps, with distinct opponent/deck/reset conditions |

These are enough to motivate a relational rating analysis, but not enough to collapse all cohorts into one rating scale without a bridge model.

## Required validation

To test the claimed invariance, future analysis should:

1. define a frozen tournament graph and its source/reset boundaries;
2. compute pairwise ratings before and after a common strength translation;
3. compare outcome probabilities, not only ordered rank lists;
4. model missing or sampled edges explicitly;
5. compare Abelian updates with a PageRank-style estimator under the same graph;
6. report sensitivity to deck, opponent source, time window and tournament size.

The current database uncertainty around resets is part of this experiment design. The existence of tournament summary IDs does not prove that all underlying match rows were retained.

## Primary sources

- `docs/abelian_group_elo_formulation.md` — additive group and translation-invariant rating proposal.
- `docs/pagerank_and_abelian_graph_invariance.md` — PageRank/tournament graph bridge.
- `docs/kaggle_platform_dynamics.md` — coverage and sampling limits.
- `docs/kaggle_timezone.md` — archive-window and timestamp inference.
- `docs/normalization_heuristics.md` — team-identity resolution and residual uncertainty.
- `rl/results_db.py` and current SQLite tournament records — implementation/data authority for numerical checks.
- `co-scientist/co-scientist-elo-tournament.md` and `pesquisas/antigravity-2.0.md` — separate-project Elo protocols used only for the methodological comparison above.

## Cross-references

- [[pokemon_tcg_aug14_ablations_tournaments]] — cohort-separated results.
- [[pokemon_tcg_data_oracle_etl]] — source and identity provenance.
- [[pokemon_tcg_docs_corpus_provenance]] — document timeline.
- [[pokemon_tcg_manuscript_and_empirical_synthesis]] — manuscript treatment of Elo and empirical results.
- [[pokemon_tcg_submissions_and_elo]] — source-separated submission/deck/card lineages and current invariant-deck observations.
- [[elo-as-experimental-protocol]] — cross-project comparison of Elo as an evaluation protocol.
