Ranking history schema.
Generated by generate_combined_rankings.py → ranking_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"}
|