Skip to main content

Help & Documentation

Everything you need to understand how AimRank works.

Rating Algorithms

AimRank ships 8 algorithms covering every preference-data shape. Six compute your ratings and are selectable per domain (Glicko-2, Bradley-Terry, Elo, TrueSkill, OpenSkill, Elo-MMR); two more (Plackett-Luce, CrowdBT) run post-hoc as audit aggregators that cross-check those ratings rather than produce them. The system recommends a rating engine after you add entities.

Glicko-2

Sports, players, time-sensitive rankings

Tracks three values per entity: rating (skill estimate), deviation (uncertainty), and volatility (consistency). When an entity is inactive, deviation grows, meaning the system becomes less sure about their true skill. This is the Bayesian-correct approach: "we're forgetting, not penalizing."

Use when items go through periods of activity and inactivity (athletes between seasons, products between updates).

Bradley-Terry

AI eval, product comparison, preferences

A pure pairwise preference model. Estimates the probability that item A beats item B as P(A>B) = exp(s_A) / (exp(s_A) + exp(s_B)). No decay, no volatility, just clean probabilities from comparisons. This is what LMSYS Chatbot Arena uses under the hood.

Use when you want calibrated win probabilities ("A has a 72% chance of being preferred over B") and don't need time decay.

Elo

Casual voting, fast convergence

The classic chess rating system. Simple formula: after each comparison, the winner gains K×(1-expected) points and the loser loses the same. Converges fast but doesn't track uncertainty. Every rating looks equally confident.

Use for casual community voting where simplicity matters more than statistical rigor.

TrueSkill

Board games, multi-player, team games

Developed by Microsoft for Xbox matchmaking. Tracks rating (μ) and uncertainty (σ) like Glicko-2, but natively handles games with more than 2 players. A 4-player board game session updates all ratings in one pass.

Use when entities compete in groups (board game nights, multiplayer tournaments, team sports).

OpenSkill

Fast inference, ladders

Open-source alternative to TrueSkill with closed-form updates (no iterative solver). Comparable accuracy, faster computation. Good for real-time leaderboards.

Use as a drop-in replacement for TrueSkill when you need faster updates.

Elo-MMR

Contests, tournaments, outlier resistance

Bayesian Elo with a logistic likelihood. Monotonic (rating always increases for wins) and robust to outlier results. Designed for competitive programming contests.

Use for formal tournament settings where you need robustness against surprise results.

CrowdBT (audit only)

Per-annotator quality scoring

Chen et al. 2013. Joint inference of entity scores AND annotator reliability η ∈ [0, 1]. Surfaces noisy raters, anti-correlated raters, and trolls explicitly. Run as a periodic audit on accumulated votes, not a live engine.

Use as a methodology audit when you need to filter low-quality annotators before RLHF export. Available via /api/v1/analytics/rankings/{id}/crowd-bt.

Plackett-Luce (audit only)

Listwise rankings, GRPO-style data

Plackett 1975 / Luce 1959. Generalises Bradley-Terry from pairs to ranked lists of K items (top-3 of 8, top-5 of 12). Collapses to BT on pairwise data. Connects to DeepSeek's GRPO recipe and HuggingFace TRL group preference learning.

Use when voters give ranked lists instead of pairs, OR as a second-opinion aggregator on pairwise data. Available via /api/v1/analytics/rankings/{id}/plackett-luce.

Glossary

DomainTop-level container. Groups entities that share ratings. Think "chess" as a domain with players as entities.
EntityA thing being ranked: a prompt variant, player, product, video output, anything.
CompetitionA way to vote on entities within a domain. Can be open voting (continuous A vs B), bracket (single-elimination), or optimization (PBO).
Rating (μ)The estimated skill/quality of an entity. Higher = better. Starts at 1500 for most algorithms.
Deviation (φ)How uncertain the system is about the rating. High deviation = few comparisons, low confidence. Shrinks with more votes.
Match qualityHow close two entities are in skill. Quality of 1.0 = perfectly matched (50/50). Quality near 0 = one-sided blowout.
MatchmakingHow the system picks which two entities to show you next. "Adaptive" auto-selects the best strategy based on how mature the ranking is.
PBOPreferential Bayesian Optimization. Uses a Gaussian Process to model latent utility from pairwise comparisons, then suggests which config to try next. For optimizing continuous parameters (temperature, top_p, etc.).
RLHF ExportExports your pairwise comparison data in formats used to train AI models: DPO pairs, Anthropic HH, OpenAI RM.
MCPModel Context Protocol. Lets AI agents (Claude, GPT) use AimRank as a tool: create domains, vote, read results, all programmatically.
BracketSingle-elimination tournament. Entities are seeded, then compete head-to-head. Winners advance until a champion is crowned.
Domain-level ratingsEntity ratings are shared across all competitions in a domain. A vote in any competition updates the same rating.

MCP Server Setup

Connect AimRank to Claude Desktop, Claude Code, n8n, or any MCP-aware agent.

Option 1: Claude Desktop (stdio)

Add to your Claude Desktop config file:

{
  "mcpServers": {
    "aimrank": {
      "command": "python",
      "args": ["-m", "api.mcp.server"],
      "env": {
        "PYTHONPATH": "/path/to/aimrank-platform/backend",
        "DATABASE_URL": "postgresql://user:pass@host/aimrank"
      }
    }
  }
}

Option 2: HTTP (Claude Code, n8n, hosted agents)

Point your agent at the HTTP endpoint:

{
  "mcpServers": {
    "aimrank": {
      "type": "streamable-http",
      "url": "https://your-domain.com/mcp/mcp"
    }
  }
}

56 Available Tools

aimrank_create_domainaimrank_get_domainaimrank_list_domain_entitiesaimrank_add_entities_to_domainaimrank_create_competitionaimrank_list_competitionsaimrank_export_domain_dataaimrank_get_rankingaimrank_get_leaderboardaimrank_get_matchupaimrank_search_entitiesaimrank_create_rankingaimrank_add_entityaimrank_submit_voteaimrank_record_sessionaimrank_create_pbo_studyaimrank_pbo_suggest_nextaimrank_record_pbo_comparisonaimrank_pbo_recommendaimrank_export_rlhf

A sample of the 56 tools available to agents.

FAQ

How many comparisons do I need for reliable rankings?
It depends on the number of entities. Rule of thumb: 3-5 comparisons per entity gives you a rough ranking. 10+ per entity gives you statistical confidence. The system shows confidence intervals so you can judge when to stop.
Can AI judge instead of humans?
Yes. The vote endpoint accepts any caller: human via the UI, or an AI agent via MCP/API. Many users have an LLM compare two outputs and submit the vote programmatically. The math doesn't care who's voting.
What's the difference between open voting and a bracket?
Open voting is continuous: the system keeps serving matchups and the leaderboard evolves over time. A bracket is single-elimination: fixed rounds, one winner. Use open voting for ongoing evaluation, brackets for "crown a champion" moments.
Do I need PBO or can I just use regular voting?
Regular voting is enough for most cases. PBO is for when you have a continuous search space (like temperature 0.0-1.0) and want the system to intelligently suggest which configs to try. If you're just comparing 5 fixed options, regular voting is faster.
How do I compare videos or images?
When creating a domain, pick the media type (video, audio, image). Then upload files to each entity via the edit panel. The vote page renders side-by-side media players automatically.
Can multiple people vote?
Yes. Share the competition URL. Public competitions allow anonymous voting. Private ones require login or an invite code.