I’ve had requests from a few people to show how to make the graphics I use for various aspects of my blogs. In particular, the squad age against minutes, overall minutes across the squad by position and age profile against peak age. In this blog post, I’ll take you through how to extract the data from Football Manager that you’ll need to use, and then how to generate the graphics using Microsoft Excel.
Before we go into how to extract the data, it is worth me saying that I have taken more than a little inspiration from The Athletic’s graphics that they use within some of their posts. Some are essentially an outright copy, and others have slightly tweaked on what they’ve done previously. I don’t pretend to take any credit for creativity here. I’ve simply used Excel skills that I’ve honed and developed to generate these, and I want to share this with you.
All images below should open up in a new window so you can view them more easily if you need to, which might be necessary for some of the Excel screenshots.
Graphic 1 – Squad minutes by age
Here’s the end product, showing the player’s age, the number of minutes they’ve played, but also the length of time that they have been in the squad (length of the line to the left of the player’s individual marker) and the time they have before their contract expires (length of the line to the right of the marker).
One thing that may or may not have passed your notice is that this chart shows their true age, not just 27 for Federico Chiesa for example, but his actual age in years and days.
In order to recreate this, I’ve gone back to my old Bayer Leverkusen save and holidayed for a year to create some data, as I had no saves that were into a started season. I’ve also created a View to download here on Steam. You’ll note that the players are ordered by position, this will make some of the graphics below a little easier. This will leave you with this:

You’ll then need to extract this out of the game. To do so, press Ctrl+P and print it as a Web Page. That will create an HTML file, which you can then open in Microsoft Excel, so that it will then look like the below:

This is where you need to start manipulating the data. You need to use the ‘Text to Columns’ feature that’s in the ‘Data’ tab. Before you do that, next to the DoB column, add a new column for the excess data, which is the player ages, to go into before we delete it. Use the opening bracket as the delimiter and click finished. Then delete the player ages that you’ve newly created, not the column, just the data, as you’ll need another blank column.
Go back into the game and make a note of the in-game date and type that into the blank cell next to each player. Next, create two more blank columns next to that in-game date. In the first of the two blank columns, deduct the in-game date from the player’s date of birth. This will create the number of days the player has been alive. Then, divide that number by 365 to work out the real age of the player rather than just ’31’ for Nwachukwu, for instance.

You can then delete out the player age that you have in the view – that’s just there to check you’ve not made an error with any of the previous calculations. We’re now ready to create the chart using this information, but there will be more to follow that we’ll need from the game.
Highlight all the rows, including the title, and then create a scatter graph. This should give you something like this:

The first thing I typically do now is convert the background colour to black, the text colour to white, and change the font to Verdana Pro Cond Semibold. Swap the title name out for your team’s name and then write the year of the season you’re in underneath in a slightly smaller font.
Then, select the x-axis and format this so that the minimum is set to 16 (it can be lowered if you’ve played a 15-year-old), and the maximum can be adjusted as required, but I would suggest 36, unless you have older players. You’ll then probably need to change the Units ‘major ‘Major’ to 2. Then change the Number so that you don’t have any decimal places within the format of the x-axis.
You can also adjust the y-axis if you need to, depending upon whether you have a player that played 100% of your minutes or not. If someone did play 100% of all available minutes, then you can leave it as it is. If you do need to adjust this, and you’ll need this data later anyway, then add together the minutes played by all goalkeepers. This of course assumes you didn’t have to randomly play an outfield player in goal at any point throughout the season.
This leaves my chart currently looking like this, still quite a long way away from the above graphic.

You could leave it landscape at this point, but if you do want it to be portrait, I would suggest making that change now. To do that, you’ll need to move the chart to its own tab, so right-click on the chart and select ‘Move Chart…’. Once that’s loaded, go to ‘Page Layout’ and then ‘Orientation’, selecting ‘Portrait’.
Delete out the vertical gridlines, and then select the remaining horizontal lines by right-clicking and select ‘Format Gridlines’. Change the colour of the line to white and then make it as transparent as you like. I typically opt for around 60%.
Next, right-click on one of the markers and select ‘Add data labels’. Right-click one of the newly created data labels and then ‘Format Data Labels’, ticking ‘Value From Cells’. This will create a mini pop-up window. You need to go back to the worksheet tab that the original data is in and then select all the player names. Deselect the ‘Y Value’, and then this step is also up to you, but I prefer to put the player names under their respective markers, so select ‘Below’.
Right-click on one of the markers, and then select the paint can option, which enables you to change the fill and the line. Select ‘Marker’, ‘Marker Options’, change the size of the marker to around 9. I then select a colour that is fitting to the team colours. Then you’re left with the below looking graphic, which would need the various names moving around so that it looks more aesthetic/readable. If you have players with accents on their names, you’ll also need to go back to your original data tab and adjust those within the cells.

