USR (Universal SciOly Rating) is an experimental rating built only from official event placements in public tournament results. It rates each event separately, adjusts for how strong each event's field was, and then combines events into an overall number. Model version v2-exp.2.
One event, School Potential view, as of 2026-02-15. Two fictional tournaments:
| Tournament | Team | Place / n | x = ln((n+1−r)/r) | Weight (normalized) |
|---|---|---|---|---|
| Harbor Invitational (fictional) | Tern Lake A | 1 / 4 | 1.386 | 0.971 |
| Harbor Invitational (fictional) | Quill Ridge | 2 / 4 | 0.405 | 0.971 |
| Harbor Invitational (fictional) | Basalt Park | 3 / 4 | -0.405 | 0.971 |
| Harbor Invitational (fictional) | Juniper Flats | 4 / 4 | -1.386 | 0.971 |
| Summit Regional (fictional) | Quill Ridge | 1 / 3 | 1.099 | 1.039 |
| Summit Regional (fictional) | Juniper Flats | 2 / 3 | 0.000 | 1.039 |
| Summit Regional (fictional) | Oxbow Prep | 3 / 3 | -1.099 | 1.039 |
The fit estimates field strengths: Harbor k = 0.130, Summit k = -0.149 (positive = stronger field). Adjusted performance is x + k.
| Team | Skill s | Potential q | Event USR (from q) | Shrinkage |
|---|---|---|---|---|
| Tern Lake A | 0.747 | 0.837 | 12.06 | 51% |
| Quill Ridge | 0.500 | 0.529 | 11.32 | 33% |
| Basalt Park | -0.136 | -0.131 | 9.67 | 51% |
| Juniper Flats | -0.457 | -0.369 | 9.08 | 33% |
| Oxbow Prep | -0.636 | -0.515 | 8.72 | 49% |
Quill Ridge finished 2nd at Harbor but won Summit and beat Juniper Flats twice; Tern Lake A's single win is shrunk more heavily because it is one result. Oxbow Prep's only result is last place in the weaker Summit field.
The event-wise approach is informed by SentientTree's 2026 SO Rankings (FAQ tab and the Division B overall formula, inspected 2026-09-27): placement logits, superscoring, field (competitiveness) adjustment, recency and field-size weights, and a softplus generalized-mean aggregate. scly.io does not claim to reproduce those rankings. The following are scly.io adaptations:
UTR Sports inspired the product idea of a searchable, explainable rating. scly.io is not affiliated with UTR and does not use its algorithm.
Observation. For event e at tournament t with n eligible participants (entries in Team Performance, unique schools in School Potential) and model rank r (midranks for ties): x = ln((n+1−r)/r). Events with n < 2 produce no observation.
Weight. w = exp(−age/200) × N0.25 × format, where age = as-of − end date (days, within a 400-day window, never after the as-of date), N = unique eligible schools, format = 1 in person, 0.5 explicitly online, 1 unknown (flagged). Weights are normalized to mean 1 in each event pool.
Fit. Minimize Σ w (si − kt − xit)² + λs Σ si² + λk Σ kt² with λs = 1, λk = 1. This is strictly convex with a unique solution, solved with preconditioned conjugate gradient and accepted only when one alternating update moves no parameter by more than 1e-7 (cap 10,000 iterations). Non-converged fits block publication.
Event values. Team Performance uses s. School Potential uses q = softplus⁻¹((Σ w·softplus(x + k) + λs·softplus(0)) / (Σ w + λs)).
Overall. Team Performance: mean of s over all M official events (0 for missing or local-only). School Potential: softplus⁻¹(mean of softplus(q)) over M events (q = 0 for missing).
Display. USR = 20 / (1 + exp(−z / 2)): z = 0 → 10. Two decimals shown; sorting uses full precision. The scale is a presentation convention; values are not calibrated across divisions, views, seasons, events, or disconnected components.
Refits and history. Ratings are refit every Sunday from results completed by that date. Change explanations decompose each move exactly into new results, recency, field recalibration, and window/coverage. Pre-tournament field strength uses the last refit strictly before the start date; per-event k values shown on tournament pages are retrospective.
Evidence labels (heuristics, not confidence intervals): strong = 3+ appearances and neff ≥ 2.5; moderate = 2+ appearances; limited = 1; local only = outside the reference component. neff = (Σw)²/Σw².
Data sources and coverage limits: Data coverage.