House rules

Scoring system

The scripts generating the league tables for 1996-2007 use the following code to compute the scores:

for p in self.pow_by_letter.values():
    pscore = ((0.2 * (p.last_year - self.variant.first_year + 1)) 
        / (self.last_year - self.variant.first_year + 1))
    mul1 = ((0.7 * p.end_sc) / winning_end_sc)
    mul2 = (1 + (p.end_sc - p.start_sc)
        / (7.0 * (winning_end_sc - winning_start_sc)))
    pscore = pscore + mul1 * mul2
    p.prescore = pscore
total = 0
for p in self.pow_by_letter.values():
    total = total + p.prescore
factor = len(self.pow_by_letter) * 50.0 / total
for p in self.pow_by_letter.values():
    p.score = factor * p.prescore

This is the Python formulation of the following algorithm:
Each player is first given a prescore. A player who has been eliminated he receives a prescore of

where YE is the year the player was eliminated in and YG is the number of years that the game was played.
A player who has not been eliminated receives a prescore of

where FP, SP, FW, SW are the number of final and starting SCs of the player and the winner of the game respectively (it may be noted that this gives the winner a prescore of 1.00).
The prescores of the players are then all scaled up by a factor so that the average score in the game is 50.


A convoy is successful if there is at least one unbroken convoy for the army from its origin to its destination.

If a convoy paradox arises the convoyed army does not cut support given by a unit in the destination province to an attack on a fleet necessary for convoying the army.


Octarine: The starting units in Hung Hung and Terror Incognita are armies.

[back] Return to the DipSoc main page
Valid HTML 4.01!