|Paul (Bristol) - Monday 02-26-07 12:25|
|I know that this topic has been at least partially discussed before (Tim and Phil, buckets of ice water at the ready), but I'm not sure how it was resolved, so thought I'd raise it here.|
As I understand it, there are a number of anomalies in calculation of T11 and T17, and in the squad average age calculation - basically that neither T11 nor T17 make any special calculatin re the necessity to have a GK, some rule for GK's in T17 (e.g. 2 GKs), and that the 'Average Age' figure in the stats shows an average through the whole squad, rather than, say, just T17. So 2 essentially very similar squads can appear to have very different average ages simply because one manager hasn't retired some unused age 7 players yet.
I don't think that there'd be much disagreement with some attempt to have T11 better represent 'strongest possible team', T17 better represent 'average team strength', and 'Average Age' to represent 'Average Age of T17'. My assumption would be that nothing has every been implemented to change the current formulae because at least the current situation is misleading in clear ways, whereas there's a fair amount of devil in the detail of trying to change it.
For instance, it's simple enough to say that T11 calcs should include one (and only one) GK. But even here, there's no rule that says a squad must have a GK, so some provision would have to be made for calculating this in that case - presumably something akin to the calcs done if GK needs replacing with an outfield player in game?
T17 has a similar issue.
Then I guess there are also questions around the fact that the strongest T11 may not necessarily be the higest 11 SL players (including GK). It may be that a squad has 4 high SL wingers, or some odd but not illegal combination. Then again, squad OTF may impact what players should be included in real world T11.
The Age calculation seems to me to be more straightforward, but dependent on sorting out what T11 and T17 mean. An average age of T17 seems to me to be a much more meaningful measure of, say, how much a squad will be weakened by ageing than the current calculation.
Despite all the above, I would've thought it would be possible to come up with a still relatively simple calculation that will never be perfect, but would still give a much better indication of top and average strength than currently.
For instance, T11 would be:
T11=0 if >= 1 GK, T11 = T11 + highest GK SL T11 = T11 + highest 10 non-GK SL For each WG > 2 in highest non-GK SL Swap WGs SL in T11 for next highest non-GK and non-WG SL
|Ian (Kendal) - Tuesday 02-27-07 3:11|
|This is another of those things I've been thinking about for a while but haven't yet got round to posting about, so thanks Paul for saving me the effort :-)
I'd been wondering if solving the age thing would be as simple as adding two extra columns on the stats page for T11 average age and T17 average age? That is something I'd like to see.
When it comes to how the numbers are initially calculated I'm pretty sure that the T11 calculation uses a maximum of 1 GK and am guessing (but not 100% sure) that the T17 calculation uses 2 GKs, no more and no less.
Adding complexity to the T11 calculation sounds like a complicated job to me and I doubt we could do it effectively. As well as WG <= 2 we'd need to make sure:
SW was <= 1
DF >=2 and <=5
MF >=2 and <=5
FW >= 1
FW + WG <= 4
The situation of having too many wingers wouldn't be that hard to code for as it would just be a case of reducing the amount of WG and taking the next highest SL player. However, say there were no FWs in the original group of players then one of them would have to be removed to make room, with the program then having to check the lineup isn't going to then be illegal in other areas. It wouldn't be impossible that's for sure, but at first glance probably a lot of hassle for Al to get working :-)
|Graham (Barcelona) - Tuesday 02-27-07 6:48|
I was thinking about this the other day strangely enough....
For me the simplest way to calculate the T11 has to be to simply take an ordered set of players and pick the highest SL players in a row highest first that dont break the selection rules.
I was thinking an algorithm something like this (apologies for going all "codey" for those amongst you who dont work in software):-
// Sort the players in SL order.... sort(PlayerList) foreach PlayerRecord in PlayerList do case PlayerRecord.posn in GK) if GK_T11_count < 1 T11_total += PlayerRecord.skillLevel T11_count += 1 GK_T11_count += 1 fi ;; SW) if SW_T11_count < 1 T11_total += PlayerRecord.skillLevel T11_count += 1 SW_T11_count += 1 fi ;; DF) if DF_T11_count < 5 T11_total += PlayerRecord.skillLevel T11_count += 1 DF_T11_count += 1 fi ;; /* And similarly for the rest of the positions */ esac if T11_count == 11 break out of foreach loop fi done
I'm sure something similar could be created for T17, though that does have extra difficulty in how do you allocate the extra six positions across the team? I'd suggest but realise that there will be a gajillion views that we'd need that to be 1GK, 1DF, 1MF, 1FW and 2 from any position.
I could probably put together some code to do that too if anyone was even slightly interested.
|Graham (Barcelona) - Tuesday 02-27-07 6:57|
I think if I've done my sums right that would give me a T11 of 19.5 and a T17 of 16.2
|Paul (Bristol) - Tuesday 02-27-07 17:46|
|Looks like a reasonable start (much better than mine), except this pseudo code doesn't seem to require minimum numbers for any given position (for instance, if there's no GK in the ranked T11). Simplest way is probably to rank the T11 as per the above, then replace with minimum numbers as necessary?|
|Rob (Boston) - Friday 03-02-07 12:13|
|The only issue with Graham's suggested code is that it does not account for MPPs. |
I have something on the PSFA website that calculates the T11 amongst an entire division for each session based on the session rating. My code does account for MPPs. Basically, it does something very similar to what Graham has, except it creates 2 sorted arrays of players. The first is all the SPPs, the second is all the MPPs. I make a pass through each array. Starting with the SPP array, I come up with a T11, based on the session rating, that would comply with a valid lineup. Once that is complete, I then turn to the MPP array and make a pass through to see if any of the MPPs should replace any SPPs. I believe I take each MPP and compare him to the lowest rated player for each of the valid positions (ie, if looking at a DM, I compare to the lowest rated DF & MF).
I don't have access to the code at the moment (it's all on my old laptop, which I can't get at the data right now). But, as soon as I am able to get at the data, I'll locate the code that I use for PSFA and paste it here to see if we can adapt it to use with MSWL. The first trick will be converting my ASP code to Java.