# 2019–20 Bradford City A.F.C. season

The 2019–20 season is Bradford City's 117th season in their history and the first season back in EFL League Two following the club's relegation the season before. Along with League Two, the club will also participate in the FA Cup, EFL Cup and EFL Trophy.
The season covers the period from 1 July 2019 to 30 June 2020.

## Pre-season

On 23 May 2019 it was announced that the Bantams would face local city rivals Bradford Park Avenue. Following this announcement, Bradford City arranged a further two friendlies to be played against Rochdale A.F.C. and Brighouse Town F.C. A home game was added to the pre-season schedule on 20 July where City would face Wigan Athletic. Another local friendly was announce as Eccleshill United F.C. would host the Bantams. Bolton Wanderers had three of their friendlies cancelled leading Bradford to agree to play a Behind closed doors friendly against them.
| Date | Opponents | H / A | Result F–A | Scorers | Attendance |
| 6 July 2019 | Guiseley | A | 2–0 | Donaldson 33', Fawns 55' | 1,799 |
| 9 July 2019 | Brighouse Town | A | 2–0 | Hippolyte (2) 20' (pen.), 70' | n/a |
| 14 July 2019 | Liverpool | H | 1–3 | Doyle 81' (pen.) | 24,343 |
| 16 July 2019 | Eccleshill United | A | 2–1 | Mooney 55', Okafor 81' | 650 |
| 20 July 2019 | Wigan Athletic | H | 1–1 | Vaughan 36' (pen.) | n/a |
| 23 July 2019 | Bolton Wanderers | A | 1–2 | Vaughan (pen.) | 0 |
| 23 July 2019 | Bradford Park Avenue | A | 0–0 (3–2 p) | | 1,171 |
| 27 July 2019 | Rochdale | A | 1–0 | Doyle 38' (pen.) | n/a |

## Competitions
### League Two
#### League table

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | PPG | Promotion, qualification or relegation |
| 5 | Exeter City | 37 | 18 | 11 | 8 | 53 | 43 | +10 | 65 | 1.76 | Qualification for League Two play-offs |
| 6 | Colchester United | 37 | 15 | 13 | 9 | 52 | 37 | +15 | 58 | 1.57 | Qualification for League Two play-offs |
| 7 | Northampton Town (O, P) | 37 | 17 | 7 | 13 | 54 | 40 | +14 | 58 | 1.57 | Qualification for League Two play-offs |
| 8 | Port Vale | 37 | 14 | 15 | 8 | 50 | 44 | +6 | 57 | 1.54 | |
| 9 | Bradford City | 37 | 14 | 12 | 11 | 44 | 40 | +4 | 54 | 1.46 | |
| 10 | Forest Green Rovers | 36 | 13 | 10 | 13 | 43 | 40 | +3 | 49 | 1.36 | |
| 11 | Salford City | 37 | 13 | 11 | 13 | 49 | 46 | +3 | 50 | 1.35 | |
| 12 | Walsall | 36 | 13 | 8 | 15 | 40 | 49 | −9 | 47 | 1.31 | |
| 13 | Crawley Town | 37 | 11 | 15 | 11 | 51 | 47 | +4 | 48 | 1.30 | |
* ↑ The match between Bolton Wanderers and Bradford City in Bolton was played behind closed doors.
* ↑ The match between Rochdale A.F.C. and Bradford City in Rochdale was abandoned at halftime due to a waterlogged pitch.
* ↑ Four teams play for one spot and promotion to EFL League One.

#### Result summary

| Overall | Overall | Overall | Overall | Overall | Overall | Overall | Overall | Home | Home | Home | Home | Home | Home | Away | Away | Away | Away | Away | Away |
Last updated: 7 March 2020. Source: Statto.com

#### Results by matchday

| Matchday | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 |
| Ground | H | A | H | A | H | A | H | A | A | H | A | H | A | H | H | H | A | A | H | A | H | A | H | H | A | A | H | A | A | H | A | H | H | A | A | H | A |
| Result | D | D | W | W | L | L | W | W | L | W | D | W | W | W | L | W | L | D | W | D | D | D | W | W | D | L | D | D | L | D | L | D | W | L | L | W | L |
| Position | 14 | 17 | 7 | 2 | 9 | 12 | 10 | 7 | 9 | 6 | 8 | 6 | 3 | 2 | 4 | 2 | 7 | 7 | 6 | 5 | 5 | 5 | 4 | 4 | 4 | 6 | 5 | 5 | 7 | 7 | 8 | 8 | 8 | 9 | 9 | 9 | 9 |

#### Matches

