I want to calculate a weighted score in a fair way, for a soccer substitution algorithm.

There might not be a clear answer to this question, but I am looking for guidance on how to approach computing a weighted score.

Suppose the soccer match can have only 5 players from the team on the field (i.e. 5 v 5 soccer). There are 2 players on the bench.

Both players need to be substituted in, and both have already played equal time in the game.

The players have preferences where they want to play. For each of the 5 positions, they have ranked them 1 to 5. 1 being the position they want to play the most, 5 being the least.

Let Player A be one player, and Player B the other.

Player A has played 5 minutes at his 1st ranked position, and 5 minutes at his last ranked (5th) position.

Player B has played 5 minutes at his 2nd ranked position, and 5 minutes at his 3rd ranked position.

One of the on field players eligible to be substituted off, let them be Player C, is at a position ranked 1st by both Player A and Player B.

The problem to solve is who is more deserving of Player C's position?

One possibility is to sum the position rank by the time played, and use the weight to decide. For example:

Player A weight = 5 * 1 + 5 * 5 = 30

Player B weight = 5 * 2 + 5 * 3 = 25

Player A has the higher weight, so he gets Player C's position.

This seems somewhat reasonable, but I'm not sure if there are some standard ways of computing or modelling these decisions, that might help make it more fair.

  • 1
    $\begingroup$ That looks fine but that means the 1st ranked position is 2 times better than the 2nd ranked position witch is not so realistic.So i would rank them something like 1,1.5,2,2.5,3 $\endgroup$
    – Chris2018
    Jun 22, 2018 at 1:38
  • $\begingroup$ Is there any other variable available about the players? $\endgroup$ Jun 22, 2018 at 1:39
  • $\begingroup$ @SergioAndrade no, it is based on position preferences. i had considered adding player skill, but it is for a house league, so the primary focus is on equal time and opportunity at desired positions. $\endgroup$
    – user117903
    Jun 22, 2018 at 1:42
  • $\begingroup$ Oh so it's a real life question? $\endgroup$
    – Chris2018
    Jun 22, 2018 at 1:44
  • $\begingroup$ @Chris2006 Yes, and thanks for your comment, you're right i need to scale the weights. I'm coaching a soccer team and a point of frustration is its very hard to substitute players fairly. The real problem is a 11 v 11 game and I often have 5 players on the bench. $\endgroup$
    – user117903
    Jun 22, 2018 at 1:50

1 Answer 1


Your method is fine aside one aspect. The functions image and the control over it's aspects. I think it would be clearer for you and the players if you had an image as $[0,10]$, like grades we are used too.

My idea is using the logistic function:


$L$ is the curve's maximum value, so let's say 10 or 100, $x_{0}$ is exactly the curve midpoint, we can choose 5, $\alpha$ is the curve steepness, if you want more discrimination between players choose higher $\alpha$ and finally $x$ would be your system.

I would test multiple $k$ and see what works best.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .