Vantage Points

How the rating works · last updated 27 August 2026

Your Vantage Points (VP) estimate the points you personally add to an alliance score. Everyone starts at the average single-team share of an alliance score, and the number moves after every match based on how your alliance did versus what we expected.

This page is the whole method. If you think your number is wrong, everything you need to check it is here — that is deliberate, and it is the main reason this rating exists.

The formula

your change = weight x learning_rate x (actual alliance score
                                       - predicted alliance score) / 2

The predicted alliance score is simply the sum of the two teams' current VP. That is the entire model. Everything below is four small adjustments to that one line.

A worked example

Real matches, from team 66556Z's Push Back season. You can reproduce every row with a calculator.

match      partner (their VP)   predicted  actual   diff/2   x rate  = change   VP
qual 8     17788F (26.5)          53.1      31    -11.0     0.50    -5.52   21.0
qual 31    40000A (43.2)          64.2      61     -1.6     0.46    -0.74   20.3
qual 40    88909Y (46.0)          66.3      98     15.9     0.42    +6.75   27.0
qual 79    5069W  ( 8.2)          36.4      68     15.8     0.35    +5.52   33.8
qual 100   43280C (15.3)          52.4      30    -11.2     0.28    -3.08   34.0
F 1        88909X (54.0)          87.7      64    -11.8     0.20    -0.79   32.9

Walk the first row. Both teams started at 26.5, so we predicted the alliance would score 53.1. They scored 31. The shortfall was 22 points, split two ways = −11.0 each. Times the learning rate 0.50 = −5.52. New VP: 21.0.

Row 4 is the one worth studying: the partner was rated just 8.2, so we predicted only 36.4 and the alliance put up 68. You get credit for carrying a weak partner. Compare it to row 3, where the alliance scored more in absolute terms (98) with a partner rated 46.0 — and earned slightly more, but not proportionally, because much of that 98 was expected from the partner. That difference is the entire reason this is not just an average.

The last row shows elims: an 11.8-point shortfall at a 0.20 rate would normally be −2.36, but weighted at a third it moves only −0.79.

The four adjustments

1. New teams move faster

The learning rate starts high and eases down over your first matches. A brand-new team's rating is barely more than a guess, so early matches should move it hard; once we have seen you many times, one bad match should not erase what we know. You can watch it decay in the x rate column above.

2. Elimination matches count for a third

In elims you play with the same partner every match. If your alliance wins four straight, the data cannot tell which of you did it. So elims still count — they clearly mean something — but at reduced weight, and they do not advance your match counter. In the table above, the Final had an −11.8 error at a 0.20 rate, which would be −2.36 in a qualification match, and moved only −0.79.

Our own parameter search could not tell the difference between weighting elims at a third and ignoring them entirely — the two scored identically to four decimal places. We kept the third because the data was indifferent and the argument was not: a team that goes 6−0 in elims earning nothing would be wrong, even if it predicts just as well.

3. One match cannot crater you

A no-show and a disqualification both score zero, and the match data gives no way to tell either apart from simply being beaten badly. So the per-match change is capped. Without it, one forfeit would wreck a good team's rating for a reason that has nothing to do with their robot.

4. The starting number comes from the game, not from us

Everyone starts at the average single-team share of an alliance score, computed from that season's own first matches — 26.55 for Push Back. It is in this game's points, not a constant borrowed from chess or another sport. A game where alliances score 300 will produce a completely different starting number, which is correct.

Predicting a match

Add up each alliance's VP, take the difference, and run it through a logistic curve:

P(red wins) = 1 / (1 + e^-((red VP - blue VP) / spread))

A 6-point VP edge is about 62%, 12 points about 73%, and 24 points about 88%. The spread constant was fitted on matches the search never saw, not chosen by feel — and re-fitted after the elimination weight was pinned, because the two move together.

How well does it actually work

Tested against every V5RC match of the 2025–26 Push Back season: 1,790 events, 108,398 usable matches, 12,437 teams. Strictly walk-forward — every match is predicted using only matches that started before it.

MethodAccuracyBrierPartner luck
Vantage Points76.14%0.15977.7%
Average alliance score76.25%0.173532.8%
Elo74.43%0.1914
Win rate72.82%0.1894
Always pick red56.57%0.2481

Read that table honestly: VP does not predict match winners better than simply averaging your alliance scores. The 0.11-point difference is not real — tested properly on the matches where exactly one method was right, it splits 4,354 to 4,433 out of 8,787, which is a coin flip (McNemar, p = 0.41). The two are tied.

Where VP does win is Brier score, which grades how well-calibrated the confidence is rather than just whether the pick was right. That matters for a displayed prediction: a 70% should actually happen about 70% of the time.

So why not just average your scores?

Because a prediction and a ranking are different claims. A prediction says "red probably wins this one." A leaderboard says "this team is better than that team" and prints it next to their name. Those two come apart in exactly one place: your alliance score includes your partner's contribution.

Qualification partners are assigned by the schedule, not chosen. That makes partner quality a fair experiment: whether you drew strong partners is luck, so any part of a ranking that tracks partner quality is a ranking you did not earn. We measured it across 10,164 teams with at least 12 qualification matches:

share of the ranking explained by partner luck alone
  average alliance score    32.8%
  Vantage Points             7.7%

Nearly a third of a ranking built on raw alliance averages is explained by who you happened to be scheduled with. Subtracting the partner's expected contribution before crediting anyone is the one thing VP does that averaging cannot.

Being straight about the limit of that: 7.7% is not all unfairness. A team in a strong region has strong partners and is genuinely stronger, so some of what is left is real signal, not contamination. The claim we will defend is the gap — both numbers carry the same regional effect, so the difference is what the adjustment bought.

What VP cannot see

The constants

Fitted on the first 60% of the season and validated on the remaining 40% — never on the matches used to report a score. Every one of these is refit each season and republished, because they are in points and a different game scores differently.

starting VP          26.55    average single-team share, from the season's first 200 matches
learning rate         0.50 -> 0.20 over 8 matches
elimination weight    1/3      and does not advance your match counter
spread               12        points of VP difference worth ~73%
per-match cap        66.4      points of error (2.5x the starting VP)

Check it yourself

Take your own match list, start at the season's starting VP, and apply the formula match by match. If you get a different answer than we show, we want to know — the whole reason this rating is built the way it is, instead of something statistically fancier, is that you can do exactly that. Bayesian ratings and least-squares fits cannot be checked with a calculator.


Vantage is not affiliated with, endorsed by, or sponsored by VEX Robotics, Innovation First, or the REC Foundation. Questions or corrections: [email protected] · Vantage · Docs · Privacy