Home Scoring and other IT questions

Algorithm for Calculating Master Points (Basic Club Scale)

I've been looking in the EBU Licensing and Master Points Handbook (2021), page 49, at the table for looking up the maximum value of Master Points to be awarded in various circumstances (ie Scale A , Basic Club Scale).

Whilst the Table on page 49 is good for humans to read, it is somewaht inefficient to implement in a Computer Program. I am wondering if there is a method/algorithm/calculation that gives rise to this table that lends itself to more efficient implementation by computer.

If there is can someone kindly point me at it?

Comments

  • I'm not entirely sure what you're referring to... the maximum values are based on Section 4.4 primarily which does include an algorithm.

    On that note, the handbook is very unclear on when the maximum value algorithm should be used. 4.4.3 refers to constant reductions, but EBUScore always uses the formula in 4.4.9.

    There is also an issue with minimum masterpoint awards for two-winner events. For club events, the minimum award is 10, but when the maximum number of tables is exceeded, this should be reduced to 6 with immediate effect. In the EBU BBO games, the minimum instead decreases from 10 to 9, 8, 7 or 6 depending on exact numbers, which is not at all consistent with the handbook.

    Finally, there is the issue with minimum awards for events with match won awards. The handbook states that there is a minimum total award (e.g. in a county event, drawing a 6-board match gets you 9 masterpoints but the minimum award is 12, so you get 12 if that's your only masterpoint entitlement). However, if, for example, 2 pairs share the last place award, they get 11 each. Both pairs will presumably have won a match, so the minimum award doesn't come into play. But the EBUScore algorithm awards 12 instead of 11, plus the match won awards.

  • edited April 2021

    Ah unless you were referring simply to the gaps in the table? Masterpoint awards go to the top quarter (12-17 boards), top third (18-35) and top half (36+) of the field, rounded up and excluding half tables.

  • What I am looking to understand is the principles which guided the generation of the table on page 49. It will make the implementation of the award of Master Points in a computer program much easier and robust.

    Also on a third reading of the document there is no description (that I have found) as to why, on page 25, Master Points for a 12-17 Board, 16 Table, 2 Winner event, are awarded in the ratio 40, 30, 20, 10. Why not some other distribution like 40, 15, 10, 6, or any other distribution? Also I could not find a definition of what the Master Points award to a particular event should sum to. In the above example why do they sum to 100?

  • It is not explicitly stated but I think it's pretty transparent what's going on? 4.1.6 gives a bit of a clarification on this. I use club scale in my illustrations below.

    For 12-17 board events, the top 1/4 receive awards.

    For 1-winner events, the minimum award is 6, which goes to the last pair in the top 1/4. The pair above them gets another 6, the pair above gets another 6 and so on up to the winner in a standard arithmetic sequence.

    For 2-winner events, the principle is exactly the same with a minimum award of 10.

  • If your question is why the masterpoints are distributed in this fashion (and have been for decades), then that's more up for debate of course. The American system gives a far larger proportion of masterpoints to the winners for instance.

    In the age of electronic scoring, I personally feel that there is something to be said for score-based masterpoint awards. If you finish runners-up, should you get the same award regardless of whether you're 0.01% off the lead or 5%? The current system is simple and works, but not really a great representation of performance. Similarly, the number of tables dictates the awards on offer but increasing it proportionally with tables is not a mathematically correct way of rewarding performance (having the top award follow the formula in 4.4.9 throughout might make more sense). I suspect the reason for the current system is that the EBU wants to encourage higher attendances as much as possible, both for the good of the game of course but there is a UMS revenue incentive too.

    Stratification is another thing - I like the idea, but clubs, led by the stronger players in general, will never implement it because it disadvantages them.

    The long-standing issue with masterpoints is that there's nothing to play for. It often takes well over a year to move up the ranks, and the reward for doing so is moving up into a higher stratification (which ultimately makes it harder to win prizes in events!). A combined NGS, masterpoint system is the way forward, but there's not really an incentive to introduce something like that. Similarly, more emphasis on monthly ladders would keep it more interesting.

  • @TonyHedge said:
    What I am looking to understand is the principles which guided the generation of the table on page 49. It will make the implementation of the award of Master Points in a computer program much easier and robust.

    Also on a third reading of the document there is no description (that I have found) as to why, on page 25, Master Points for a 12-17 Board, 16 Table, 2 Winner event, are awarded in the ratio 40, 30, 20, 10. Why not some other distribution like 40, 15, 10, 6, or any other distribution? Also I could not find a definition of what the Master Points award to a particular event should sum to. In the above example why do they sum to 100?

    4.1 USE OF THE BASIC SCALES
    (For basic events and ‘all-play-through’ events of 36+ boards).
    4.1.1 Use Scale A for Club events, Scale B for District events, Scale C for County events, Scale D for
    Regional events, Scale E for National events or Scale F for Individual events.
    4.1.2 Identify what fraction of the field is due to receive an award. For a basic event of 18-35 boards,
    this will always be the top one-third; for short events of 12-17 boards only, this will always be
    the top one-quarter; for ‘all-play-through’ events, of 36+ boards, this will always be the top half.
    4.1.3 Identify the number of full tables in the competition, and look this figure up in the appropriate
    column (i.e. in the top third, top quarter or top half column as appropriate). For example, for 9
    ½ tables, read the awards appropriate to 9 tables.
    4.1.4 Identify the movement type. For a pairs event, this may be a ‘single-winner’ movement (i.e. a
    Howell or a Scrambled Mitchell) or a ‘two-winner’ movement (i.e. Mitchell-type movement, with
    a NS and EW winner).
    The scale for a teams event is the same as for a two-winner pairs event.
    A special scale (‘F’) is given for a single-winner individual event. The teams scale applies,
    however, in the case of a four-winner individual (i.e. a N, S, E & W winner, where all players have
    played in a constant compass direction throughout).
    4.1.5 Identify the winning award in the appropriate column and row. This figure is obtained by reading
    across from the number of tables column into the appropriate award column (single-winner
    pairs or two-winner pairs).
    If, on reading across, you fall on a blank space, then take the next highest figure. Awards for
    lower places are obtained by reading down from this winning award. When using the twowinner pairs scale, the awards quoted are those applicable to each of the two directions.
    4.1.6 Example: taking a Club pairs game of 16 tables, the awards are:
    (a) For 12 – 17 boards,
    Mitchell type: 40, 30, 20, 10 in each direction (4 awards)
    Howell type: 48, 42, 36, 30 etc to 12, 6 overall (8 awards)
    (b) For 18 – 35 boards,
    Mitchell type: 60, 50, 40 etc to 10 in each direction (6 awards)
    Howell type: 66, 60, 54, 48 etc to 12, 6 overall (11 awards)
    (c) For 36+ boards,
    Mitchell type: 80, 70, 60 etc to 10 in each direction (8 awards)
    Howell type: 96, 90, 84, 78 etc to 12, 6 overall (16 awards)
    Scale A refers

  • A basic algorithm:
    From number of board determine the proportion to receive awards: 1/4, 1/3, 1/2; and the 'theoretical maximum'
    From the number of winners determine the unit award: 6 or 10

    In each ranking list award the unit award to bottom place receiving award, increase in 'unit' steps to the maximum award.
    OR
    If the maximum award is above the 'theoretical maximum', calculate a new maximum: theoretical maximum x sqrt(t/t_max); and awards for all places are linearly from maximum down.

    In either case, tied places share the master points.

    Any awards less than 6 become 6; others are rounded to remove whole numbers of local points.

  • Thank you Robin, the document was missing the following items of information:-
    (a) that the unit award is 6 or 10 Master Points, depending on the number of winners and
    (b) that the awards are increased in these unit steps from minimum to maximum

    Sorry for being pedantic; this could have been deduced from the document, but it was never explicitly stated, and a deduction can always be wrong. Its much better to get it from the horses mouth, so to speak (and better to have it stated explicitly in the document).

  • On the theme of being pedantic, I will draw your attention to e.g. https://www.bridgewebs.com/cgi-bin/bwoo/bw.cgi?pid=display_rank&event=20210419_25&club=eburesults, where the minimum award is 8. Here it is 7: https://www.bridgewebs.com/cgi-bin/bwoo/bw.cgi?pid=display_rank&event=20210412_25&club=eburesults.

    In my view, based on the handbook, these should both be 6. If not, they should at the very least both be 10 to retain some consistency. At the moment, it just seems like a strange EBUScore algorithm which no-one noticed before online bridge (as Scale A events with that many tables were previously very uncommon).

  • @495670 said:
    On the theme of being pedantic, I will draw your attention to e.g. https://www.bridgewebs.com/cgi-bin/bwoo/bw.cgi?pid=display_rank&event=20210419_25&club=eburesults, where the minimum award is 8. Here it is 7: https://www.bridgewebs.com/cgi-bin/bwoo/bw.cgi?pid=display_rank&event=20210412_25&club=eburesults.

    In my view, based on the handbook, these should both be 6. If not, they should at the very least both be 10 to retain some consistency. At the moment, it just seems like a strange EBUScore algorithm which no-one noticed before online bridge (as Scale A events with that many tables were previously very uncommon).

    We'll look into it, but what does EBUScore have to do with it?

  • edited April 2021

    For that event (55 tables, 12 board, 2 winners), the theoretical maximum is 75 at 30 tables, so the maximum award is 75*sqrt(55/30) = 101.55, the number of awards is 55/4=13.75 => 14 in each direction, and the award to 14th place is 101.55/14 = 7.25. The minimum award for non-stratified club scale is 6 (regardless of number of winners), so all awards are above the minimum and are rounded up to the next whole number: 1st gets 102, 14th gets 8.

    My earlier statement of an algorithm should have said 'rounded up' not 'rounded'. See handbook 3.4.1 :

    ... local awards should be rounded up to a whole number. Such rounding-up should only be performed at the end of a calculation; any fractions which may arise at intermediate stages of a calculation should be retained. Note that 'rounding up' involves resolving any fraction to the benefit of the player.

  • @Robin_BarkerTD said:
    For that event (55 tables, 12 board, 2 winners), the theoretical maximum is 75 at 30 tables, so the maximum award is 75*sqrt(55/30) = 101.55, the number of awards is 55/4=13.75 => 14 in each direction, and the award to 14th place is 101.55/14 = 7.25. The minimum award for non-stratified club scale is 6 (regardless of number of winners), so all awards are above the minimum and are rounded up to the next whole number: 1st gets 102, 14th gets 8.

    My earlier statement of an algorithm should have said 'rounded up' not 'rounded'. See handbook 3.4.1 :

    ... local awards should be rounded up to a whole number. Such rounding-up should only be performed at the end of a calculation; any fractions which may arise at intermediate stages of a calculation should be retained. Note that 'rounding up' involves resolving any fraction to the benefit of the player.

    Ah I see, that's very helpful. Thanks Robin.

  • edited April 2021

    @495670 said:
    On the theme of being pedantic, I will draw your attention to e.g. https://www.bridgewebs.com/cgi-bin/bwoo/bw.cgi?pid=display_rank&event=20210419_25&club=eburesults, where the minimum award is 8. Here it is 7: https://www.bridgewebs.com/cgi-bin/bwoo/bw.cgi?pid=display_rank&event=20210412_25&club=eburesults.

    In my view, based on the handbook, these should both be 6. If not, they should at the very least both be 10 to retain some consistency. At the moment, it just seems like a strange EBUScore algorithm which no-one noticed before online bridge (as Scale A events with that many tables were previously very uncommon).

    I've fixed it in the extractor used for these events- thanks for pointing it out. {EDIT - I've been advised to look into this further and I shall}.

  • @gordonrainsford said:
    I've fixed it in the extractor used for these events- thanks for pointing it out. {EDIT - I've been advised to look into this further and I shall}.

    Having gone through it in more detail with Robin, I'm happy that what we were doing was correct for the reason he gives above.

  • Perhaps code up the algorithm for calculating the Master Points and publish it on the web site?
    You would then have one definitive 'source of truth' that would be easy for all scorers to reference.
    Like Tony Hedge, I found the table he describes in the documentation confusing.

  • If someone provides a tight specification I am willing to code it up (in C# and/or VB) and submit it, via this discussion, for publication wherever 'the authorities' consider it most appropriate. (In my view, would be the EBU's EBU Licensing and Master Points Handbook).

  • Could we have it in a language that does not require a Microsoft platform?
    For portability, something like Python, Ruby or dare I say Perl.
    If you insist on a compiled language then perhaps good old C, or Rust?
    Or javascript and host it on the Ebu website?

  • I've never used Python, Ruby or Perl, but Javascipt is an option.

Sign In or Register to comment.