It doesn’t stop there, though. If you want to add in the time a player has spent at the club that’s passed and the contract length still remaining for each player, you’ll need to do some research. Here, Google Search is your friend as the game typically doesn’t always give you this information, though you can often find it in the player’s History page within the Milestones option in their profile.
I’ll do one example of this to show these steps so that you get an idea of what is required.
I’ve taken Nwachukwu’s date of joining, 1/7/2036, and added that into a new column in my worksheet. Then, deduct the in-game data from that date. This will give you the number of days the player has been at the club. In Nwachukwu’s case, that’s 2,150 days. This itself, isn’t yet useful. I need to convert that into years. Therefore, create a new column again and divide the number of days they’ve been at the club by 365. Here, we arrive at 5.89 years.
Next, we need to do the same for the time remaining at club. This is where the contract expiry date becomes useful. Create two more new columns, and in the first, deduct the contract expiry date from the current in-game date. This generates 771 for Nwachukwu, which we then divide by 365 in the remaining blank column, resulting in 2.11 years.

Once you’ve done that for all of your players, you then go back to the chart. Click on the ‘+’ symbol on the chart and select the ‘Error Bars’ option. Delete the vertical error bar. Then, right-click on the horizontal error bars that remain on the chart. Select ‘No Cap’ on the ‘End Style’. Then go to the Error Amount and choose Custom and ‘Specify Value’. For the Positive Error Value, choose the number of years remaining on the contract, and for the Negative Error Values, select the years that the players have been at the club.
If you then want to format that new line, you can then select the paint can option again, select ‘Gradient Line’, remove the 90 percent default and put 0. Then modify the colours so that it goes from black to white. I like to go for 25% jumps of increasingly dark colours from black to white, though you could just as easily reverse the colours here.

Adding in the titles of the axes is an easy step, but what is less so is adding in the 50% and 80% of minutes played. Originally, I used to just guestimate the lines, but I’ve since found a way to put them in so that they can be dynamic, i.e. change as the data changes.
Go back into your data worksheet tab and calculate the total minutes available, then 80% and 50% of that figure. Put those figures into two new columns for each player.

Go back into the chart and then right-click and ‘Select Data’. Then add the data to the chart by selecting the players real age for the x-axis and the 80% or 50% minutes, depending upon which you’re doing.
However, you’ll note that it now looks something like this:

To improve this, right-click on one of the new markers and then select ‘Add Trendline’. Go to the ‘Forecast’ section and chose numbers that extend beyond the chart x-axis. Then go back to the markers by right-clicking and select the paint can option again. Go to the Marker, and Marker Options, and select None’.
Right-click on the trend line that’s still there and click the paint can option again and then format the lines so that they’re both white in colour, 40% transparent, and a solid line rather than dashed. Replicate this for both.
Then add in the text boxes for the 50% and 80% minutes. This is also an easy step, as you can type it into an added textbox, or link it to the cell that the respective text is in by typing ‘=’ and then the cell reference for that text. After that, you should be left with something looking like the original image shown above.
If you want to then show the players that are home-grown, this also requires you to add in more data into the graph. For some leagues, like the Bundesliga, this doesn’t matter for squad registration, but it does for leagues like the Premier League and the Champions League registration, so I’ll include this step too.
This is where we need to use a formula, and why the column for Home-Grown Status will now come into use. Use the blank column next to the Home-Grown Status column and type this: =IF(Q2=”-“,NA(),J2)
Here, ‘J2’ is equal to the number of minutes the player has played, and the rest of the equation is telling Excel to put NA in the cell if there is a dash in the Home-Grown Status column, and if there isn’t, put the number of minutes that the player played that season. The NA part is important because you don’t want the chart to return zeros in it, and this stops that from happening.
Now we can go back to our chart and add a new set of data to it, so right-click on your chart and ‘Select Data’ again. Add a new series and select player’s real age for the x-axis and the new minutes played column you just calculated that has either the dash or the minutes played if they were home-grown either at club or in nation.
You’ll note that the markers are now smaller than the markers you have from the original data set, so you’ll need to adjust and recolour these. Again, at this juncture, I like to go for secondary colours that are important to the club. Equally, if you wanted to denote homegrown at club and homegrown at nation separately, you can copy the formula above to reflect that relatively easily but have it across two columns and then add in two separate series of data into your charts. That is what you can see in the chart for the original graphic for the Liverpool squad for 2024-25.
This should be the finished result (if you imagine all players have the error bars included):

