League Two 2022-2023 Performance vs Market
Expected points (xPTS) come from pre-match market odds: what the market rated each team's chances at before kickoff. A positive Δ means the team is outperforming those expectations — playing better than the market rated them; a negative Δ means they're delivering less than their billing. Big gaps usually say more about the team than about fortune.
| # | Team | P | Pts | xPts | vs xPTS | |||||
|---|---|---|---|---|---|---|---|---|---|---|
1 | Leyton Orient | 46 | 91 | 72.8 | +18.2Outperforming ++ | 4 | +9.9 | +8.3 | 1:2 vs Mansfield (+2.3) | 1:2 vs Newport (-1.9) |
2 | Northampton | 46 | 83 | 68.9 | +14.1Outperforming ++ | 6 | +3.8 | +10.3 | 2:3 vs Stevenage (+2.1) | 0:1 vs Doncaster (-1.8) |
3 | Carlisle | 46 | 76 | 66.0 | +10.0Outperforming ++ | 8 | +4.4 | +5.6 | 0:2 vs Tranmere (+2.0) | 0:1 vs Harrogate (-2.0) |
4 | Crewe | 46 | 58 | 49.0 | +9.0Outperforming ++ | 23 | +10.6 | -1.6 | 3:2 vs Bradford City (+2.1) | 1:2 vs Newport (-1.2) |
5 | Salford | 46 | 75 | 67.7 | +7.3Outperforming ++ | 7 | -2.8 | +10.1 | 1:3 vs Stevenage (+2.0) | 0:1 vs Gillingham (-2.1) |
6 | Stevenage | 46 | 85 | 78.2 | +6.8Outperforming ++ | 2 | +9.2 | -2.3 | 2:1 vs Stockport County (+1.8) | 0:1 vs Tranmere (-1.9) |
7 | Bradford City | 46 | 76 | 70.1 | +5.9Outperforming ++ | 5 | -1.7 | +7.6 | 2:3 vs Stevenage (+2.1) | 3:2 vs Crewe (-1.9) |
8 | Doncaster | 46 | 55 | 53.5 | +1.5On expectation | 21 | +3.3 | -1.8 | 2:1 vs Stockport County (+2.1) | 0:1 vs Hartlepool (-1.8) |
9 | Mansfield | 46 | 75 | 74.4 | +0.6On expectation | 3 | -6.3 | +6.9 | 0:4 vs Carlisle (+1.9) | 1:2 vs Harrogate (-2.1) |
10 | Barrow | 46 | 62 | 62.5 | -0.5On expectation | 13 | +4.0 | -4.5 | 2:3 vs Stockport County (+2.3) | 3:0 vs Crewe (-1.6) |
11 | Harrogate | 46 | 52 | 53.5 | -1.5On expectation | 20 | -2.5 | +1.0 | 1:2 vs Mansfield (+2.3) | 1:3 vs Colchester (-1.6) |
12 | Gillingham | 46 | 55 | 56.6 | -1.6On expectation | 17 | +5.4 | -7.0 | 0:1 vs Salford (+2.4) | 1:2 vs Newport (-1.6) |
13 | Swindon | 46 | 61 | 63.1 | -2.1Underperforming | 12 | -2.0 | -0.1 | 2:5 vs Mansfield (+2.0) | 0:1 vs Crewe (-1.8) |
14 | Tranmere | 46 | 58 | 60.9 | -2.9Underperforming | 15 | +1.0 | -3.9 | 0:1 vs Stevenage (+2.2) | 0:2 vs Carlisle (-1.7) |
15 | Stockport County | 46 | 79 | 82.0 | -3.0Underperforming | 1 | -2.8 | -0.2 | 0:1 vs Bradford City (+1.6) | 2:3 vs Barrow (-2.1) |
16 | Grimsby | 46 | 61 | 64.8 | -3.8Underperforming | 9 | -5.7 | +1.8 | 1:3 vs Stockport County (+2.1) | 1:4 vs Hartlepool (-1.8) |
17 | Hartlepool | 46 | 43 | 46.8 | -3.8Underperforming | 24 | -2.6 | -1.2 | 0:1 vs Doncaster (+2.1) | 0:2 vs Crawley (-1.6) |
18 | Crawley | 46 | 46 | 50.9 | -4.9Underperforming | 22 | +3.8 | -8.7 | 0:1 vs AFC Wimbledon (+2.0) | 0:2 vs Hartlepool (-1.8) |
19 | Sutton | 46 | 58 | 64.5 | -6.5Underperforming −− | 10 | +2.0 | -8.5 | 0:2 vs Newport (+1.8) | 0:1 vs Grimsby (-1.8) |
20 | Walsall | 46 | 55 | 61.5 | -6.5Underperforming −− | 14 | +1.5 | -8.1 | 0:1 vs Newport (+1.9) | 0:1 vs Barrow (-1.6) |
21 | Colchester | 46 | 49 | 56.1 | -7.1Underperforming −− | 18 | -4.9 | -2.2 | 0:1 vs Salford (+2.1) | 1:0 vs Doncaster (-1.6) |
22 | Newport | 46 | 57 | 64.2 | -7.2Underperforming −− | 11 | -11.4 | +4.2 | 1:2 vs Leyton Orient (+2.2) | 2:3 vs Harrogate (-1.8) |
23 | AFC Wimbledon | 46 | 48 | 57.1 | -9.1Underperforming −− | 16 | -4.8 | -4.3 | 1:0 vs Stockport County (+2.1) | 0:1 vs Crawley (-1.7) |
24 | Rochdale | 46 | 38 | 54.4 | -16.4Underperforming −− | 19 | -10.6 | -5.8 | 1:2 vs Bradford City (+2.1) | 1:2 vs Crewe (-1.7) |
