OSR V2

OSR V2 rating methodology

OSR V2 is Oregon Sports Ranking's independent boys soccer rating. It measures performance across the statewide opponent network; it is not an official OSAA ranking, playoff seed, or league tiebreaker.

80%

Opponent network

Opponent quality, venue, result margin, and network connectivity.

10%

Result quality

A nonlinear score/result measure reinforced by common opponents.

10%

Scoring profile

Opponent-adjusted attack and defense, weighted 52% and 48%.

1. Eligible statewide network

Completed, rating-eligible varsity games form one season-specific graph. Oregon varsity programs are published nodes. Legitimate out-of-state opponents may remain as boundary nodes, but are never published in Oregon rankings. Boundary nodes with fewer than two distinct opponents are repeatedly removed until stable. Disconnected Oregon teams are omitted rather than assigned an invented rating. Rating margin is capped at seven without changing the canonical score.

2. Recency and venue

Here k is the number of completed-game dates before the snapshot. Pairwise evidence uses symmetric geometric-mean recency. Home advantage is estimated jointly by weighted least squares; neutral games receive no offset, and team parameters are centered to zero.

r = max(0.50, 0.95^k)

3. Independent anchor reliability

Each team-to-opponent direction gets its own reliability. Independent and cross-division opponents supply stronger evidence; repeated meetings add only limited information. Directional game weights combine recency and reliability and are normalized per team.

E = n_other + 0.60 n_cross + 0.20 Σ c_opponent · A = 0.05 + 0.95(1 − exp(−E/2.5))

4. Recursive network component

All opponent-dependent values are solved simultaneously as a zero-mean weighted least-squares system using a stable singular-value decomposition. No hidden ridge term or starting Elo is introduced.

N_i = Σ_j w_ij (N_j + venue-adjusted capped margin_ij)

5. Pods and partial pooling

Pods are same-classification connected components. Strongly bridged pods retain their earned baseline; weakly connected pods move toward neutral. The ordering and separation of teams within every pod remain intact.

E_p = Σ r_g A_home→away A_away→home · B_p,V2 = (E_p B_p,prior + statewideMean)/(E_p + 1)

6. Nonlinear result component

Capped differential d is venue-adjusted and fitted by weighted least squares. Common-opponent comparisons add 0.10 direct-game-equivalent strength using geometric-mean recency. Repeated evidence for one team pair is recency-averaged and capped at 0.50 total weight.

q(d) = 0.30 sign(d) + 0.70 sign(d) ln(1 + 2|d|)/ln(15)

7. Opponent-adjusted scoring

An additive model estimates the scoring intercept, home effect, team attack, and team defense. Only winning goals beyond a seven-goal margin are removed for this component. Attack and defense are centered, and higher defense is oriented as better.

OD = 0.52 Attack + 0.48 Defense

8. Final OSR V2 rating

Each component is population-standardized across every analytical node. A rating of 100 is the network average and 15 points is one standard deviation. State and division rank use the same score; division rank limits the ordering to one classification.

C = 0.80 Z(Network) + 0.10 Z(Nonlinear) + 0.10 Z(OD) · Power = 100 + 15 Z(C)

Confidence and historical seasons

Confidence is a separate 0–100 evidence-quality indicator using average directional anchor quality, independent-opponent information, and bridge saturation E_p/(E_p+1). It never changes or shrinks Power. Historical ratings are calculated independently by season. Seasons without a valid statewide network are omitted, and reconstructed historical ratings are labeled as reconstructed.

Variable glossary

i, j
The rated team and one of its opponents.
g
A completed, eligible varsity game.
p
A same-division connected-component pod.
k
Completed-game-date age of a game.
d
Venue-adjusted goal differential after the seven-goal cap.
r_g
Recency weight of game g.
n_other
Distinct independent opponents in the directional anchor.
n_cross
Distinct cross-division opponents.
c_opponent
Limited repeat-meeting evidence for an opponent.
E, A
Directional evidence and its bounded reliability transform.
w_ij
Normalized directional game/network weight from i to j.
N_i
Solved recursive network value for team i.
E_p
Crossing-game bridge evidence attached to pod p.
B_p
Pod baseline before or after V2 partial pooling.
q(d)
Nonlinear result transform for capped differential d.
Attack, Defense
Centered opponent-adjusted scoring parameters.
Z(X)
Population z-score: (X − population mean)/population standard deviation.
C
Final weighted standardized component before the 100/15 display scale.

2024 reconstructed season

The recovered 2024 schedule contains two disconnected statewide components, so an ordinary statewide OSR V2 ordering is mathematically unidentified. Each component is rated with the unchanged OSR V2 engine. For every team with an exact or explicitly mapped identity in both adjacent rated seasons, its anchor target is the mean of its 2023 and 2025 Power values. A component receives the single least-squares translationshift = mean(target_i − localPower_i)across at least three anchors. The shift is added to every team in that component, preserving every within-component Power difference exactly. These rows are persisted with method component-baseline-reconstruction and are always labeled Reconstructed. No missing bridge games or identities are fabricated.

Worked example

If Team A wins 9–0 at home, the database keeps 9–0. Network and nonlinear margin use +7. The nonlinear input is 0.30 + 0.70 × ln(15)/ln(15) = 1.00 before venue adjustment. The scoring model removes only the two winning goals beyond seven, giving a protected 7–0 observation. Recency and both directional anchor qualities then determine weight. The win matters without allowing one uncapped blowout to dominate the statewide network.

Oregon Sports Ranking is independent of OSAA. Official schedules, results, rankings, and postseason decisions should be verified with OSAA or participating schools.