Blog

PivotScout Rating

How the PivotScout Rating works

Ratings explained 7 min read PivotScout method note

PivotScout Rating is a signed single-game skater rating centered on 0. It measures what happened while the skater was on track, compares that to the team's normal game environment, and then adjusts for teammate strength, power-jam context, short-handed jams, and VTAR. Positive numbers are good; negative numbers mean the skater's shifts trailed the expected context.

The four statsbook sections that feed the rating

1. Score sheet

For each jam, PivotScout reads each team's jam points and cumulative score. Star-pass rows are folded into the current jam, so the jam total used by the rating is the full team score for that jam.

2. Lineups sheet

PivotScout reads the five skater numbers listed for each team in each jam. A skater is rated only on jams where their number appears in their team's lineup. Those same lineups identify the four teammates whose VTAR values become the teammate-strength adjustment.

3. Penalties sheet

Penalty rows are joined back to the period and jam. If the penalized skater matches that team's jammer for the jam, PivotScout marks it as a jammer penalty. Opponent jammer penalties create a power-jam-for context. Own jammer penalties create a power-jam-against context. Teammate penalties reduce the jam weight and can trigger short-handed adversity credit.

4. Game Summary VTAR

PivotScout reads each rostered skater's total average plus/minus from the Game Summary VTAR table. That value is used twice: once as the skater's own VTAR signal, and once for every teammate in the lineup-strength calculation.

The exact formula

For a skater s on team T, let A_s be the set of jams where the skater appeared. Let O be the opponent. In the formula, pm means jam plus/minus: the skater's team's points in that jam minus the opponent's points in that same jam. If PivotScout shows a jam as 8-3 for the skater's team, then pm = 8 - 3 = +5. If the jam is 2-6, then pm = 2 - 6 = -4.

Jam-level values

pm_j = points_T_j - points_O_j. This is the team's plus/minus in jam j. It is the raw result PivotScout starts from because the rating is asking, "What happened on the scoreboard while this skater was on track?"

teammate_penalties_j = penalties by T skaters in j excluding s. This counts penalties taken by the skater's teammates, not the skater being rated. The thought process is that a skater should not get full blame for a messy jam if the lineup around them was short or disrupted by other people's penalties.

own_penalty_j = penalties by s in j. This records whether the rated skater personally took a penalty in the jam. PivotScout uses it as a gate: short-handed credit and short-handed loss relief can go to the skaters left dealing with the problem, but not to the skater who caused it.

w_j = max(0.7, 1 - (0.08 * teammate_penalties_j)). This is the jam weight. Each teammate penalty reduces the weight by 0.08, but the weight cannot drop below 0.70. That keeps penalty-hit jams in the rating while stopping one chaotic jam from overpowering the rest of the skater's game.

baseline_T = average(points_T_j) over every game jam. This is the team's normal scoring rate in that game. PivotScout uses it when judging power-jam offense, because scoring eight points on a power jam means something different for a team normally scoring two per jam than for a team normally scoring seven.

Jam score

base_j = (pm_j - team_average) * w_j. This turns the jam into a value relative to the team's normal game. If the team usually wins jams by +1.20, then a +5 jam starts as +3.80 before context. That makes the breakdown easier to read: positive means better than the team's average jam, negative means worse than the team's average jam.

+ 0.35 * max(0, points_T_j - baseline_T) if the opponent jammer was penalized. This adds power-jam-for credit only for scoring above the team's normal scoring baseline. The idea is to reward actually converting the advantage, not merely being present while the other jammer sat.

+ 0.35 * (pm_j - (-4)) if the skater's own jammer was penalized. This judges power-jam-against defense against an expected -4 margin. Holding the jam to better than -4 earns credit, because that is a good defensive result while short a jammer. Giving up worse than -4 still hurts, but the skater is no longer punished just for being in a situation where losing points is expected.

+ 0.45 * pm_j if teammates were penalized, own_penalty_j = 0, and pm_j > 0. This is short-handed adversity credit. It only appears on positive jams, and only for skaters who did not personally take a penalty, because PivotScout is trying to notice the players who still win the scoreboard while someone else has compromised the lineup.

+ 0.25 * abs(pm_j) if teammates were penalized, own_penalty_j = 0, and pm_j < 0. This is short-handed loss relief. The jam still hurts, but it hurts less for the skaters who were left trying to survive a bad situation they did not create.

Game-level conversion

relative_impact = sum(jam_score_j) / sum(w_j). This converts all of the skater's context-adjusted jam scores into a per-jam value. Because the team average was already included in each jam's base, this value is already relative to the team environment.

team_average = average(points_T_j - points_O_j) over every game jam. This is how the team performed overall in the game. It is pulled into every jam's base calculation so the breakdown shows context immediately instead of hiding the team adjustment at the end.

teammate_context = average(avg teammate VTAR in each appearance). For every appearance, PivotScout averages the VTAR values of the other four skaters on track, then averages those values across the skater's game. This estimates how much help the skater had. Stronger teammates make good results a little less surprising; weaker teammate groups make good results harder to earn.

Final rating

