How are OPR and DPR calculated?

so apparently, our team got the 2nd highest CCWM at vex 2019 worlds. im pretty happy about that but i have no clue what that actually means. I tried looking into to it but the only link i found doesn’t exist anymore. only thing I know so far is that CCWM = OPR - DPR but nothing else.

link that doesn’t exist:

here are our other stats:

so basically im just wondering what factors are taken into consideration when calculating OPR and DPR (wins, loses, ties, match-up? or sp) cause it would be handy to know going into my last year of vrc.
for the last few years they just seemed like random numbers to me


not a vex forum post, but has some valuable information


Don’t know if this is accurate to the system used on vexdb but it might help.


Essentially, OPR is a metric of your ability to positively contribute to your alliance score. It’s calculated by creating a huge system of equations, two for each match (one per equation per alliance)

For example, a match with 123A (red), 123B (blue), 456X (blue), 673X (red) where the score was 12-15, the following equations would be added

123A + 673X = 12
123B + 456X = 15

Repeat that procedure for every single match in the competition, and solve the system of equations. The value of your team is your OPR


Is it roughly the same for DPR?

Here’s that PDF on the wayback machine.


Are these scores only calculated for FRC?

They were originally developed by FRC teams but nowadays these stats get calculated in VRC all the time; VEX Via and VexDB both calculate OPR/DPR/CCWM automatically for every tournament.


DPR is similar, but it’s based on how many fewer points your opponents scored when you played against them.