Graphic 2 – Player Percentage Minutes by Position
This second chart is relatively straightforward, though it will be easier again if you’ve put the players into order by position once you’ve extracted your data, as this will be important to how this graphic looks. You’ll also need to add a blank row in the Excel worksheet between each set of positions, which will then be reflected by the space in the graphic. I would suggest duplicating the original data you extracted out of the game by right-clicking on the tab and then Move or Copy and creating a new copy. That way, any changes you make to that workbook won’t be reflected in any subsequent chart.

Again, you’ll need total possible minutes available to be played, so do the same trick of calculating all minutes played by your goalkeepers.
Once you’ve got that added up, divided the minutes played by each player against the total minutes available to be played. This is easy to do – create a new column next to the minutes played, then a sum to divide whichever cell the first player’s minutes are in by the cell that the total minutes possible is. Use the ‘$’ symbol trick to lock the total minutes possible cell in the formula and then double-click the bottom right marker again to populate all the percentage minutes for each player. That’s the basics you will need for the chart to be created.
Highlight this column and the player names and create a 2-D bar chart. It will then generate this for you. What you’ll immediately notice is it’s in reverse order, and that it looks absolutely nothing like the above chart:

Let’s assume you’ve made all the changes to turn it into the black background and the font is white as per the above, now what?
Well, you’ll notice that the x-axis goes up to 120% when you don’t need it to, so you can adjust that in the formatting of the axis, as I’ve already done. Then, you’ll want to adjust the vertical axis so that they’re almost entirely transparent (I opt for 80%).
I then adjust the bars so that the Series Gap is 60%. To achieve this, right-click on one of the bars and then go to column icon/Series Options and adjust in there. Select a suitable, consistent colour to your club for the bar colour, and then add data labels by right-clicking on a bar and selecting that option. Right-click on the data label with the percentage of minutes and then select the minutes played data for each player.
This leaves us with the below:

Now to fix the issue of the player names being represented by numbers rather than their names. This is relatively simple on this occasion – right-click on the chart and opt for Select Data. Click the Edit button as seen below, and then select the player names in your data workbook:

The issue here is that that data doesn’t include the player’s age as per the initial graphic. This is easy to fix via a formula that combines the player’s name and age. This is the concatenate formula, so type =CONCATENATE(B2,”, “,F2) underneath your data and drag this down to include all your players. Here, B2 is the first player’s name and F2 is their age.
Then, with some minor adjustments, and fixing the issue of the names being in reverse orders with goalkeepers at the bottom of the graph rather than the top by right-clicking on the y-axis, opting for the Format Axis, Axis Options (the chart icon) and then ticking the Categories in reverse order box.
Insert some textboxes to add the positions the players play, and then select them all by clicking on each on whilst holding down the Ctrl key. Once you’ve done that, go to Shape Format on the toolbar and select Align, and then Align Centre. Then, you’re done:

Graphic 3 – Player Age Against Peak Age by Position
This last graphic was probably the hardest one to learn how to make. This was in large part because I couldn’t work out how to dynamically place in the red boxes to denote the peak age of the players by position. Sure, I could create a coloured shape in the graphic and simply resize these accordingly, but the issue with that was that it would then sit over the chart and sit over the markers colouring in any player in the peak age, or partially colour them if they’re only just in the peak age area.
Therefore, I needed to learn how to have these set by position and by age. Here’s how I learned that, and how I made the final graphic itself.

You’ll need the same data that you’ve extracted above, and you’ll also need to do some data entry.
Now, it’s worth saying that the player peak ages by position are those identified in an article on The Athletic here by the now former writer Tom Worville. These are unlikely to correlate with peak age of your players, but I think it’s good to have a broad idea of where your squad is at from a positional sense.
Here’s what you’re aiming for:

