Towards an Elostyle rating system for BattleTech
Roger Burton West
1 Scoring games
1.1 Basic scoring formula
In a game where sides A and B fight each with the objective of destroying the other, the score for side A is:
S_{A} = B_{s}A_{s}(A_{e} + B_{s} − B_{e})
where A_{s}is side A’s total starting BV, A_{e}is A’s ending BV, and similarly for side B.
Larger games have larger score values. This is deliberate, both to encourage larger games to be played and because the larger the game the less overall effect luck is likely to have.
1.2 Damaged units
Since nobody wants to go to the trouble of calculating exact BVs for damaged units:

A destroyed unit is worth zero;

A crippled (TW p. 258) unit is worth one third of its original BV;

A unit that has lost any critical slots is worth two thirds of its original BV;

A unit that hasn’t is worth full BV.
A unit that has made it off a friendly board edge (either by fleeing during the game or by the opposing commander accepting an offer to retreat) has its BV halved.
1.3 Objectives
Objectives are rated with a BVscale number, agreed before the match starts. For example:

A must protect a fixed location: value is added to A’s starting BV, and to A’s ending BV if it survives the game.

A must guard a valuable item: value is added to A’s starting BV and to the ending BV of whichever side holds it at the end.

A and B are both searching for Star League treasure: values are added to each side’s ending BV if they’re recovered.
2 Calculating ratings
Each player starts with a rating of 1,000.
For each game, calculate the expected score based on the size of the battle and the ratings of the two players. K_{A} is the total of any objective points available only to that side and not already included in A_{S}; K_{*}is the total of objective points available to any side and not already included in A_{S}.
E_{A} = 11 + 10^{(RB − RA400)}(A_{S} + B_{S} + K_{A} + K_{*}2)
The difference between the actual score and the expected score, divided by 20 and rounded to the nearest integer, equals the change in rating.
R_{A} = R_{A} + int(S_{A} − E_{A}20 + 0.5)