On Thursday, 20 June 2019, the EFL League Two fixtures were revealed.
| Date | Opponents | H / A | Result F–A | Scorers | Attendance | Position |
| 3 August 2019 | Cambridge United | H | 0–0 | | 14,810 | 14th |
| 10 August 2019 | Grimsby Town | A | 1–1 | Vaughan 53' | 6,882 | 17th |
| 17 August 2019 | Oldham Athletic | H | 3–0 | Vaughan 4', Donaldson 32', Scannell 72' | 14,447 | 7th |
| 20 August 2019 | Stevenage | A | 1–0 | Soares 42' (o.g.) | 2,833 | 2nd |
| 24 August 2019 | Forest Green Rovers | H | 0–1 | | 13,504 | 9th |
| 31 August 2019 | Crewe Alexandra | A | 1–2 | Vaughan 32' | 4,459 | 12th |
| 7 September 2019 | Northampton Town | H | 2–1 | Donaldson 77', P. O'Connor 88' | 13,678 | 10th |
| 14 September 2019 | Walsall | A | 1–0 | Kinsella 83' (o.g.) | 4,649 | 7th |
| 17 September 2019 | Cheltenham Town | A | 2–3 | Anderson 51', Richards-Everton 76' | 2,702 | 9th |
| 21 September 2019 | Carlisle United | H | 3–1 | Pritchard 30', Mellor 40', Ismail 90+5' | 2,702 | 6th |
| 28 September 2019 | Scunthorpe United | A | 1–1 | P. O'Connor 56' | 4,554 | 8th |
| 5 October 2019 | Swindon Town | H | 2–1 | Akpan 69', McCartan 79' | 14,136 | 6th |
| 12 October 2019 | Morecambe | A | 2–1 | Akpan 47', Oteh 78' | 3,899 | 3rd |
| 19 October 2019 | Crawley Town | H | 2–1 | Pritchard 18', Devine 49' | 13,813 | 2nd |
| 22 October 2019 | Port Vale | H | 1–2 | Vaughan 45+1' (pen.) | 14,345 | 4th |
| 26 October 2019 | Macclesfield Town | A | P–P | | | |
| 2 November 2019 | Exeter City | H | 2–0 | Oteh 31', Vaughan 45+1' | 14,002 | 2nd |
| 16 November 2019 | Colchester United | A | P–P | | | |
| 23 November 2019 | Plymouth Argyle | A | 1–2 | Canavan 51' (o.g.) | 9,645 | 7th |
| 30 November 2019 | Macclesfield Town | A | 1–1 | Vaughan 73' | 2,751 | 7th |
| 7 December 2019 | Newport County | H | 1–0 | Vaughan 58' (pen.) | 14,016 | 6th |
| 14 December 2019 | Leyton Orient | A | 0–0 | | 6,015 | 5th |
| 21 December 2019 | Salford City | H | 1–1 | Pritchard 53' | 14,642 | 5th |
| 26 December 2019 | Carlisle United | A | 0–0 | | 6,039 | 5th |
| 29 December 2019 | Mansfield Town | H | 2–0 | Vaughan (2) 13' (pen.), 83' (pen.) | 15,197 | 4th |
| 1 January 2020 | Morecambe | H | 1–0 | Oteh 80' | 14,111 | 4th |
| 4 January 2020 | Swindon Town | A | 1–1 | McCartan 89' | 8,407 | 4th |
| 11 January 2020 | Crawley Town | A | 1–2 | Vaughan 84' | 2,361 | 6th |
| 18 January 2020 | Scunthorpe United | H | 2–2 | Akpan 17', Vaughan 19' | 14,176 | 5th |
| 21 January 2020 | Colchester United | A | 0–0 | | 3,022 | 5th |
| 25 January 2020 | Mansfield Town | A | 0–3 | | 5,537 | 7th |
| 28 January 2020 | Cheltenham Town | H | 1–1 | Donaldson 11' (pen.) | 12,731 | 7th |
| 1 February 2020 | Oldham Athletic | A | 0–3 | | 5,198 | 8th |
| 8 February 2020 | Grimsby Town | H | 1–1 | Novak 80' | 17,668 | 8th |
| 11 February 2020 | Stevenage | H | 3–1 | McCartan (2) 49', 54', Novak 90+3' | 12,845 | 8th |
| 15 February 2020 | Cambridge United | A | 1–2 | Reeves 17' | 4,541 | 9th |
| 22 February 2020 | Newport County | A | 1–2 | Donaldson 26' | 3,439 | 9th |
| 29 February 2020 | Plymouth Argyle | H | 2–1 | Richards-Everton 6', Connolly 45+2' | 13,439 | 9th |
| 7 March 2020 | Salford City | A | 0–2 | | 3,443 | 9th |
| 14 March 2020 | Leyton Orient | H | S–S | | | |
| 17 March 2020 | Port Vale | A | S–S | | | |
| 21 March 2020 | Macclesfield Town | H | S–S | | | |
| 28 March 2020 | Exeter City | A | S–S | | | |
| 4 April 2020 | Colchester United | H | S–S | | | |
| 10 April 2020 | Forest Green Rovers | A | S–S | | | |
| 13 April 2020 | Crewe Alexandra | H | S–S | | | |
| 18 April 2020 | Northampton Town | A | S–S | | | |
| 25 April 2020 | Walsall | H | S–S | | | |

