League Two 2021-2022 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 | Bristol Rovers | 46 | 80 | 63.6 | +16.4Outperforming ++ | 12 | +10.6 | +5.7 | 0:1 vs Harrogate (+2.0) | 1:0 vs Carlisle (-1.6) |
2 | Exeter | 46 | 84 | 71.6 | +12.4Outperforming ++ | 2 | +7.3 | +5.2 | 1:2 vs Salford (+1.8) | 0:1 vs Tranmere (-1.7) |
3 | Tranmere | 46 | 75 | 62.9 | +12.1Outperforming ++ | 14 | +16.5 | -4.4 | 0:1 vs Exeter (+2.0) | 1:0 vs Scunthorpe (-1.7) |
4 | Northampton | 46 | 80 | 68.2 | +11.8Outperforming ++ | 6 | +6.7 | +5.1 | 0:1 vs Newport (+1.8) | 0:1 vs Crawley (-1.9) |
5 | Sutton | 46 | 76 | 65.1 | +10.9Outperforming ++ | 11 | +10.8 | +0.1 | 2:3 vs Mansfield (+1.9) | 1:2 vs Oldham (-1.8) |
6 | Swindon | 46 | 77 | 68.5 | +8.6Outperforming ++ | 5 | -3.9 | +12.4 | 0:2 vs Forest Green (+2.0) | 1:2 vs Leyton Orient (-1.8) |
7 | Crawley | 46 | 61 | 53.6 | +7.4Outperforming ++ | 22 | +1.9 | +5.6 | 1:2 vs Leyton Orient (+2.3) | 2:1 vs Scunthorpe (-1.6) |
8 | Port Vale | 46 | 78 | 71.0 | +7.0Outperforming ++ | 3 | +0.5 | +6.6 | 0:2 vs Forest Green (+2.0) | 1:2 vs Newport (-2.0) |
9 | Mansfield | 46 | 77 | 70.0 | +7.0Outperforming ++ | 4 | +11.2 | -4.3 | 1:2 vs Stevenage (+1.7) | 1:0 vs Carlisle (-1.9) |
10 | Forest Green | 46 | 84 | 79.0 | +5.0Outperforming ++ | 1 | +1.8 | +3.2 | 1:3 vs Walsall (+1.6) | 1:3 vs Harrogate (-2.2) |
11 | Salford | 46 | 70 | 67.8 | +2.2Outperforming | 8 | +1.0 | +1.2 | 0:2 vs Newport (+2.0) | 0:3 vs Colchester (-1.9) |
12 | Newport | 46 | 69 | 68.1 | +0.9On expectation | 7 | -5.3 | +6.3 | 1:2 vs Port Vale (+2.3) | 1:2 vs Colchester (-2.1) |
13 | Colchester | 46 | 55 | 54.2 | +0.8On expectation | 21 | -4.3 | +5.0 | 1:2 vs Newport (+2.3) | 0:1 vs Crawley (-1.6) |
14 | Carlisle | 46 | 53 | 56.0 | -3.0Underperforming | 20 | +0.5 | -3.5 | 0:1 vs Leyton Orient (+2.1) | 2:1 vs Crawley (-1.4) |
15 | Walsall | 46 | 54 | 57.8 | -3.8Underperforming | 19 | +3.0 | -6.8 | 0:1 vs Forest Green (+2.3) | 1:0 vs Scunthorpe (-1.5) |
16 | Hartlepool | 46 | 54 | 58.2 | -4.2Underperforming | 18 | +1.7 | -5.9 | 2:3 vs Newport (+2.2) | 0:2 vs Colchester (-1.5) |
17 | Harrogate | 46 | 53 | 61.0 | -8.0Underperforming −− | 15 | -9.2 | +1.3 | 1:3 vs Forest Green (+2.4) | 0:1 vs Bristol Rovers (-1.8) |
18 | Bradford City | 46 | 58 | 66.1 | -8.1Underperforming −− | 10 | -9.1 | +1.0 | 0:2 vs Forest Green (+2.2) | 1:2 vs Crawley (-1.8) |
19 | Leyton Orient | 46 | 58 | 66.1 | -8.1Underperforming −− | 9 | -5.3 | -2.7 | 1:2 vs Swindon (+2.0) | 1:2 vs Crawley (-2.0) |
20 | Rochdale | 46 | 53 | 63.3 | -10.3Underperforming −− | 13 | -2.9 | -7.4 | 0:2 vs Newport (+2.0) | 0:1 vs Oldham (-2.0) |
21 | Oldham | 46 | 38 | 48.5 | -10.5Underperforming −− | 23 | -8.4 | -2.1 | 0:1 vs Rochdale (+2.2) | 1:3 vs Scunthorpe (-1.6) |
22 | Stevenage | 46 | 47 | 59.9 | -12.9Underperforming −− | 16 | -0.3 | -12.6 | 0:2 vs Bristol Rovers (+1.8) | 0:1 vs Oldham (-1.7) |
23 | Barrow | 46 | 44 | 58.4 | -14.3Underperforming −− | 17 | -9.2 | -5.1 | 0:1 vs Northampton (+2.1) | 0:1 vs Crawley (-1.7) |
24 | Scunthorpe | 46 | 26 | 40.5 | -14.5Underperforming −− | 24 | -7.2 | -7.3 | 1:0 vs Tranmere (+2.0) | 0:1 vs Oldham (-1.4) |