Where I would start is by copying all the player names and ages in the data table and put them underneath and prior data. Then in descending order, number each player in the column next to their name, and then in the column after that put 16 in each row for each player as per the below.
After that, put the lowest age of the peak age bracket next to each player. That is as follows, but in case you’re not sure, it’s 27 for goalkeepers, 24 for full backs, 26 for centre backs, 24 for central midfielders, 25 for wide forwards and 26 for strikers:

Now you’re ready to create the chart, but you need to take care over the order of this. Select the player names, their age, not the descending numbers, the 16s, but yes to the lowest bound for the peak ages and the length of the peak age. Go to Insert, Recommended Charts and select Combo in the All Charts section.
Change Age to scatter and deselect tick box for the defaulted secondary axis, change the 16s to scatter with straight lines and again deselect the tick box for defaulted secondary axis. Then for the last two select stacked bar charts for both. This will grey out the secondary axes, but that’s fine, you want that. Click OK and move it to a chart worksheet. It should look like the below.

A mess, right? Let’s start making it look how we want it to. Delete out the series at the bottom and make it portrait. Right-click on the chart and Select Data. Change both of the Age so that the x-axis is the player ages and the y-values are the descending numbers, and then do the same for the 16s by changing the 16s to the x-axis and the descending numbers for the y-axis:

It should now look like this:

Make the usual changes to turn the background black and the text to white and Verdana Pro Cond Semibold. Then change BOTH the bottom axis and the top axis so that the minimum is 16 and the maximum is, say 34, but that can be adjusted to the maximum player age in your squad, though keep the maximum figure for the axis an even number to make it look better.
Then, change the maximum and minimum values for the primary y-axis to fit the maximum number of players you have in your squad. Here, I select 1 and 32. I also change the Units major to be 1.
If you then select the left-hand stacked bar and change the Shape Fill to blank and do the same for Shape Outline, leaving you with this:

Then adjust the markers, but this time make them black with a white outline and resize so that they pop better and avoid a clash against the peak age area, which we’ll adjust shortly.
Following this, adjust the gridlines by Chart Design and Add Chart Element. I prefer major units for the vertical gridlines to be 2, and I’ve made the gridlines dashed and 40% transparent:

Now to alter the height of the peak player ages so that they overlap and change the overall colour of this area. Right-click on one and then take the gap width all the way down to 0% and make sure that the Series Overlap is set to 100%. Change the colour to be a dark red and make it 40% transparent.
What you should then notice is that the peak ages are the wrong way around, as are the players. You need to put the Categories into reverse order again for both the primary horizontal axis and for the secondary horizontal axis. When editing the secondary horizontal axis, make sure you select Axis positions On tick marks. Once you’ve done that, remove the secondary horizontal axis as you won’t need it again.
The last part is to put the player names in. Right-click your line of 16s and select Add data labels. Then Format Data Labels and add in the player names by selective Value From Cells and selecting the player names. At this point, if you wanted to add something a little extra, you could do a new concatenate and join the player’s name and the number of minutes played to give you an idea of the overall importance to the squad of said player.
Add in some textboxes to denote positions, and you should be left with something that looks like this, which is the finished article:

The beauty about all of these charts, bar the textboxes that denote positions, is that they are dynamic now that you’ve set them up. Any changes that you make in the data worksheet will be reflected in the charts as long as you’re changing the relevant cells that you’ve used within the selected data. That means that you don’t have to necessarily recreate them each and every time if you don’t want to.
If you have any questions about any of the above, or you think I’ve missed some graphics that you’d like explaining how to make, feel free to leave a comment on this blog, and I’ll get back to you when I’m able. If you do want a graphic recreating that wasn’t explained on here, then feel free to post the link to the image.
News
Berita
News Flash
Blog
Technology
Sports
Sport
Football
Tips
Finance
Berita Terkini
Berita Terbaru
Berita Kekinian
News
Berita Terkini
Olahraga
Pasang Internet Myrepublic
Jasa Import China
Jasa Import Door to Door
Gaming Center
Gaming center adalah sebuah tempat atau fasilitas yang menyediakan berbagai perangkat dan layanan untuk bermain video game, baik di PC, konsol, maupun mesin arcade. Gaming center ini bisa dikunjungi oleh siapa saja yang ingin bermain game secara individu atau bersama teman-teman. Beberapa gaming center juga sering digunakan sebagai lokasi turnamen game atau esports.
Comments are closed, but trackbacks and pingbacks are open.