Models

openskill ships five rating models. They all live in the openskill/models subpath.

import {
  plackettLuce,
  bradleyTerryFull,
  bradleyTerryPart,
  thurstoneMostellerFull,
  thurstoneMostellerPart,
} from 'openskill/models'

Pass one to rate via the model option:

import { rate } from 'openskill'
import { bradleyTerryFull } from 'openskill/models'

const [[a2], [b2]] = rate([[a1], [b1]], { model: bradleyTerryFull })

Plackett-Luce — default

A generalized Bradley-Terry model that scales to k ≥ 3 teams without needing a k−1 dimensional integration. Use this unless you have a reason not to.

Bradley-Terry

Logistic distribution over player skill — similar to Glicko.

Thurstone-Mosteller

Gaussian distribution over player skill — similar to TrueSkill. Accuracy is generally a touch worse than Bradley-Terry, but it can be tuned.

Choosing a model

ConcernPick
Default, fewest surprisesplackettLuce
Highest throughput, ≤ a few teamsbradleyTerryFull
Highest throughput, large kbradleyTerryPart
Drop-in TrueSkill-like behaviourthurstoneMostellerFull
TrueSkill-like behaviour with very large kthurstoneMostellerPart