Author Topic: Ranking system  (Read 2810 times)

Action Dan

  • Newbie
  • *
  • Posts: 5
    • View Profile
Ranking system
« on: September 26, 2007, 06:53:56 AM »
I'm running a small poker club in Stockholm, Sweden. I have been using TD for several years now for my tournaments, and it does a really great job. I have also been using Excel for keeping track of my players ranking point, and it would be nice to get rid of it.

I have a pretty complex ranking system, which not only ranks my players overall, but also in each different game (Hold'em, Omaha, Stud, etc.), in all around 10 different categories. In addition to this, each ranking list divided into three different time spans: all-time (all tournaments since we started in 1998, around 300 tournaments), current year, and a "rolling" ranking, stretching 18 months back.

Is there any way of doing this in TD?

My ranking points formula looks like this:

SQR(P/N)*(N/R+1)
P=tournament prize pool
N=no of players
R=rank

To get the total ranking points for each player, I then use another formula:

1/SQR(T)*S
T=total number of tournaments for the player
S=the player's total ranking points (from above)

My next question then: Is it possible to use a formula like this in TD?

What I'm looking for is a way to let my players total points be affected by the number of tournaments they play. Simply using a total points method gives too much advantage to players who play many tourneys, and using an average points method gives sporadical players with good results an edge. Using a "best x of y tournaments" method tends to flatten the ranking too much.

Any input on this is greatly appreciated.

Corey Cooper

  • Administrator
  • Hero Member
  • *****
  • Posts: 6216
    • View Profile
Re: Ranking system
« Reply #1 on: September 26, 2007, 11:42:04 AM »
Assuming "SQR" means square root, these should work:

Tournament Score formula: sqrt(prizepool / n) * (n / r + 1)
Overall Score formula: 1 / sqrt(count(scores)) * sum(scores)

To get the 3 different time spans, you just use those formulas in 3 different Filters (assuming you have used the TD for all of your tournaments, even though that is unlikely since you've been keeping data since before the TD was written).  The Filters would simply filter for different time spans (or seasons) and use the formulas above to calculate scores.

Action Dan

  • Newbie
  • *
  • Posts: 5
    • View Profile
Re: Ranking system
« Reply #2 on: September 27, 2007, 02:37:37 AM »
Thanks. That's exactly what I'm looking for. As for the different ranking categories, I guess I could simply use different Leagues for that.

Obviously, I haven't used TD for all my tournaments. Is there any way of importing tournament data into TD? I have all the data in an Excel spreadsheet.

Corey Cooper

  • Administrator
  • Hero Member
  • *****
  • Posts: 6216
    • View Profile
Re: Ranking system
« Reply #3 on: September 30, 2007, 06:32:40 PM »
No, there isn't.  You can import players into the database, or into your tournament, but you can't import data representing a complete tournament...

Action Dan

  • Newbie
  • *
  • Posts: 5
    • View Profile
Re: Ranking system
« Reply #4 on: October 02, 2007, 08:06:23 AM »
OK, thanks anyway. Guess I have some work to do!

Blade69

  • Newbie
  • *
  • Posts: 27
    • View Profile
Re: Ranking system
« Reply #5 on: April 13, 2010, 05:17:09 AM »
Thanks for ur Point System. The problem with this r i get negative points. How can i avoid it?

Corey Cooper

  • Administrator
  • Hero Member
  • *****
  • Posts: 6216
    • View Profile
Re: Ranking system
« Reply #6 on: April 13, 2010, 11:05:21 AM »
To prevent negative points in any formula, you just need to wrap it using the "max()" function, which returns the maximum of two numbers.  For example:

max(10, 1)

returns 10.  Likewise

max(-25, 0)

returns 0.  So if your formula is

sqrt(prizepool / n) * (n / r + 1)

change it to

max(0, sqrt(prizepool / n) * (n / r + 1))

So if your formula ends up returning a positive number, the max() function will return the result of your formula.  If your formula ends up being a negative number, the max() function will return 0 (the greater of the 2 numbers).