Data Pipeline Architecture

Documentation

Ranking Athletes

The ranking model has one job: rate athletes from recorded Smoothcomp matches, then use those ratings to predict future winners with honest confidence.

It starts with standard ELO logic and adds jiu-jitsu-specific adjustments for submission wins, athlete experience, long inactivity, and prediction confidence when either rating is still uncertain.

How The Rating Works

Every athlete starts at 1500. After each match, the winner's rating goes up and the loser's rating goes down. Beating a higher-rated opponent moves the score more than beating a lower-rated opponent.

The rating gap is the difference between the two athletes' scores. The selected model uses scale = 150, which turns a rating gap into an expected win-confidence range. For example, if your rating is about 26 points higher than your opponent's, the model expects your win probability to land in the 55-60% range.

Win confidence from rating difference at selected scale
Difference in athlete ratingsEstimated win confidence
0 to +1350-55%
+13 to +2655-60%
+26 to +4060-65%
+40 to +5565-70%
+55 to +7270-75%
+72 to +9075-80%
+90 to +14380-90%
+143 or higher90%+

What Baseline ELO Missed

Baseline ELO was already useful. It picked winners well, but the round 5 test set shows that it was under-confident: favorites won 70.34% of evaluated matches while baseline average confidence was only 68.20%. The final model picked favorites at 71.15% and averaged 71.82% confidence.

The experiments used 1,945,611 completed matches. Older matches built rating history, 2023 matches selected parameters, and 2024+ matches tested the final formula on later data. The model never used a future match to predict an earlier one.

Accuracy is how often the model's favorite won. Average confidence is how strongly it believed in those favorites. Calibration error checks whether that confidence was honest. Log loss is the main selection score because it rewards confident correct predictions and punishes confident wrong ones.

Differences between percentages are shown as percentage points. The final model changed average confidence by +3.62 percentage points and calibration error by -1.46 percentage points versus baseline ELO.

Final model compared with baseline ELO
MetricWhat it capturesBaseline ELOFinal modelChange
Test accuracyhow often the favorite actually won70.34%71.15%+0.81 percentage points
Test log lossrewards being confidently right and punishes being confidently wrong0.571570.55972-0.01185
Test average confidencehow strongly the model believed in its favorites68.20%71.82%+3.62 percentage points
Test calibration errorhow far predicted confidence was from actual outcomes2.14 percentage points0.68 percentage points-1.46 percentage points

Which Changes Helped

Round 5 reran the article examples on the same train, validation, and test windows. That makes the comparisons apples to apples: each row changes one part of the model while keeping the rest of the experiment setup comparable.

Single adjustment experiment results
ModelLog lossAccuracyConfidence bias
Scale only: baseline ELO at scale 1500.5715770.34%-2.14 underconfident
Submission multiplier only0.5642270.88%-0.09 roughly neutral
Experience K only0.5680670.45%-1.22 underconfident
Inactivity trust loss only0.5700370.48%-1.87 underconfident
Experience plus inactivity trust updates0.5663570.63%-1.01 underconfident
All update adjustments, no prediction-trust scale0.5602271.19%+1.18 overconfident
Final model0.5597271.15%+0.67 overconfident

Scale: How Much Confidence A Gap Creates

Scale decides how quickly rating gaps become strong predictions. A lower scale makes the same gap more confident. A higher scale makes the model more cautious. Round 5 selected scale = 150 for the final article formula.

Scale experiment results
ScaleLog lossAccuracyConfidence bias
1000.5647771.40%+4.15 overconfident
1250.5599971.29%+2.16 overconfident
1500.5597271.15%+0.67 overconfident
1750.5613671.00%-0.52 underconfident
2000.5638570.85%-1.49 underconfident

Submissions: Stronger Match Evidence

A submission win moves ratings more than a decision win. The selected multiplier is 1.6. That does not mean a submission is literally that much better than a decision; it means the result teaches the model more.

