Answer

Ranking calculation

First, all scores are normalised to 100, so it doesn't matter you play til 10 or til 15, you can receive the same amount of points.

        =   ( -1 / +1 )   *       ( 0 - 1 )      *     ( 0 - 1 )     *    ( 0 - 50 )
Ranking = win-lose-factor * diff-opponent-factor * diff-ranking-factor * diff-score-factor
		
A) win-lose-factor: winner gets +1 , loser gets -1
-----------------------------------------------------------
If you win you gain points, if you lose, you lose points.
WLF = player = winner ? +1 : -1
		
B) diff-opponent-factor ( 0 - 1 ):
-----------------------------------------------------------
If you play against the same person to often, you can get less points playing against this player.
DOF = game-count < 10 ? 1 otherwise ( 1 - min-max( 0 , opponentCount / games1 - 0.1 , 0.5 ) * 2 );

C) diff-ranking-factor: ( 0 - 1 ):
-----------------------------------------------------------
Win from higher ranked players -> more points
Win from lower ranked players -> less points
Lose from higher ranked players -> less points
Lose from lower ranked playerS -> more points

MAX_DIFF = 250 ( = verschil in ranking > 250 ? DRF precies 0 of precies 1)

DRF = (MAX_DIFF - max-min( -MAX_DIFF , rW - rL , +MAX_DIFF ) ) / (2 * MAX_DIFF) 
	
D) diff-score-factor:
-----------------------------------------------------------
Get more points when you wipe your but with your opponent.

DSF = max-min( 0 , abs( score1 - score2 ) , 100 );

Read more: