At HeavyTopspin, I frequently post references to “my rankings” which power my tournament projections. (For instance, 2012 French Open men and women.) My system is unofficially called “JRank”–in other words, it needs a new name. The rankings it generates are superior to the ATP (and presumably WTA) rankings in the sense that they better predict the outcome of tour- and challenger-level matches.

The algorithm is complex but the ideas behind it are not. The fundamental difference between JRank and the ATP system is how it values individual matches.

The ATP system awards points based on tournament and round. (A first round win at Wimbledon is worth more than a first round win at Halle; a third round win at Roland Garros is worth more than a second round win.) JRank, by contrast, awards points based on opponent and recency. In my system, a win against Rafael Nadal is worth much more than a defeat of Igor Kunitsyn, even if both take place in the same round at the same tournament. And a defeat of Kunitsyn is worth more if it took place last week than if it took place eight months ago. A recent win tells you more about a player’s current ability level than an older one does.

The advantage of giving recent matches more weight is that it allows us to take into account matches more than one year old, without the veteran-favoring disadvantages of Nadal’s two-year plan. JRank uses all matches from the last two years, but a match one year ago is worth only half as much as a match last week, while a match two years ago is worth only a quarter as much. That way, we get the benefits of that much more data, but without unduly favoring vets. There is the added benefit that JRank is “smoother” from week to week–none of the bizarre effects of a tournament “falling off” from last year–as if a player’s results 51 weeks ago are 100% more relevant than his results 54 weeks ago!

JRank’s value is even greater because it generates separate rankings for clay and hard surfaces. Everyone knows that surface matters, but the ATP ranking system ignores it completely. If you want to know who should be favored at the French, it seems silly to weight Bercy as heavily as Monte Carlo. JRank gives more weight to a player’s clay record for his clay ranking, and so on. Even further, beating a clay court specialist is worth more on clay than it is on a hard court.

**Creating projections**

Armed with rankings, it’s a few small steps to generating a forecast for any tournament. For each match, the projection is based almost entirely on the rankings of the two players. (The formula is a slightly more complicated version of A divided by A+B, where A is one player’s ranking point and B is the other’s. It works–approximately–with ATP ranking points as well.)

There are a few tweaks, though. First, my research has indicated that qualifiers, lucky losers, and wild cards all perform slightly below expectations. It is unclear why, though with qualifiers I suspect it is due to fatigue–while their opponents rested, they played two or three tough matches to qualify.

Second, I’ve established that there is a slight home court advantage. When surface is accounted for, home court advantage is minimal, but it is still there–the “home” player performs about 2% better than expected. Perhaps it’s referee bias, home cooking, fan support, or some combination of the above.

A frequent suggestion is to incorporate head-to-head records into match projections. It’s a tempting idea–so tempting that I’ve tried it. However, it doesn’t seem to make much difference, at least for any broad cross-section of matches. (Perhaps when a pair of players have, say, 10 or more head-to-head matches in the books, stronger patterns emerge.) For the most part, it seems that if a ranking system represents a good approximation of each player’s ability level, head-to-head results are superfluous.

There may be other variables worth looking at, including the importance of the tournament, the player’s fatigue level or recent injury history, or each player’s experience at a particular event. For now, those are among the influences I haven’t even tested.

I would like to suggest an improvement to the JRanking System.

It is the use of a physical weakness of a player in time before a match.

It can be measured by the Total Time of Play (TTP) in any match of a tournament and the Time of Rest after a tournament.

During a tournament TTP accumulates up to a final match of a player. After a tournament there is usually some time for some rest. Then a physical weakness of a player is less then before. After some time it can drop to none ie a player is completely fresh. This is another parameter called the Time of Rest (TR). This process repeats in cycles like player’s plays in tournaments.

The time of play in some way is correlated with a physical weakness eg 5 hours of a match gives to a plaer more physical weakness then 1 hour. All of us very often observed that effect upon players during very last matches of any tournament.

The application of my idea is as follows:

1> let’s measure the time of play ie TTP for all players in JRank; the start is in the player’s first match of a tournament; the stop is in the player’s final match of a tournament;

2> let’s measure the time of player’s rest between tournaments ie TR;

3> let’s convert player’s times of TTP and TR to points that can be relevant to JRank points by some functions eg:

Weakness Points = constant_1 * TTP (during a tournament);

Weakness Points = constant_2 / TR (after a tournament);

4> let’s reduce player’s points calculated without this idea by points representing his physical weakness in a given moment of time;

5> let’s express the result finally in JRank points for a player;

I hope you can understand my words. Enjoy watching tournament finals !

I think Marek’s idea would be applicable more in a real-time forecast situation rather than in the rankings. If a qualifier, despite playing two or three tough matches with hardly any rest in-between manages to scrape through, say to the third round, deducting ranking points would not make sense. While calculating rankings, only results matter.

very interesting work! I was trying to build something similar using a similar approach, but mine took in consideration also an “unconventional” factor, that is to say odds set by the bookie. I noticed that if player x, atp ranked 34, meets for instance player Y ranked 100, and for instance bookies set 1.50 for him (it depends, this is only an example). we can dig on past results and find out that if this player X won with similar players Y with similar odd (for example 1.55 when facing a 98 ranked), a win of player X is very probabily. This is true also the opposite. I mean if the two players met once and these were the odds (for instance):

player x – 1.50

player y – 2.50

and y won

and today we have

player x – 2.20

player y – 1.80

player x is going to win.

did you ever try to see this?