# Rating Offensive Lines in NFL

Everyone (almost) agrees that the offensive line is crucial for the success of a team. However, evaluating the offensive line in NFL is still a mystery and underdeveloped. The offensive line has an important role in both the passing game (by protecting the QB from sacks and hits), as well as in the running game (by opening holes for the running backs). As such various metrics have been used to rank offensive lines, such as sacks allowed, QB hits, yards-per-carry etc. All of these are good but there are a few issues with them.  For example, any metric that evaluates the impact of the offensive line on the running game is set to have the issue of controlling for the running back. You might have a very good offensive line but if your running back is terrible the yard-per-carry will be low, and vice versa. On the contrary, someone could realistically argue that sacks and QB hits are less impacted by the QB itself.  Of course, there are QBs that can avoid the pressure even if the offensive line collapses (e.g., Big Ben), while the WRs might have hard time getting away from the coverage and hence, even though the offensive line protected the QB well, it eventually took the sack/QB hit.  However, also in this case typically if the play is broken, and the protection by the offensive line was good, the QB will throw the ball away to avoid the sack. Also note that there is a very strong correlation between sacks and QB hits (see Figure below – r =0.73, p-val < 0.01) and thus I will focus on the sacks only from now on.

So let us focus on sacks then. Obviously the total number of sacks are impacted by the total number of pass attempts (if you never pass, you will never be sacked, but this does not mean your offensive line is necessarily good).  This is easily fixed by using the sack rate, i.e., the ratio between the number of sacks and the number of passing attempts.  Raw sack rate though is not enough! Having a sack rate of 0% against the Browns is not the same as having a 0% sack rate against the Broncos (even though Myles Garrett might beg to differ).  So you need to adjust for the opponent strength.  In order to do so we will define the offensive line’s efficiency of team T as $o_{T}$.  An average offensive line will be represented by $o_T = 1$. However, we said that we need to account for the defensive line and its pass rushing ability and hence, we will define the pass rushing efficiency of team T as $d_T$. With $s_r$ being the average sack rate, we can predict the sack rate of team T1 when facing team T2 as: $s_r\cdot o_{T1} \cdot d_{T2}$. If $o_{T1} < 1$ the offensive line of T1 is better than an average offensive line allowing for a smaller sack rate.  Similarly, if $d_{T2} > 1$, the pass rushing of team T2 is better than average.  How do we find the “o”s and “d”s (as well as the average suck rate $s_R$ which should be adjusted for team abilities)? We will use a regression equation (not linear as you will see) and we will minimize the following objective function:

$min_{o,d,s_r} \sum_{i,j,k} (s_{i,j,k}-s_r\cdot o_{i} \cdot d_{j})^2$

The minimization happens over the variables o, d and $s_r$. $s_{i,j,k}$ is the actual sack rates observed in game k (offensive line of team i versus defensive line of team j). So the benefit is that with this optimization we are also getting ratings for the pass rushing of teams! Using last year’s data, which were obtained through nflscrapR, the following is the ratings obtained.

As we can see Cleveland had a very bad offensive line (3 times worse than the average offensive line) and a bad pass rush as well (50% worse than average). The Giants appear to have had the best offensive line (in terms of sack rate) last year, while Titans were a close second. Of course, sack rate is only one of the possible ways to evaluate an offensive line, but the good thing is that one could use the same approach to rank lines with other metrics. It is also possible to obtain multiple rankings and then integrate them to a single one using an algorithm like Borda count or the Condorcet method.