### FA Cup

The first round draw was made on 21 October 2019.
| Date | Round | Opponents | H / A | Result F–A | Scorers | Attendance |
| 9 November 2019 | First Round | Shrewsbury Town | A | 1–1 | Oteh 19' | 3,764 |
| 19 November 2019 | First Round Replay | Shrewsbury Town | H | 0–1 | | 3,888 |

### EFL Cup

The first round draw was made on 20 June.
| Date | Round | Opponents | H / A | Result F–A | Scorers | Attendance |
| 13 August 2019 | Round 1 | Preston North End | H | 0–4 | | 3,456 |

### EFL Trophy

On 9 July 2019, the pre-determined group stage draw was announced with Invited clubs to be drawn on 12 July 2019.
| Pos | Div | Teamvte | Pld | W | PW | PL | L | GF | GA | GD | Pts | Qualification |
| 1 | ACA | Manchester City U21 | 3 | 2 | 0 | 0 | 1 | 5 | 4 | +1 | 6 | Advance to Round 2 |
| 2 | L1 | Bolton Wanderers | 3 | 1 | 0 | 2 | 0 | 5 | 3 | +2 | 5 | Advance to Round 2 |
| 3 | L1 | Rochdale | 3 | 1 | 1 | 0 | 1 | 3 | 4 | −1 | 5 | |
| 4 | L2 | Bradford City | 3 | 0 | 1 | 0 | 2 | 3 | 5 | −2 | 2 | |
| Date | Round | Opponents | H / A | Result F–A | Scorers | Attendance |
| 3 September 2019 | Group Stage | Bolton Wanderers | A | 1–1 (4–3 p) | P. O'Connor 51' | 9,062 |
| 24 September 2019 | Group Stage | Manchester City U21's | H | 1–2 | Akpan 21' | 868 |
| 12 November 2019 | Group Stage | Rochdale | H | 1–2 | French 15' | 761 |

## Squad statistics

