Stockport County had the best goal difference in League Two in 2023/2024, with +48 from 46 games, scoring 96 and conceding 48. Mansfield Town were next on +43. Stockport County had the best goal difference in 2022/2023, +28.
Forest Green Rovers had the worst goal difference in League Two in 2023/2024, with -34 from 46 games, scoring 44 and conceding 78. Sutton United were next on -25.
There were 1,660 goals in 557 League Two games in 2023/2024, an average of 3.0 a game, 1.5 for each side. Stockport County averaged the most, 2.1 a game, and Gillingham and Forest Green Rovers the fewest, 1.0 each.
Wrexham had the best expected goal difference in League Two in 2023/2024, with +13.4 from 46 games, creating 21.5 xG and conceding 8.1. Stockport County were next on +12.0.
| Rank | Team | Goals Scored |
|---|---|---|
| 1 | Stockport County | 96 |
| 2 | Mansfield Town | 90 |
| 3 | Wrexham | 89 |
| 4 | Notts County | 89 |
| 5 | Milton Keynes Dons | 84 |
| 6 | Crawley Town | 83 |
| 7 | Swindon Town | 77 |
| 8 | Doncaster Rovers | 75 |
| 9 | Crewe Alexandra | 71 |
| 10 | Walsall | 69 |
| Rank | Team | Expected Goals (xG) |
|---|---|---|
| 1 | Walsall | 28.7 |
| 2 | Mansfield Town | 25.3 |
| 3 | Bradford City | 22.6 |
| 4 | Wrexham | 21.5 |
| 5 | Accrington Stanley | 20.3 |
| 6 | Notts County | 19.0 |
| 7 | Stockport County | 18.9 |
| 8 | Barrow | 18.6 |
| 9 | Salford City | 18.6 |
| 10 | Doncaster Rovers | 18.1 |
| Rank | Team | Goals Against |
|---|---|---|
| 1 | Mansfield Town | 47 |
| 2 | Stockport County | 48 |
| 3 | AFC Wimbledon | 51 |
| 4 | Wrexham | 52 |
| 5 | Barrow | 56 |
| 6 | Gillingham | 57 |
| 7 | Bradford City | 59 |
| 8 | Crawley Town | 68 |
| 9 | Crewe Alexandra | 69 |
| 10 | Harrogate Town | 69 |
| Rank | Team | Expected Goals Against (xGA) |
|---|---|---|
| 1 | Stockport County | 6.8 |
| 2 | Wrexham | 8.1 |
| 3 | Crawley Town | 9.6 |
| 4 | Salford City | 11.9 |
| 5 | Doncaster Rovers | 12.7 |
| 6 | Barrow | 13.5 |
| 7 | Mansfield Town | 13.6 |
| 8 | Grimsby Town | 13.7 |
| 9 | AFC Wimbledon | 13.9 |
| 10 | Crewe Alexandra | 14.7 |
| Rank | Team | Goal Difference |
|---|---|---|
| 1 | Stockport County | +48 |
| 2 | Mansfield Town | +43 |
| 3 | Wrexham | +37 |
| 4 | Crawley Town | +15 |
| 5 | AFC Wimbledon | +13 |
| 6 | Milton Keynes Dons | +8 |
| 7 | Barrow | +6 |
| 8 | Doncaster Rovers | +5 |
| 9 | Notts County | +3 |
| 10 | Crewe Alexandra | +2 |
| Rank | Team | Expected Goal Difference (xGD) |
|---|---|---|
| 1 | Wrexham | +13.4 |
| 2 | Stockport County | +12.0 |
| 3 | Mansfield Town | +11.7 |
| 4 | Walsall | +11.6 |
| 5 | Salford City | +6.7 |
| 6 | Doncaster Rovers | +5.4 |
| 7 | Barrow | +5.0 |
| 8 | Bradford City | +2.7 |
| 9 | Grimsby Town | -0.2 |
| 10 | Gillingham | -0.4 |
| Rank | Team | Possession % |
|---|---|---|
| 1 | Notts County | 64.8% |
| 2 | Milton Keynes Dons | 57.4% |
| 3 | Crawley Town | 57.1% |
| 4 | Stockport County | 56.9% |
| 5 | Swindon Town | 54.4% |
| 6 | Mansfield Town | 53.6% |
| 7 | Salford City | 52.2% |
| 8 | Bradford City | 50.6% |
| 9 | Gillingham | 50.1% |
| 10 | Doncaster Rovers | 49.8% |
| Rank | Team | Clean Sheets |
|---|---|---|
| 1 | Stockport County | 17 |
| 2 | Wrexham | 16 |
| 3 | AFC Wimbledon | 16 |
| 4 | Bradford City | 15 |
| 5 | Gillingham | 15 |
| 6 | Mansfield Town | 14 |
| 7 | Crewe Alexandra | 14 |
| 8 | Barrow | 14 |
| 9 | Doncaster Rovers | 13 |
| 10 | Harrogate Town | 11 |
| Rank | Team | Fouls Committed |
|---|---|---|
| 1 | Accrington Stanley | 616 |
| 2 | AFC Wimbledon | 609 |
| 3 | Doncaster Rovers | 560 |
| 4 | Bradford City | 555 |
| 5 | Salford City | 540 |
| 6 | Grimsby Town | 534 |
| 7 | Forest Green Rovers | 534 |
| 8 | Sutton United | 531 |
| 9 | Newport County | 518 |
| 10 | Crewe Alexandra | 514 |
| Rank | Team | Yellow Cards |
|---|---|---|
| 1 | Crewe Alexandra | 112 |
| 2 | Salford City | 108 |
| 3 | Accrington Stanley | 107 |
| 4 | Crawley Town | 104 |
| 5 | Bradford City | 103 |
| 6 | Morecambe | 103 |
| 7 | Colchester United | 102 |
| 8 | Forest Green Rovers | 101 |
| 9 | Milton Keynes Dons | 95 |
| 10 | Doncaster Rovers | 94 |