opportunity = (power_for_count * 0.45) + (short_positive_count * 0.85). This adds a small game-level context adjustment. Power-jam-for appearances add opportunity credit, and positive short-handed jams add extra credit because they are unusually valuable. Power-jam-against defense is handled inside the jam score against the -4 benchmark rather than as a flat game-level penalty.

vtar_signal = skater_total_avg_plus_minus * 2.5. This brings the statsbook's own VTAR signal into the rating. It is not allowed to dominate the formula, but it helps preserve useful role-aware plus/minus information that already exists in the source workbook.

rating = relative_impact * 7.5 - teammate_context * 1.4 + opportunity + vtar_signal. The rating starts at 0, which is neutral. Relative impact is the biggest lever because the core question is still scoreboard impact. Teammate context is subtracted so results beside stronger groups are discounted slightly. Opportunity and VTAR then add the smaller contextual signals. The result is not clamped, so especially strong games can go high positive and difficult games can go negative.

A complete worked example

Suppose a skater appears in four jams. Their team averages +1.20 plus/minus per jam across the whole game and scores 5.00 points per jam on average. The skater's own total average VTAR is +0.60.

Jam Score pm Context Weight Jam score
1 8-3 +5 Normal jam 1.00 (5 - 1.2) * 1.00 = 3.80
2 2-6 -4 One teammate penalty, own jammer penalty 0.92 (-4 - 1.2) * 0.92 + (-4 - -4) * 0.35 + 4 * 0.25 = -3.78
3 10-0 +10 Opponent jammer penalty 1.00 (10 - 1.2) * 1.00 + (10 - 5) * 0.35 = 10.55
4 4-2 +2 Two teammate penalties, positive short-handed jam 0.84 (2 - 1.2) * 0.84 + 2 * 0.45 = 1.57

weighted_score = 3.80 - 3.78 + 10.55 + 1.57 = 12.14

total_weight = 1.00 + 0.92 + 1.00 + 0.84 = 3.76

relative_impact = 12.14 / 3.76 = 3.23

teammate_context = 0.50, so teammate_adjustment = -0.50 * 1.4 = -0.70

opportunity = 1 * 0.45 + 1 * 0.85 = 1.30

vtar_signal = 0.60 * 2.5 = 1.50

rating = 3.23 * 7.5 - 0.70 + 1.30 + 1.50 = +26.3

What changes the rating?

Relative impact is the main engine
-30+4 -21+2+32

With teammate context, opportunity, and VTAR held at the example values, each extra +1.00 of relative impact adds 7.5 rating points.

Changing skaters changes teammate context
-2+1+4 +26+21+17

The teammate term is -1.4 * teammate_context. Replacing a +3.00 VTAR teammate with a -1.00 VTAR teammate lowers a four-teammate average by 1.00, which raises the rating by 1.4 points if the jam result is otherwise unchanged.

VTAR signal is direct and linear
-20+3 +16+20+28

Every +1.00 in the skater's own total average VTAR adds 2.5 rating points. Every -1.00 removes 2.5.

Specific value changes

Swap one teammate

A lineup has teammate VTAR values +3.0, +1.0, +0.0, -1.0, so the average is +0.75. Swap the +3.0 skater for a -1.0 skater and the average becomes -0.25. The teammate adjustment changes from -1.05 to +0.35, a +1.40 rating-point swing.

Turn a normal 10-0 into a power jam

If the team baseline is 5.00 points, a normal 10-0 jam contributes 10.00. If the opponent jammer was penalized, it contributes 10 + (10 - 5) * 0.35 = 11.75. It also adds +0.45 in the final opportunity term.

Win while teammates are in penalty trouble

A 4-2 jam with two teammate penalties has w = 0.84. The base contribution is 2 * 0.84 = 1.68. Because the skater's team still won the jam while short-handed, PivotScout adds 2 * 0.45 = 0.90 at jam level and +0.85 in the final opportunity term. The skater who took the penalty does not get that short-handed boost for their own penalty.

Lose while teammates are in penalty trouble

A 2-6 jam with one teammate penalty has w = 0.92. The base contribution is -4 * 0.92 = -3.68. PivotScout then adds 4 * 0.25 = +1.00 of short-handed loss relief, so the jam lands at -2.68 before any power-jam context. The loss still counts, but it is softened for the skaters who were short because of someone else's penalty.

Own jammer penalty risk

During a power-jam-against jam, PivotScout compares the jam to -4. A -4 jam adds 0 because it matches expectation. A -2 jam adds (-2 - -4) * 0.35 = +0.70, because holding a power jam against to minus two is good defense. A -7 jam adds (-7 - -4) * 0.35 = -1.05, because it fell three points below the defensive benchmark.

How to read the number

A rating around 0 means the skater's on-track results were close to the team's normal game environment after context. Scores of +20 or higher are very good and show in green. Scores from +8 to +19.9 are good and show in yellow. Scores between -7.9 and +7.9 are average and show in white. Scores from -19.9 to -8 are not good and show in orange. Scores below -20 are bad and show in red. Negative scores do not automatically mean a bad skater; they can also flag brutal usage, missing lineup data, or a game where a unit repeatedly took difficult shifts.

The rating is intentionally context-aware, not context-free. It is best used as a scouting prompt: start with the number, open the skater profile, then check the actual jams, role split, power-jam context, and who shared the track.