WinTD 5.10a Modified Median?

EDIT: the issue is fixed in 5.10b.

(I already emailed support@estima.com) Has anyone noticed any issues with WinTD’s Modified Median calculations lately?

As a concrete example, for the tournament reported at US Chess MSA - Cross Table for 25-26 NOYC OCTOBER (Event 202510042962) the K-2 section looks like:

Ignoring most of the details, just see that the Modified Median result is below the Median result for every single player with a plus result (1-5), which should be impossible as Modified Median only drops the lowest opponent score in that case while Median drops highest and lowest…

EDIT: the issue is fixed in 5.10b.

Ulmont,

How many rounds were in the tournament? You might can check out the part of the video which explains Modified Median and Median. Are you sure you understand Median and Modified Median thoroughly? The video isn’t about WinTD though. The video can be found at:

Wow! At least it’s not a subtle one that goes unnoticed for a long time.
My first thought is that it may be assigning the dropped value(s) versus subtracting it?

The tournament was 4 rounds, as shown in the cross table, meaning that a plus score is 2.5 or greater, an even score is 2.0, and a minus score is 1.5 or less.

I’m pretty sure I understand how Modified Median works, but I’ll work through the first player here by hand. The background:

34E1. Modified Median
The Median system, also known as the Harkness system for inventor Kenneth Harkness, evaluates the strength of a player’s opposition by summing the final scores of his or her opponents and then discarding the highest and lowest of these scores.
In the Modified Median system, players who tie with even scores (an even score is equal to exactly one half of the maximum possible score), have the highest- and lowest-scoring opponents’ scores excluded. The system is modified for players with non-even scores to disregard only the least significant opponents’ scores: the lowest-scoring opponent’s score is discarded for tied players with plus scores and the highest-scoring for tied players with minus scores.
For tournaments of nine or more rounds, the top two and bottom two scores are discarded for even-score ties, the bottom two scores for plus-score ties, and the top two scores for minus-score ties.
These scores are adjusted for unplayed games, which count a half point each, regardless of whether they were byes, forfeits, or simply rounds not played after an opponent withdrew. So an opponent who won the first two games, lost the third, withdrew and did not play rounds four or five would have an adjusted score of 3 points (1+1+0+0.5+0.5 = 3). These adjusted scores are used only to calculate the opponent’s tiebreaks. The player’s own score is not changed.
If the player involved in the tie has any unplayed games, they count as opponents with adjusted scores of 0.

(This is consistent with the video you linked at 12:56-18:35).

So the first player, Peter McKinnie, has 4.0 points, which is a plus score in a 4 round tournament. They played opponents 13, 7, 4, and 2 (using the numbers from the online xtable; these are 8, 7, 4, and 2 in the screenshot).

Opponent 13 has a score of 1.5, but 1.0 of that is from a full point bye, so adjusting that down to 0.5 for the unplayed game leaves a score of 1.0 points. Opponent 13 is going to get tossed out anyway.

Opponent 7 has a score of 2.0 with all games played.

Opponent 4 has a score of 2.5, with 0.5 from a half point bye (so no adjustment needed).

Opponent 2 has a score of 3.0 with all games played.

So the Median tosses high and low, leaving 2.0 + 2.5 = 4.5.

Solkoff doesn’t toss any scores, leaving 1.0 + 2.0 + 2.5 + 3.0 = 8.5.

Modified Median should toss only the low score for a player with a plus score, resulting in 2.0 + 2.5 + 3.0 = 7.5.

Cumulative (since it’s shown) would be 1 + 2 + 3 + 4 = 10.

Cumulative of opposition would be (0 + 0 + 1 + 1.5 - 1) + (1 + 1 + 1 + 2) + (0.5 + 1.5 + 1.5 + 2.5 - 0.5) + (1 + 2 + 3 + 3) = 2 + 5 + 5.5 + 9 = 1.5 + 5 + 5.5 + 9 = 21.

All of those hand calculations match the display from WinTD above, other than for Modified Median, and again note that Modified Median should be between the Median (tossing high and low opponent scores) and Solkoff (not tossing any opponent scores) in all cases, which it isn’t here.

That’s probably what’s happening - for player 1 they’re dropping the score of player 8 in the screenshot (player 13 in the online xtable; it’s adjusted from 1.5 down to 1.0 since one point was from a full point bye), and for player 8 (13 in the online xtable) they’re dropping the score of player 1, so the 1.00 and 4.00 results track.

That also explains the big shifts in display results in the transition from 2.5+ (plus) to 2.0 (even) to 1.5- (minus) score listings.

Out of sheer bloodymindedness, I wrote a converter to transform the WinTD ptoz into a SwissSys sjson. The result is what I expected:

1 Like

Could you possibly share that script with the rest of the class? Might be very useful to have in the toolbox.

I can’t imagine it being useful to that many people, and I stress that it must have a million bugs I haven’t detected as it’s only really been tested with 2 different tournaments, it doesn’t try to convert any teams over, etc. etc. etc., but if you want to look at bad Javascript (I use it with Node) look at GitHub - ulmont/convert-WinTD-to-SwissSys.

Issue appears to be fixed in 5.10b.