League Two 2026-2027 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 | Cheltenham | 8 | 15 | 9.0 | +6.0Outperforming ++ | 21 | +5.3 | +0.8 | 3:2 vs York City (+1.9) | 2:1 vs Swindon (-1.0) |
2 | Gillingham | 8 | 12 | 8.9 | +3.1Outperforming | 22 | +1.8 | +1.3 | 3:0 vs Bristol Rovers (+1.9) | 0:3 vs Walsall (-1.5) |
3 | Barnet | 7 | 15 | 11.9 | +3.1Outperforming | 7 | +2.5 | +0.6 | 3:1 vs Salford (+1.5) | 2:2 vs Cheltenham (-1.0) |
4 | Walsall | 8 | 14 | 11.1 | +2.9Outperforming | 10 | +1.9 | +1.0 | 0:3 vs Gillingham (+1.8) | 0:0 vs Rochdale (-0.9) |
5 | Bristol Rovers | 8 | 15 | 13.3 | +1.7On expectation | 3 | +4.5 | -2.9 | 2:0 vs Colchester (+1.3) | 3:0 vs Gillingham (-1.6) |
6 | Swindon | 8 | 11 | 9.4 | +1.6On expectation | 19 | +4.3 | -2.6 | 3:1 vs Port Vale (+1.8) | 3:0 vs Oldham (-0.9) |
7 | Crewe | 8 | 12 | 11.1 | +0.9On expectation | 9 | -0.1 | +1.0 | 0:1 vs Crawley (+1.5) | 1:1 vs Shrewsbury (-0.8) |
8 | Newport | 8 | 9 | 8.2 | +0.8On expectation | 23 | +3.3 | -2.5 | 2:1 vs Grimsby (+2.0) | 1:0 vs Northampton (-0.9) |
9 | York City | 8 | 14 | 13.2 | +0.8On expectation | 4 | +4.6 | -3.8 | 3:2 vs Bristol Rovers (+1.5) | 3:2 vs Cheltenham (-1.7) |
10 | Tranmere | 8 | 11 | 10.8 | +0.2On expectation | 12 | +2.2 | -2.0 | 2:0 vs Oldham (+1.8) | 2:0 vs Gillingham (-1.3) |
11 | Rotherham | 8 | 10 | 9.8 | +0.2On expectation | 16 | +0.9 | -0.7 | 2:1 vs Chesterfield (+1.9) | 2:1 vs Cheltenham (-1.4) |
12 | Rochdale | 8 | 10 | 10.4 | -0.4On expectation | 14 | -0.0 | -0.4 | 1:2 vs Fleetwood (+2.0) | 1:2 vs Crawley (-1.8) |
13 | Salford | 8 | 13 | 13.6 | -0.6On expectation | 2 | +1.4 | -1.9 | 1:4 vs Oldham (+1.6) | 0:1 vs Chesterfield (-1.7) |
14 | Grimsby | 8 | 13 | 13.7 | -0.7On expectation | 1 | +2.8 | -3.5 | 2:0 vs Bristol Rovers (+1.5) | 2:1 vs Newport (-1.7) |
15 | Fleetwood | 8 | 10 | 10.8 | -0.8On expectation | 11 | -1.5 | +0.7 | 0:1 vs Chesterfield (+2.1) | 1:2 vs Rochdale (-1.7) |
16 | Shrewsbury | 8 | 8 | 9.2 | -1.1On expectation | 20 | +2.1 | -3.3 | 1:0 vs Salford (+1.9) | 3:0 vs Rochdale (-1.2) |
17 | Chesterfield | 8 | 11 | 12.2 | -1.2On expectation | 5 | -1.9 | +0.6 | 0:1 vs Salford (+2.0) | 0:1 vs Fleetwood (-1.8) |
18 | Colchester | 8 | 10 | 11.4 | -1.4On expectation | 8 | +1.7 | -3.1 | 2:1 vs Oldham (+1.6) | 3:1 vs Swindon (-1.4) |
19 | Accrington | 8 | 7 | 9.6 | -2.6Underperforming | 17 | +0.4 | -3.0 | 3:2 vs Crawley (+1.4) | 3:2 vs Walsall (-1.1) |
20 | Crawley | 7 | 4 | 7.1 | -3.1Underperforming | 24 | -3.5 | +0.4 | 1:2 vs Rochdale (+2.0) | 1:3 vs Cheltenham (-1.3) |
21 | Exeter | 8 | 6 | 9.4 | -3.4Underperforming | 18 | +0.2 | -3.6 | 2:0 vs Accrington (+1.3) | 1:0 vs Port Vale (-1.0) |
22 | Northampton | 7 | 6 | 10.7 | -4.7Underperforming | 13 | -1.7 | -3.0 | 1:0 vs Newport (+1.1) | 0:1 vs Rotherham (-1.4) |
23 | Port Vale | 7 | 5 | 10.1 | -5.1Underperforming −− | 15 | +0.0 | -5.1 | 1:0 vs Exeter (+1.3) | 3:1 vs Swindon (-1.6) |
24 | Oldham | 8 | 7 | 12.1 | -5.1Underperforming −− | 6 | -0.2 | -5.0 | 2:0 vs Port Vale (+1.5) | 2:0 vs Rochdale (-1.7) |
