I've always wanted to find an objective way to to adjust a schedule strength metric based upon how strong the team is to which the metric is applied. The "problem" is that there is pretty much no way to avoid the symmetric nature of the calculation: when a really good team plays a really bad team, the absolute SOS of the good team goes down by as much as that of the good team goes up.
Technically, there is a way to introduce an assymetry that "punishes" the team playing the much weaker team while still "rewarding" teams for playing strong opponents. Just use different formulas based upoin whether the opponent has a better or worse rank than the team under consideration.
When calculating the contribution to teamA's relative SOS for an opponent with a worse rank use
125 - RankOpponent (gets smaller as the opponent's rank gets worse) 2 × RankOpponent - RankTeamA (gets larger with opponent's rank and rank difference)
When TeamA's opponent has a better or equal rank, use
√[ ( 125 - RankOpponent ) × ( RankTeamA - RankOpponent ) ] (Gets larger as the opponent's rank gets better and the rank difference increases ) RankOpponent (Gets smaller as Opponent's rank gets better)
Now, there's nothing scientific about this, but the combination of functions meets my requirement that for a given team's rank, when all its opponents' ranks are ordered the value of the function is monotonic with respect to opponent's rank. You can see how much more a game between #10 and #50 improves the value of #50's relative SOS than it does #10's in this graph:
This isn't very meaningful - it's based upon ranks (ratings are better measures) and it's still based upon last year's values. Nonetheless, it's kind of interesting to see the qualitative difference between teams with similar ranks.
Just for fun, here're the comparisons between "intended" SOS and "intended relative" SOS for overall and non-conference schedules.