The round 5 submission sweep compares each multiplier against the same final-model setup. Higher multipliers kept accuracy similar, but they pushed confidence higher and worsened calibration.

Submission multiplier experiment results
MultiplierLog lossAccuracyConfidence bias
10.5669270.57%-1.46 underconfident
1.30.5615970.99%-0.49 underconfident
1.60.5597271.15%+0.67 overconfident
1.90.5604271.20%+1.83 overconfident
2.20.5631771.17%+2.98 overconfident

Trust Rating: How Much To Believe The Score

Each athlete also has a trust_rating. New athletes start with the fastest-moving rating. As match history grows, K falls and trust rises.

Experience trust uses a diminishing-return curve. With 10 prior matches, the athlete reaches the selected midpoint of the trust curve.

Trust rating by prior matches
Prior matchestrust_ratingTrust labelMeaning
00.0Provisionalbrand-new rating
510.7Developingsome match evidence
1016.0Establishedhalfway to maximum trust
2021.3Establisheduseful match history
4025.6Reliablestable rating
10029.1Very reliabledeep active history

1 Technical note: the underlying ELO update value still uses K. The exported article source defines the trust table from the same K/trust formula used for the article examples.

Experience And Inactivity Tuning

The selected experience curve uses a 10-match half-life. Inactivity adds temporary uncertainty after long gaps, then lets trust recover as the athlete records more matches.

Experience half-life experiment results
Half-lifeLog lossAccuracyConfidence bias
50.5600571.08%+0.15 overconfident
100.5597271.15%+0.67 overconfident
200.5599371.20%+1.12 overconfident
400.5605671.22%+1.49 overconfident
Inactivity experiment results
ModelLog lossAccuracyConfidence bias
No inactivity trust loss0.5612571.03%+0.59 overconfident
Lower inactivity trust loss0.5602571.10%+0.62 overconfident
Selected inactivity trust loss0.5597271.15%+0.67 overconfident
Higher inactivity trust loss0.5593571.20%+0.79 overconfident
Slower trust recovery0.5596771.17%+0.68 overconfident

Trust Also Changes Prediction Confidence

Trust is not just for rating updates. It also affects prediction confidence. The selected prediction adjustment is Max K, impact 0.25. If either rating is uncertain, the prediction is softened.

The selected prediction-trust setting had the best validation log loss in this sweep. Some alternatives were slightly better on one test metric, but they were not the validation-selected setting.

Prediction trust adjustment experiment results
ModelValidation log lossTest log lossAccuracyConfidenceCalibration error
No prediction-trust scale0.574370.5602271.19%72.36%1.18 percentage points
Average K, impact 0.250.574080.5597871.18%72.10%0.91 percentage points
Average K, impact 0.500.574300.5598971.17%71.89%0.76 percentage points
Max K, impact 0.250.574010.5597271.15%71.82%0.68 percentage points
Max K, impact 0.500.574550.5602071.12%71.37%0.46 percentage points

Final Calibration

A confident prediction should mean what it says. If the model says an athlete is a 75% favorite, similar favorites should win about three out of four times. The final model is close across the test buckets, with only mild optimism in the highest-confidence buckets.

Final model test calibration bins
Prediction bucketAverage predictionActual favorite win rateNote
50-55%52.53%52.53%almost exact
55-60%57.50%57.01%low by 0.5 percentage points
60-65%62.50%61.79%low by 0.7 percentage points
65-70%67.43%66.90%low by 0.5 percentage points
70-75%72.55%72.61%almost exact
75-80%77.48%76.46%low by 1.0 percentage points
80-90%84.82%83.69%low by 1.1 percentage points
90-100%94.28%92.97%low by 1.3 percentage points

The result is still an estimate, not a perfect skill measurement. It ranks athletes from recorded matches and attaches a prediction confidence that is much closer to what actually happened.

Article data source: s3://smoothcomp-data/Summary-Pages/elo_article_sourcefile/elo_article_data.json. Source file generated June 29, 2026.