Skip to content

ranking_history

src.models.aggregates.ranking_history

Ranking history schema.

Generated by generate_combined_rankings.pyranking_history.json. Variants: systems_ranking_history.json, security_ranking_history.json.

RankingSnapshot

Bases: BaseModel

A single author's ranking at a point in time.

Source code in src/models/aggregates/ranking_history.py
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
class RankingSnapshot(BaseModel):
    """A single author's ranking at a point in time."""

    rank: int = Field(ge=1, description="Ranking position at this snapshot date (with ties).", examples=[1])
    score: int = Field(
        ge=0, description="Combined score at this snapshot: artifact_score + citation_score + ae_score.", examples=[15]
    )
    # Abbreviated field names match the JS frontend expectations.
    as_: int = Field(
        alias="as", ge=0, description="Artifact score at this snapshot. Abbreviated 'as' in JSON output.", examples=[9]
    )
    aes: int = Field(ge=0, description="AE service score: (memberships × 3) + (chairs × 2).", examples=[6])
    tp: int = Field(ge=0, description="Total papers at tracked conferences at this snapshot.", examples=[42])
    ta: int = Field(ge=0, description="Total artifacts authored at this snapshot.", examples=[5])
    ar: float = Field(
        ge=0, le=100, description="Artifact rate: (total_artifacts / total_papers) * 100.", examples=[71.4]
    )
    rr: float = Field(
        ge=0,
        le=100,
        description="Reproducibility rate: percentage of artifacts with 'reproduced' badge.",
        examples=[66.7],
    )

    model_config = {"extra": "forbid", "populate_by_name": True}

RankingHistoryEntry

Bases: BaseModel

Dated snapshot of all author rankings, enabling rank-over-time analysis.

Source code in src/models/aggregates/ranking_history.py
39
40
41
42
43
44
45
46
47
class RankingHistoryEntry(BaseModel):
    """Dated snapshot of all author rankings, enabling rank-over-time analysis."""

    date: str = Field(description="Snapshot date in 'YYYY-MM' format, e.g. '2026-04'.", examples=["2025-01-15"])
    entries: dict[str, RankingSnapshot] = Field(
        description="Author name (DBLP format) → ranking snapshot. Keys include disambiguation suffixes."
    )

    model_config = {"extra": "forbid"}