An Attempt at Goals Above Replacement - Using Attribute Testing

by AlexH, Apr 11, 2025

So I tried a thing.  It may be working.  In an attempt to construct a roster optimized to the attribute testing results, I did the following (please note, I’ll be using terms like “per player” or “per match” or “per year” - these are more terms of convenience than a literal expectation, more on that later):

1) Took the Goal Diff for each attribute (positive and negative) and divided it by 12 to get Goal Diff per point of attribute
- 12 comes from the difference between the “8” and the “20” used in the testing itself. 
- Acceleration had a Positive or Offensive Goal Diff of 49 going from 8 to 12, so each “point” is worth 4.08
2) Divided that by 380 (10 players, 38 matches) to arrive at per point, per match, per player. 
- Result is a number (for acceleration and offensive positions, the number was .0107).

I decided to use this number to compare players based on attributes as another “weighting” exercise.  While it allows one to compare two players, after experimentation, it was easier for me to consume and compare when against an “average” - I decided to use a player with “12” as that average player. 

So now I can compare the aggregate player attributes for (only) those attributes with clear, demonstrable impact in the attribute testing simulations (acceleration, pace, dribbling, anticipation, Jumping Reach, etc.) and create something closer to baseballs “Wins Above Replacement” using a player with all 12s in the attributes that matter. 

For any one player explaining in terms of a spreadsheet -

The player is a row, the attributes are columns. 

The cells at the intersection are the player’s attribute # from FM24. 

There is another column that is a sum of each attribute multiplied against the attribute contribute (per point, per match, per player) in #2 above - I call this # Goals per Match (or Goals Prevented per Match for defense).

I multiply that # by 38 to get the aggregate Goals per Season.

I then subtract Goals Per Season for the player from the Goals Per Season for an “all 12” player to get my “Goals Above Replacement” (GAR) for Attacking Midfielders and Attackers/Strikers - or goals prevented (GPAR) for DL/DR/DC.  I took the a similar approach for GK.

For DM - I compiled both the DMs GAR and their GPAR multiplied by -1 to create an aggregate positive number of Goal Contributions Above Replacement (a goal saved is a goal earned).


Ya Boi Eren Dinkci, in my save at age 25, is 3.4 Goals per year greater than a player with all 12s.  Even with the haircut.

My man Phil Neumann, in my save at age 30, is 03.75 Goals Prevented per year greater than a player with all 12s. 

Bradley Ibrahim as a 23 year old DM in my save is about 5.2 GCAR.

Some observations -

1) These numbers don’t include the impact of the formation (obviously).  I’ve been using a meta 424 in the 3 saves I’ve been experimenting with this effort - it would be interesting to see what an “all 12s” 424 team produces and somehow compensate for that (not sure how).

2) I combined this in my XLS (I play on iPad so I my experience is console-ish) against my old ykykyk weights - there are differences in quality (Lucas Bretelle as a DM, for example, tends to have high ykykykyk based weights in my saves - surprised at how “meh” he scored in GCAR. 

3) Totally helps financially.  I was comparing a player named Connor Bradley for DR against one named Pierre Nadjombe.  Similar scores, but the cost per GPAR was crazy in favor of Nadjombe.  Even though Connor does seem to have better overall attribute numbers - many of them just don’t matter.

4) I don’t believe at all that if Dango Ouattara is a 27 goal per 38 matches player.  I’m sure in some distribution of outcomes, he could be - but that number is useful because I can peg it against an all 12 (23.3 per 38).  The labels I use and numbers shouldn’t be thought of as literal expectations.

5) In terms of lineup construction, it really helps to compare lineup A vs. lineup B vs. lineup C (etc.) when planning / scheduling tournaments vs. league play and creating depth.


6) Similar roster construction benefits and lineup comparison benefits when players could be multiple roles.  Both Dinkci (AMR/STC) and Neumann (DR/DC) mentioned above qualify at different positions and have (albeit subtly) different GAR/GPAR scores for the positions.  But over 38 matches, I’d like to believe that .3 GAR would be a difference that justifies Dinkci at AMR vs. STC.

Anyhow, happy to share more if anyone cares.  It’s a fun hobby.

0

can you include a spreadsheet?

1

AlexH said: So I tried a thing.  It may be working.  In an attempt to construct a roster optimized to the attribute testing results, I did the following (please note, I’ll be using terms like “per player” or “per match” or “per year” - these are more terms of convenience than a literal expectation, more on that later):

1) Took the Goal Diff for each attribute (positive and negative) and divided it by 12 to get Goal Diff per point of attribute
- 12 comes from the difference between the “8” and the “20” used in the testing itself. 
- Acceleration had a Positive or Offensive Goal Diff of 49 going from 8 to 12, so each “point” is worth 4.08
2) Divided that by 380 (10 players, 38 matches) to arrive at per point, per match, per player. 
- Result is a number (for acceleration and offensive positions, the number was .0107).

I decided to use this number to compare players based on attributes as another “weighting” exercise.  While it allows one to compare two players, after experimentation, it was easier for me to consume and compare when against an “average” - I decided to use a player with “12” as that average player. 

So now I can compare the aggregate player attributes for (only) those attributes with clear, demonstrable impact in the attribute testing simulations (acceleration, pace, dribbling, anticipation, Jumping Reach, etc.) and create something closer to baseballs “Wins Above Replacement” using a player with all 12s in the attributes that matter. 

For any one player explaining in terms of a spreadsheet -

The player is a row, the attributes are columns. 

The cells at the intersection are the player’s attribute # from FM24. 

