Offensive Veratility Score
For a walk through of calculating OVS in python please check out Calculating Offensive Versatility Score in Python!
Background
OG OVS Brainstorm - Method behind the madnessOVS started as a joke. I wanted a stat that would represent Paul Pierce's shot-making ability in a favorable light. Now, in its current state, you can think of OVS as a heat map stat that adjusts for position. Below, you will find a complete database of the statistic, with breakdowns by range, for every year since 1996, when the NBA started tracking shot distance. Data for 2024-2025 was updated as of: January 30th, 2025 .
Result
OVS addresses a significant barrier within sports analytics: how to measure soft skills.
What's important to understand is the original version of this stat was faaaar more complex than the version that I have turned into the OVS. This was always the core of what I was trying to do, but there were other components as well. A few examples being: a players ability to hit contested shots, how well they create shots for others, and things like offensive rebounding. This was really going to be a comprehensive stat representing a players total offensive value. I still want to work on perfecting those aspects of what I was trying to do, although they might turn into separate projects.
Regardless, the current version of the OVS is the product of a lot of research, tinkering, and an endless amount of spreadsheets. What I have now is a stat the can ACCURATELY convey a players ability to shoot from all distances. It is prone to exaggeration in small samples, but over more minutes played it can give insite into the type of floor spacing a player provides. All while serving its original purpose: buoying players who take + make a lot of midranges.