| No. | Pos. | Name | League | League | FA Cup | FA Cup | EFL Cup | EFL Cup | EFL Trophy | EFL Trophy | Total | Total | Discipline | Discipline |
| No. | Pos. | Name | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals | | |
| 1 | GK | Richard O'Donnell | 33 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 35 | 0 | 0 | 0 |
| 2 | DF | Kelvin Mellor | 22(3) | 1 | 0(2) | 0 | 0 | 0 | 1 | 0 | 23(5) | 1 | 5 | 0 |
| 4 | DF | Paudie O'Connor | 16(3) | 2 | 0(1) | 0 | 1 | 0 | 2 | 1 | 19(4) | 3 | 7 | 0 |
| 5 | DF | Ben Richards-Everton | 32 | 2 | 2 | 0 | 0 | 0 | 2(1) | 0 | 36(1) | 2 | 4 | 1 |
| 6 | DF | Anthony O'Connor | 34(2) | 0 | 2 | 0 | 1 | 0 | 0 | 0 | 37(2) | 0 | 1 | 0 |
| 7 | MF | Harry Pritchard | 14(7) | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 16(7) | 3 | 1 | 0 |
| 8 | MF | Jake Reeves | 17(1) | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 18(1) | 1 | 6 | 0 |
| 9 | FW | Lee Novak | 6 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 6 | 2 | 0 | 0 |
| 10 | FW | Clayton Donaldson | 18(2) | 4 | 0 | 0 | 0 | 0 | 1 | 0 | 19(2) | 4 | 3 | 0 |
| 11 | MF | Zeli Ismail | 6(5) | 1 | 1(1) | 0 | 0 | 0 | 2(1) | 0 | 9(7) | 1 | 3 | 1 |
| 14 | FW | Shay McCartan | 8(13) | 4 | 0 | 0 | 0 | 0 | 1 | 0 | 9(13) | 4 | 5 | 0 |
| 16 | MF | Matt Palmer | 17(1) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 17(1) | 0 | 0 | 0 |
| 17 | FW | Jordan Gibson | 3(3) | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 4(3) | 0 | 0 | 0 |
| 18 | MF | Jermaine Anderson | 3(2) | 1 | 0(1) | 0 | 1 | 0 | 2 | 0 | 6(3) | 1 | 2 | 0 |
| 19 | MF | Dylan Connolly | 22(5) | 1 | 2 | 0 | 0 | 0 | 0 | 0 | 24(5) | 1 | 4 | 0 |
| 20 | MF | Glenn Middleton | 2(1) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2(1) | 0 | 0 | 0 |
| 21 | MF | Hope Akpan | 13(6) | 3 | 2 | 0 | 1 | 0 | 1 | 1 | 17(6) | 4 | 4 | 0 |
| 22 | DF | Adam Henley | 22(2) | 0 | 2 | 0 | 0 | 0 | 1 | 0 | 25(2) | 0 | 2 | 0 |
| 23 | DF | Connor Wood | 35 | 0 | 2 | 0 | 1 | 0 | 0(1) | 0 | 38(1) | 0 | 2 | 0 |
| 24 | MF | Daniel Devine | 6(7) | 1 | 1(1) | 0 | 1 | 0 | 2(1) | 0 | 10(9) | 1 | 2 | 0 |
| 25 | FW | Kurtis Guthrie | 1(1) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1(1) | 0 | 0 | 0 |
| 26 | MF | Callum Cooke | 18(7) | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 20(7) | 0 | 6 | 1 |
| 27 | MF | Jamie Devitt | 3(2) | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 4(2) | 0 | 2 | 1 |
| 28 | DF | Joe Riley | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 29 | MF | Chris Taylor | 9(5) | 0 | 0 | 0 | 0 | 0 | 0(1) | 0 | 9(6) | 0 | 1 | 0 |
| 30 | GK | George Sykes-Kenworthy | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 2 | 0 | 0 | 0 |
| 31 | GK | Luke McGee | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0 | 0 | 0 |
| 32 | MF | Dylan Mottley-Henry | 4(3) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4(3) | 0 | 0 | 0 |
| 35 | DF | Reece Staunton | 0 | 0 | 0 | 0 | 0 | 0 | 0(1) | 0 | 0(1) | 0 | 0 | 0 |
| 36 | DF | Jorge Sikora | 0 | 0 | 0 | 0 | 0 | 0 | 0(1) | 0 | 0(1) | 0 | 0 | 0 |
| 37 | FW | Connor Morris | 0 | 0 | 0 | 0 | 0 | 0 | 0(1) | 0 | 0(1) | 0 | 0 | 0 |
| - | MF | Eliot Goldthorp | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| - | – | Own goals | – | 3 | – | 0 | – | 0 | – | 0 | – | 3 | – | – |
| Players out on loan for rest of the season |||||||||||||||
| - | DF | Tyler French | 0(2) | 0 | 0 | 0 | 1 | 0 | 3 | 1 | 4(2) | 1 | 0 | 0 |
| - | GK | Sam Hornby | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 2 | 0 | 0 | 0 |
| - | DF | Jackson Longridge | 0(1) | 0 | 0 | 0 | 1 | 0 | 3 | 0 | 4(1) | 0 | 2 | 0 |
| - | FW | James Vaughan | 23(2) | 11 | 2 | 0 | 0 | 0 | 0 | 0 | 25(2) | 11 | 10 | 0 |
| Players left during the season |||||||||||||||
| - | MF | Luca Colville | 0 | 0 | 0 | 0 | 0(1) | 0 | 0 | 0 | 0(1) | 0 | 0 | 0 |
| - | DF | Finn Cousin-Dawson | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| - | FW | Eoin Doyle | 6 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 7 | 0 | 0 | 0 |
| - | MF | Raecce Ellington | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| - | FW | Aramide Oteh | 8(10) | 3 | 2 | 1 | 0 | 0 | 2 | 0 | 12(10) | 4 | 3 | 0 |
| - | FW | Omari Patrick | 0(2) | 0 | 0 | 0 | 0(1) | 0 | 2(1) | 0 | 2(4) | 0 | 0 | 0 |
| - | MF | Tyrell Robinson | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| - | MF | Sean Scannell | 2(3) | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 3(3) | 1 | 0 | 0 |
Statistics accurate as of 25 April 2020

## Transfers
### Transfers in