There is another column that is a sum of each attribute multiplied against the attribute contribute (per point, per match, per player) in #2 above - I call this # Goals per Match (or Goals Prevented per Match for defense).

I multiply that # by 38 to get the aggregate Goals per Season.

I then subtract Goals Per Season for the player from the Goals Per Season for an “all 12” player to get my “Goals Above Replacement” (GAR) for Attacking Midfielders and Attackers/Strikers - or goals prevented (GPAR) for DL/DR/DC.  I took the a similar approach for GK.

For DM - I compiled both the DMs GAR and their GPAR multiplied by -1 to create an aggregate positive number of Goal Contributions Above Replacement (a goal saved is a goal earned).


Ya Boi Eren Dinkci, in my save at age 25, is 3.4 Goals per year greater than a player with all 12s.  Even with the haircut.

My man Phil Neumann, in my save at age 30, is 03.75 Goals Prevented per year greater than a player with all 12s. 

Bradley Ibrahim as a 23 year old DM in my save is about 5.2 GCAR.

Some observations -

1) These numbers don’t include the impact of the formation (obviously).  I’ve been using a meta 424 in the 3 saves I’ve been experimenting with this effort - it would be interesting to see what an “all 12s” 424 team produces and somehow compensate for that (not sure how).

2) I combined this in my XLS (I play on iPad so I my experience is console-ish) against my old ykykyk weights - there are differences in quality (Lucas Bretelle as a DM, for example, tends to have high ykykykyk based weights in my saves - surprised at how “meh” he scored in GCAR. 

3) Totally helps financially.  I was comparing a player named Connor Bradley for DR against one named Pierre Nadjombe.  Similar scores, but the cost per GPAR was crazy in favor of Nadjombe.  Even though Connor does seem to have better overall attribute numbers - many of them just don’t matter.

4) I don’t believe at all that if Dango Ouattara is a 27 goal per 38 matches player.  I’m sure in some distribution of outcomes, he could be - but that number is useful because I can peg it against an all 12 (23.3 per 38).  The labels I use and numbers shouldn’t be thought of as literal expectations.

5) In terms of lineup construction, it really helps to compare lineup A vs. lineup B vs. lineup C (etc.) when planning / scheduling tournaments vs. league play and creating depth.


6) Similar roster construction benefits and lineup comparison benefits when players could be multiple roles.  Both Dinkci (AMR/STC) and Neumann (DR/DC) mentioned above qualify at different positions and have (albeit subtly) different GAR/GPAR scores for the positions.  But over 38 matches, I’d like to believe that .3 GAR would be a difference that justifies Dinkci at AMR vs. STC.

Anyhow, happy to share more if anyone cares.  It’s a fun hobby.


What are the attributes you are using for GAR and GPAR calculations?

0

Hi,  @Fungi Bal - I can, it’s a little fugly right now because I’m experimenting.  Also, the XLS also includes my ykykyk weights and ratings because I’m still using those as a “tiebreaker” decision factor.  In other words, if I’m comparing 2 offensive players with about 2.5 GD over a player of all 12s - then I’ll look at how large the aggregate YKYKYK diff is and pick the larger YKYKYK and best $ deal for my acquisition.

@Mark - See below:

Attribute, Goal Difference per point of Attribute (negative for defense, positive for offense, DM get’s both into an aggregate as mentioned above):

GK -
Acceleration (-.022),
Agility (-.018)
Anticipation (-.0006)
Concentration (-.0006)
Positioning (-.0006)
Aerial Reach (-.0006)
Command of Area (-.0006)
Communication (-.0006)
1st Touch (-.002)
Handling (-.0006)
Kicking (-.0007)
1x1 (-.002)
Reflexes (-.022)

Defense

Acceleration / -.0105
Agility / -.0013
Balance. / -.0018
Jumping Reach / -.0018
Natural Fitness / -.0004
Pace / -.013
Stamina / -.0035
Strength / -.0011
Anticipation  / —.002
Concentration / -.0018
Determination / -.0011
Dribbling / -.0007
1st Touch / -.0004

Offense

Acceleration / .0107
Agility / .0013
Balance / .0022
Jumping Reach / .0031
Natural Fitness / .0004
Pace / .0099
Stamina / .002
Strength / .0015
Anticipation / .0033
Composure / .0004
Concentration /.0009
Decisions / .0004
Determination / .0009
Work Rate / .0013
Crossing / .0011
Dribbling / .0055
Finishing / .0018
1st Touch / .00004
Long Shots / .0015
Heading / .0011
Passing / .0009
Technique / .0004

1- Just to repeat - for Acceleration - 49 Goal Diff. 

2 - Divided by 12 to reach 4.08 (contributions per point for goals over 380 (38 matches in the simulated season* across 10 potential contributing positions - note this is the weakness with the approach IMHO - I don’t know how the goals were distributed across the team in the aggregate simulations).

3 - Divided by said 380 - .0107 per point, per player, per match.

EXAMPLE//

Balikwisha / Offense / Antwerp - creates .0654 total across all attribute.  My “rating” for him is a 1.59

The 1.59 is (.0654 * 38)-( .0612 * 38) or  24.85- 23.256

The .0654 is the sum of all GD weights for all attributes (has 15/14 pace/acc)
38 is just a random number of matches - I suppose you could use anything here, I used 38 for consistency with the sims.
.0612 is thee sum of all GD weights for all attributes = 12 (again, suppose you could use 10 if you’d like, I chose 12)

Also, I have to admit I did the multiplication by 38 for the final value only for my own eyes.  In other words, aesthetically, the 1.59 just views better than .0042 in the XLS when comparing players.

0
Create an account or log in to leave a comment