| Date | Position | Name | From | Fee |
| 1 July 2019 | CF | Clayton Donaldson | Bolton Wanderers | Free transfer |
| 1 July 2019 | CB | Tyler French | AFC Sudbury | Undisclosed |
| 1 July 2019 | RB | Adam Henley | Real Salt Lake | Free transfer |
| 1 July 2019 | GK | Sam Hornby | Port Vale | Free transfer |
| 1 July 2019 | RM | Zeli Ismail | Walsall | Free transfer |
| 1 July 2019 | LB | Jackson Longridge | Dunfermline Athletic | Undisclosed |
| 1 July 2019 | CB | Paudie O'Connor | Leeds United | Undisclosed |
| 1 July 2019 | CB | Ben Richards-Everton | Accrington Stanley | Free transfer |
| 1 July 2019 | CF | James Vaughan | Wigan Athletic | Free transfer |
| 30 August 2019 | RM | Harry Pritchard | Blackpool | Free transfer |
| 11 November 2019 | MF | Chris Taylor | Blackpool | Free transfer |
| 30 January 2020 | RM | Dylan Mottley-Henry | Barnsley | Undisclosed |
| 31 January 2020 | CF | Kurtis Guthrie | Stevenage | Undisclosed |
| 31 January 2020 | CF | Lee Novak | Scunthorpe United | Undisclosed |

### Loans in

| Date from | Position | Name | From | Date until |
| 5 July 2019 | CM | Matt Palmer | Rotherham United | 31 January 2020 |
| 22 August 2019 | AM | Callum Cooke | Peterborough United | 30 June 2020 |
| 23 August 2019 | AM | Jamie Devitt | Blackpool | 30 June 2020 |
| 2 September 2019 | ST | Aramide Oteh | Queens Park Rangers | 30 June 2020 |
| 2 September 2019 | AM | Dylan Connolly | AFC Wimbledon | 30 June 2020 |
| 16 January 2020 | GK | Luke McGee | Portsmouth | 30 June 2020 |
| 1 February 2020 | LW | Glenn Middleton | Rangers | 30 June 2020 |

### Loans out

| Date from | Position | Name | To | Date until |
| 26 July 2019 | GK | George Sykes-Kenworthy | Guiseley | 3 September 2019 |
| 16 August 2019 | CF | Eoin Doyle | Swindon Town | January 2020 |
| 3 October 2019 | MF | Eliot Goldthorp | Mossley | November 2019 |
| 7 October 2019 | GK | Sam Hornby | AFC Fylde | 30 June 2020 |
| 21 November 2019 | CF | Omari Patrick | Wrexham | January 2020 |
| 10 January 2020 | LB | Jackson Longridge | Torquay United | 30 June 2020 |
| 29 January 2020 | CF | James Vaughan | Tranmere Rovers | 30 June 2020 |
| 21 February 2020 | CB | Tyler French | AFC Fylde | 30 June 2020 |

### Transfers out

| Date | Position | Name | To | Fee |
| 1 July 2019 | RB | Paul Caddis | Swindon Town | Released |
| 1 July 2019 | LB | Adam Chicksen | Bolton Wanderers | Released |
| 1 July 2019 | CF | Tom Clare | Boston United | Released |
| 1 July 2019 | AM | Billy Clarke | Plymouth Argyle | Released |
| 1 July 2019 | CM | Callum Gunner | Chippenham Town | Released |
| 1 July 2019 | MF | Cameron Hawkes | Free agent | Released |
| 1 July 2019 | CF | Alex Jones | Partick Thistle | Released |
| 1 July 2019 | CB | Nathaniel Knight-Percival | Carlisle United | Released |
| 1 July 2019 | CB | Ryan McGowan | Sydney | Released |
| 1 July 2019 | GK | Ben Wilson | Coventry City | Released |
| 1 July 2019 | RB | Calum Woods | Tranmere Rovers | Released |
| 1 July 2019 | CM | Josh Wright | Leyton Orient | Free transfer |
| 30 July 2019 | FW | Kielen Adams | Oldham Athletic | Free transfer |
| 23 August 2019 | RW | Luca Colville | Greenock Morton | Undisclosed |
| 30 August 2019 | RW | Sean Scannell | Blackpool | Free transfer |
| 9 November 2019 | CF | Raecce Ellington | Brighouse Town | Free transfer |
| 15 November 2019 | DF | Finn Cousin-Dawson | Brighouse Town | Free transfer |
| 30 January 2020 | CF | Eoin Doyle | Swindon Town | Undisclosed |
| 31 January 2020 | CF | Omari Patrick | Carlisle United | Undisclosed |
| 24 February 2020 | LB | Tyrell Robinson | Free agent | Sacked |