# 2023–24 East of Scotland Football League

The 2023–24 East of Scotland Football League (known as the Central Taxis East of Scotland League for sponsorship reasons) was the 95th season of the East of Scotland Football League, and the 10th season with its top division as part of the sixth tier of the Scottish football pyramid system. Linlithgow Rose were the reigning champions but were unable to defend their title after gaining promotion to the Lowland Football League.
Broxburn Athletic won their first East of Scotland Football League title by eleven points over Musselburgh Athletic, and were promoted to the 2024–25 Lowland Football League following a 12–2 victory over Dalbeattie Star in the Lowland League play-off.

## Teams

The following teams changed division after the 2022–23 season.

### To East of Scotland Football League

Transferred from Lothian & Edinburgh Amateur League
* Linton Hotspur

### From East of Scotland Football League

Promoted to Lowland Football League
* Linlithgow Rose
Folded
* Syngenta

## Premier Division

Broxburn Athletic won the East of Scotland League for the first time following a 2–3 defeat suffered by Musselburgh Athletic at Jeanfield Swifts on 1 May 2024, which left Musselburgh eight points behind with two games remaining. They were promoted to the 2024–25 Lowland Football League, beating Dalbeattie Star in the Lowland League play-off.
Relegated from 2022–23 Premier Division:
* Blackburn United
* Oakley United
* Vale of Leithen
Promoted to 2023–24 Premier Division:
* Dunbar United
* Glenrothes
* Luncarty
* Kinnoull

### Stadia and locations

| Team | Location | Home ground | Surface | Capacity | Seats |
| Broxburn Athletic | Broxburn | Albyn Park | Artificial | 2,050 | 0 |
| Crossgates Primrose | Crossgates | Humbug Park | Grass | 1,500 | 0 |
| Dunbar United | Dunbar | New Countess Park | Grass | 1,200 | 191 |
| Dundonald Bluebell | Cardenden | Moorside Park | Grass | 1,000 | 0 |
| Glenrothes | Glenrothes | Warout Stadium | Grass | 2,000 | 730 |
| Haddington Athletic | Haddington | Millfield Park | Grass | 1,200 | 0 |
| Hill of Beath Hawthorn | Hill of Beath | Keir's Park | Grass | 1,080 | 0 |
| Hutchison Vale | Pilton, Edinburgh | Ainslie Park | Artificial | 3,534 | 854 |
| Inverkeithing Hillfield Swifts | Dalgety Bay | Dalgety Bay Sports & Leisure Centre | Artificial | 800 | 0 |
| Jeanfield Swifts | Perth | Riverside Stadium | Grass | 1,000 | 0 |
| Kinnoull | Perth | Tulloch Park | Grass | 1,000 | 0 |
| Luncarty | Luncarty | Brownlands Park | Grass | 1,000 | 0 |
| Musselburgh Athletic | Musselburgh | Olivebank Stadium | Grass | 1,500 | 0 |
| Penicuik Athletic | Penicuik | Montgomery Park | Grass | 1,500 | 0 |
| Sauchie Juniors | Sauchie | Beechwood Park | Grass | 2,500 | 200 |
| Tynecastle | Slateford, Edinburgh | Meggetland Sports Complex | Grass | 3,000 | 500 |

#### Notes

* ↑ Hutchison Vale ground-shared with The Spartans.
All grounds are equipped with floodlights, except Humbug Park (Crossgates Primrose), Warout Stadium (Glenrothes), Brownlands Park (Luncarty).

### League table

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Promotion, qualification or relegation |
| 1 | Broxburn Athletic (C, O, P) | 30 | 23 | 5 | 2 | 82 | 36 | +46 | 74 | Qualification for the Lowland League play-off |
| 2 | Musselburgh Athletic | 30 | 19 | 6 | 5 | 69 | 30 | +39 | 63 | |
| 3 | Jeanfield Swifts | 30 | 18 | 6 | 6 | 80 | 37 | +43 | 60 | |
| 4 | Dunbar United | 30 | 18 | 2 | 10 | 69 | 44 | +25 | 56 | |
| 5 | Hutchison Vale | 30 | 18 | 1 | 11 | 72 | 46 | +26 | 55 | |
| 6 | Sauchie Juniors | 30 | 17 | 3 | 10 | 66 | 48 | +18 | 54 | |
| 7 | Hill of Beath Hawthorn | 30 | 15 | 5 | 10 | 57 | 50 | +7 | 50 | |
| 8 | Haddington Athletic | 30 | 13 | 5 | 12 | 59 | 40 | +19 | 44 | |
| 9 | Dundonald Bluebell | 30 | 12 | 7 | 11 | 63 | 60 | +3 | 43 | |
| 10 | Tynecastle | 30 | 10 | 7 | 13 | 58 | 61 | −3 | 37 | |
| 11 | Penicuik Athletic | 30 | 10 | 5 | 15 | 51 | 66 | −15 | 35 | |
| 12 | Luncarty | 30 | 9 | 1 | 20 | 46 | 79 | −33 | 28 | |
| 13 | Glenrothes | 30 | 8 | 6 | 16 | 57 | 84 | −27 | 27 | |
| 14 | Inverkeithing Hillfield Swifts (R) | 30 | 7 | 3 | 20 | 41 | 82 | −41 | 24 | Relegation to the First Division |
| 15 | Crossgates Primrose (R) | 30 | 5 | 5 | 20 | 33 | 69 | −36 | 20 | Relegation to the First Division |
| 16 | Kinnoull (R) | 30 | 3 | 3 | 24 | 26 | 97 | −71 | 12 | Relegation to the First Division |
* ↑ Glenrothes deducted 3 points for fielding an ineligible, underage player in their 0–5 defeat against Jeanfield Swifts.

### Results

| Home \ Away | BRX | CRS | DNB | DBL | GLE | HAD | HOB | HUT | IHS | JFS | KIN | LUN | MUS | PEN | SAU | TYN |
| Broxburn Athletic | | 3–2 | 0–3 | 4–3 | 2–1 | 0–0 | 1–1 | 4–3 | 5–2 | 3–1 | 6–0 | 6–0 | 2–2 | 2–0 | 2–1 | 5–0 |
| Crossgates Primrose | 1–4 | | 1–2 | 1–2 | 1–1 | 1–4 | 0–3 | 1–4 | 3–2 | 1–2 | 1–1 | 2–0 | 0–1 | 1–1 | 1–2 | 1–3 |
| Dunbar United | 1–2 | 2–1 | | 4–1 | 2–3 | 2–1 | 1–2 | 1–0 | 4–0 | 1–3 | 4–1 | 5–1 | 0–2 | 2–3 | 1–1 | 2–1 |
| Dundonald Bluebell | 1–3 | 3–0 | 4–0 | | 2–2 | 2–2 | 1–3 | 3–1 | 1–2 | 2–2 | 5–0 | 1–0 | 2–2 | 1–5 | 0–3 | 6–1 |
| Glenrothes | 3–2 | 2–0 | 2–5 | 2–4 | | 0–1 | 0–3 | 0–2 | 4–1 | 0–5 | 1–0 | 2–2 | 1–2 | 6–0 | 2–3 | 4–4 |
| Haddington Athletic | 0–1 | 3–1 | 0–1 | 2–2 | 7–0 | | 3–4 | 0–2 | 3–1 | 1–2 | 5–0 | 4–0 | 1–2 | 3–1 | 2–3 | 0–2 |
| Hill of Beath Hawthorn | 1–2 | 2–3 | 1–3 | 1–0 | 3–3 | 0–3 | | 1–3 | 2–1 | 3–2 | 2–1 | 5–0 | 0–0 | 2–1 | 0–3 | 2–1 |
| Hutchison Vale | 1–2 | 3–0 | 2–3 | 4–2 | 4–1 | 0–1 | 2–1 | | 7–1 | 3–2 | 3–0 | 2–1 | 2–1 | 2–4 | 3–1 | 1–2 |
| Inverkeithing Hillfield Swifts | 3–7 | 1–1 | 2–1 | 2–5 | 4–2 | 0–2 | 1–3 | 1–3 | | 1–3 | 1–2 | 1–2 | 0–4 | 2–0 | 4–1 | 2–2 |
| Jeanfield Swifts | 1–1 | 5–0 | 1–1 | 4–0 | 3–3 | 3–0 | 1–1 | 2–2 | 3–1 | | 4–3 | 0–1 | 3–2 | 2–1 | 4–1 | 5–0 |
| Kinnoull | 0–3 | 0–1 | 0–5 | 1–3 | 1–4 | 2–5 | 1–3 | 0–6 | 0–2 | 1–5 | | 3–2 | 0–4 | 0–0 | 1–2 | 0–0 |
| Luncarty | 1–2 | 5–3 | 4–2 | 2–3 | 4–1 | 1–0 | 2–3 | 6–3 | 3–1 | 0–4 | 3–2 | | 1–2 | 2–3 | 0–5 | 0–1 |
| Musselburgh Athletic | 1–3 | 1–1 | 1–0 | 4–0 | 4–1 | 4–2 | 1–1 | 2–0 | 4–0 | 1–0 | 1–2 | 1–0 | | 6–2 | 2–1 | 2–2 |
| Penicuik Athletic | 0–1 | 1–3 | 0–1 | 1–2 | 5–1 | 1–1 | 2–1 | 3–2 | 1–1 | 1–3 | 5–1 | 4–1 | 1–3 | | 1–2 | 1–1 |
| Sauchie Juniors | 1–1 | 2–0 | 2–7 | 1–1 | 7–2 | 1–2 | 3–2 | 0–1 | 4–0 | 2–1 | 5–1 | 4–2 | 1–0 | 2–3 | | 1–0 |
| Tynecastle | 2–3 | 4–1 | 2–3 | 1–1 | 1–3 | 1–1 | 5–1 | 0–1 | 0–1 | 0–4 | 6–2 | 4–0 | 1–7 | 9–0 | 2–1 | |
* ↑ The original fixture finished 1–0 to Penicuik Athletic, but the match was replayed as Penicuik Athletic made too many substitutions during the match.

## First Division

Dunipace won the league title on 14 May 2024, following a 0–1 defeat for St Andrews United at Newtongrange Star – which meant that Dunipace, who had played all their games, could not be caught.
Relegated from 2022–23 First Division:
* Burntisland Shipyard
* Coldstream
* Kennoway Star Hearts
Promoted to 2023–24 First Division:
* Whitburn
* St Andrews United
* Heriot-Watt University
* Arniston Rangers

### Stadia and locations

| Team | Location | Home ground | Surface | Capacity | Seats | Floodlit |
| Arniston Rangers | Gorebridge | Newbyres Park | Grass | 1,500 | 0 | No |
| Blackburn United | Blackburn | New Murrayfield Park | Artificial | 1,500 | 0 | Yes |
| Camelon Juniors | Camelon | Carmuirs Park | Grass | 2,000 | 100 | Yes |
| Dunipace | Denny | Westfield Park | Artificial | 1,000 | 0 | Yes |
| Heriot-Watt University | Riccarton, Edinburgh | John Brydson Arena | Artificial | 250 | 195 | Yes |
| Kirkcaldy & Dysart | Kirkcaldy | Denfield Park | Grass | 1,200 | 20 | No |
| Leith Athletic | Edinburgh | Meadowbank Stadium | Artificial | 1,748 | 499 | Yes |
| Lochore Welfare | Crosshill | Central Park | Grass | 1,200 | 0 | No |
| Newtongrange Star | Newtongrange | New Victoria Park | Grass | 2,275 | 30 | Yes |
| Oakley United | Oakley | Blairwood Park | Grass | 1,500 | 0 | No |
| Preston Athletic | Prestonpans | Pennypit Park | Grass | 1,500 | 313 | Yes |
| Rosyth | Rosyth | Fleet Grounds | Artificial | 300 | 0 | Yes |
| St Andrews United | St Andrews | Recreation Park | Grass | 766 | 0 | Yes |
| Vale of Leithen | Innerleithen | Victoria Park | Grass | 1,000 | 0 | Yes |
| Whitburn | Whitburn | Central Park | Grass | 2,000 | 38 | No |
| Whitehill Welfare | Rosewell | Ferguson Park | Grass | 2,454 | 192 | Yes |

#### Notes
### League table

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Promotion or relegation |
| 1 | Dunipace (C, P) | 28 | 21 | 3 | 4 | 78 | 29 | +49 | 66 | Promotion to the Premier Division |
| 2 | St Andrews United (P) | 28 | 21 | 0 | 7 | 75 | 38 | +37 | 63 | Promotion to the Premier Division |
| 3 | Whitburn (P) | 28 | 18 | 3 | 7 | 71 | 38 | +33 | 57 | Promotion to the Premier Division |
| 4 | Camelon Juniors | 28 | 17 | 3 | 8 | 72 | 36 | +36 | 54 | |
| 5 | Newtongrange Star | 28 | 16 | 5 | 7 | 64 | 38 | +26 | 53 | |
| 6 | Heriot-Watt University | 28 | 12 | 5 | 11 | 46 | 41 | +5 | 41 | |
| 7 | Preston Athletic | 28 | 12 | 5 | 11 | 49 | 55 | −6 | 41 | |
| 8 | Leith Athletic | 28 | 11 | 7 | 10 | 63 | 45 | +18 | 37 | |
| 9 | Kirkcaldy & Dysart | 28 | 11 | 4 | 13 | 58 | 51 | +7 | 37 | |
| 10 | Blackburn United | 28 | 10 | 6 | 12 | 45 | 56 | −11 | 36 | |
| 11 | Whitehill Welfare | 28 | 10 | 4 | 14 | 53 | 56 | −3 | 34 | |
| 12 | Arniston Rangers | 28 | 10 | 4 | 14 | 51 | 60 | −9 | 34 | |
| 13 | Lochore Welfare | 28 | 9 | 5 | 14 | 41 | 63 | −22 | 32 | |
| 14 | Oakley United (R) | 28 | 3 | 4 | 21 | 29 | 80 | −51 | 13 | Relegation to the Second Division |
| 15 | Vale of Leithen (R) | 28 | 0 | 0 | 28 | 29 | 138 | −109 | −3 | Relegation to the Second Division |
| 16 | Rosyth (R) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Withdrawn; record expunged |
* ↑ Leith Athletic deducted 3 points for fielding an ineligible player in their 1–5 defeat against Preston Athletic.
* ↑ Vale of Leithen deducted 3 points for fielding an ineligible player in their 2–6 defeat against Arniston Rangers.

### Results

| Home \ Away | ARN | BLU | CML | DPC | HER | KDY | LEI | LOW | NGS | OAK | PRE | STA | VOL | WHB | WHI |
| Arniston Rangers | | 0–0 | 2–4 | 1–2 | 1–3 | 0–0 | 3–2 | 0–0 | 1–0 | 0–2 | 3–0 | 3–4 | 2–1 | 0–2 | 4–1 |
| Blackburn United | 5–2 | | 2–1 | 2–1 | 4–2 | 3–1 | 3–2 | 0–3 | 0–4 | 5–1 | 1–1 | 1–2 | 3–1 | 2–3 | 1–3 |
| Camelon Juniors | 3–0 | 3–0 | | 2–4 | 3–2 | 2–0 | 2–1 | 3–0 | 4–1 | 4–0 | 0–1 | 6–1 | 5–0 | 1–2 | 5–3 |
| Dunipace | 5–0 | 4–0 | 2–1 | | 2–1 | 5–2 | 1–1 | 3–1 | 1–0 | 4–2 | 4–1 | 3–0 | 9–0 | 4–2 | 4–2 |
| Heriot-Watt University | 3–1 | 1–1 | 2–0 | 1–2 | | 1–2 | 2–2 | 1–2 | 1–1 | 2–0 | 2–3 | 2–1 | 2–1 | 1–1 | 1–0 |
| Kirkcaldy & Dysart | 5–3 | 3–1 | 2–2 | 4–1 | 0–1 | | 1–2 | 3–2 | 1–1 | 3–1 | 2–3 | 1–3 | 7–0 | 1–2 | 3–4 |
| Leith Athletic | 1–3 | 3–1 | 0–1 | 1–2 | 0–0 | 3–0 | | 6–0 | 2–2 | 4–1 | 2–2 | 1–0 | 5–1 | 2–4 | 4–1 |
| Lochore Welfare | 1–1 | 0–0 | 1–3 | 1–0 | 1–3 | 2–2 | 1–2 | | 3–3 | 3–1 | 2–1 | 2–4 | 4–1 | 0–5 | 2–0 |
| Newtongrange Star | 1–2 | 3–1 | 2–0 | 0–1 | 1–3 | 3–2 | 2–1 | 5–1 | | 2–2 | 2–0 | 1–0 | 5–1 | 4–1 | 3–1 |
| Oakley United | 0–4 | 0–3 | 3–3 | 1–2 | 1–3 | 1–4 | 2–2 | 0–2 | 1–3 | | 0–1 | 0–2 | 2–1 | 0–4 | 1–1 |
| Preston Athletic | 3–5 | 1–1 | 0–7 | 1–1 | 3–2 | 0–1 | 5–1 | 2–1 | 0–1 | 3–1 | | 1–2 | 4–2 | 3–1 | 1–0 |
| Rosyth | | | | | | | | | | | | | | | |
| St Andrews United | 3–2 | 7–0 | 2–1 | 1–0 | 1–0 | 0–3 | 0–1 | 8–1 | 5–4 | 6–0 | 2–1 | | 3–0 | 1–0 | 1–0 |
| Vale of Leithen | 2–6 | 2–4 | 1–3 | 0–8 | 1–2 | 2–4 | 1–10 | 1–4 | 1–6 | 1–4 | 3–4 | 0–7 | | 1–10 | 0–4 |
| Whitburn | 2–1 | 0–0 | 0–1 | 1–1 | 4–1 | 1–0 | 2–0 | 3–1 | 1–2 | 4–1 | 4–2 | 2–3 | 6–3 | | 1–0 |
| Whitehill Welfare | 5–1 | 2–1 | 2–2 | 0–2 | 2–1 | 2–1 | 2–2 | 2–0 | 1–2 | 4–1 | 2–2 | 2–6 | 5–1 | 2–3 | |

## Second Division

The league title went down to the final day of the season, with Bo'ness Athletic and Thornton Hibs separated by one point. Despite a 21-match winning run for Thornton Hibs to end the season, Bo'ness Athletic's 4–0 home victory over Dalkeith Thistle was enough for the honours.
Relegated from 2022–23 Second Division:
* Craigroyston
* Hawick Royal Albert
* Lochgelly Albert
* Syngenta (folded)
Promoted to 2023–24 Second Division:
* Bo'ness Athletic
* Armadale Thistle
* Edinburgh College

### Stadia and locations

| Team | Location | Home ground | Surface | Capacity | Seats | Floodlit |
| Armadale Thistle | Armadale | Volunteer Park | Artificial | 2,000 | 300 | Yes |
| Burntisland Shipyard | Burntisland | Recreation Park | Grass | 1,000 | 0 | Yes |
| Bo'ness Athletic | Bo'ness | Newtown Park | Artificial | 2,000 | 0 | Yes |
| Coldstream | Coldstream | Home Park | Grass | 1,000 | 0 | Yes |
| Dalkeith Thistle | Dalkeith | King's Park | Grass | 1,500 | 0 | Yes |
| Easthouses Lily Miners Welfare | Easthouses | Newbattle Complex | Grass | 1,500 | 100 | Yes |
| Edinburgh College | Edinburgh | Riccarton Campus | Artificial | 250 | 195 | Yes |
| Edinburgh South | Colinton, Edinburgh | Paties Road Stadium | Grass | 1,200 | 200 | No |
| Edinburgh United | Colinton, Edinburgh | Paties Road Stadium | Grass | 1,200 | 200 | No |
| Kennoway Star Hearts | Star | Treaton Park | Grass | 1,000 | 0 | No |
| Newburgh | Newburgh | East Shore Park | Grass | 1,000 | 0 | No |
| Ormiston Primrose | Ormiston | New Recreation Park | Grass | 1,000 | 0 | No |
| Peebles Rovers | Peebles | Whitestone Park | Grass | 1,250 | 250 | No |
| Stirling University reserves | Stenhousemuir | Ochilview Park | Artificial | 3,746 | 626 | Yes |
| Thornton Hibs | Thornton | Memorial Park | Grass | 1,500 | 0 | No |
| Tweedmouth Rangers | Berwick-upon-Tweed | Shielfield Park | Grass | 4,099 | 1,366 | Yes |

#### Notes

* ↑ Edinburgh College ground-shared with Heriot-Watt University.
* ↑ Edinburgh South ground-shared with Edinburgh United.
* ↑ Stirling University reserves ground-shared with Stenhousemuir.
* ↑ Tweedmouth Rangers ground-shared with Berwick Rangers.

### League table

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Promotion or relegation |
| 1 | Bo'ness Athletic (C, P) | 30 | 27 | 0 | 3 | 139 | 32 | +107 | 81 | Promotion to the First Division |
| 2 | Thornton Hibs (P) | 30 | 26 | 2 | 2 | 101 | 27 | +74 | 80 | Promotion to the First Division |
| 3 | Edinburgh South (P) | 30 | 20 | 4 | 6 | 72 | 45 | +27 | 64 | Promotion to the First Division |
| 4 | Armadale Thistle | 30 | 20 | 2 | 8 | 83 | 40 | +43 | 62 | |
| 5 | Edinburgh College | 30 | 15 | 6 | 9 | 68 | 58 | +10 | 51 | |
| 6 | Peebles Rovers | 30 | 14 | 4 | 12 | 58 | 61 | −3 | 46 | |
| 7 | Stirling University reserves | 30 | 15 | 0 | 15 | 64 | 60 | +4 | 45 | |
| 8 | Dalkeith Thistle | 30 | 13 | 2 | 15 | 65 | 60 | +5 | 41 | |
| 9 | Kennoway Star Hearts | 30 | 12 | 4 | 14 | 54 | 60 | −6 | 40 | |
| 10 | Easthouses Lily Miners Welfare | 30 | 12 | 2 | 16 | 62 | 84 | −22 | 38 | |
| 11 | Coldstream | 30 | 11 | 4 | 15 | 47 | 68 | −21 | 37 | |
| 12 | Tweedmouth Rangers | 30 | 10 | 2 | 18 | 47 | 68 | −21 | 32 | |
| 13 | Burntisland Shipyard | 30 | 9 | 5 | 16 | 48 | 71 | −23 | 32 | |
| 14 | Ormiston Primrose (R) | 30 | 6 | 2 | 22 | 48 | 104 | −56 | 20 | Relegation to the Third Division |
| 15 | Newburgh (R) | 30 | 3 | 2 | 25 | 36 | 102 | −66 | 11 | Relegation to the Third Division |
| 16 | Edinburgh United (R) | 30 | 5 | 3 | 22 | 40 | 92 | −52 | 9 | Relegation to the Third Division |
* ↑ Edinburgh United deducted 9 points for fielding an ineligible player in their March 2024 defeats against Edinburgh South, Bo'ness Athletic and Easthouses Lily Miners Welfare.

### Results

| Home \ Away | ARM | BOA | BUR | COL | DAL | ELM | EDC | EDS | EDN | KSH | NEW | ORM | PEE | STI | THO | TWE |
| Armadale Thistle | | 0–2 | 4–0 | 4–3 | 5–0 | 3–2 | 4–0 | 2–2 | 7–0 | 1–3 | 5–3 | 3–2 | 4–2 | 3–1 | 1–2 | 4–0 |
| Bo'ness Athletic | 2–1 | | 5–1 | 7–0 | 4–0 | 5–2 | 7–0 | 4–0 | 6–0 | 7–2 | 10–0 | 6–0 | 5–1 | 4–3 | 1–5 | 4–1 |
| Burntisland Shipyard | 0–3 | 0–3 | | 0–1 | 1–4 | 3–2 | 3–1 | 0–0 | 4–3 | 0–2 | 1–1 | 5–1 | 2–3 | 2–4 | 3–7 | 4–3 |
| Coldstream | 2–1 | 0–5 | 1–0 | | 0–4 | 2–3 | 2–2 | 1–4 | 1–1 | 1–0 | 1–0 | 2–1 | 5–0 | 1–3 | 1–2 | 2–2 |
| Dalkeith Thistle | 0–1 | 3–5 | 4–1 | 3–1 | | 1–2 | 2–2 | 1–2 | 2–0 | 2–3 | 4–2 | 1–3 | 1–2 | 0–1 | 6–0 | 2–1 |
| Easthouses Lily Miners Welfare | 2–6 | 2–5 | 3–3 | 1–3 | 3–2 | | 1–4 | 1–2 | 3–2 | 6–5 | 1–0 | 2–2 | 1–2 | 2–1 | 1–3 | 3–0 |
| Edinburgh College | 2–2 | 1–4 | 4–1 | 3–0 | 2–1 | 4–0 | | 4–2 | 3–2 | 2–2 | 5–2 | 4–3 | 1–1 | 2–3 | 1–2 | 3–1 |
| Edinburgh South | 3–0 | 0–5 | 1–0 | 2–1 | 2–0 | 2–3 | 2–1 | | 4–2 | 1–0 | 2–1 | 4–2 | 3–3 | 1–2 | 2–2 | 3–0 |
| Edinburgh United | 0–3 | 0–7 | 1–2 | 0–2 | 1–2 | 1–3 | 3–3 | 2–3 | | 0–4 | 1–1 | 3–1 | 1–2 | 0–4 | 0–5 | 2–4 |
| Kennoway Star Hearts | 0–2 | 0–2 | 0–0 | 2–1 | 2–2 | 3–2 | 1–2 | 1–3 | 1–3 | | 2–3 | 4–0 | 1–4 | 2–1 | 0–1 | 2–1 |
| Newburgh | 2–4 | 0–9 | 1–3 | 2–1 | 0–1 | 0–2 | 1–3 | 1–2 | 2–6 | 2–4 | | 0–4 | 1–4 | 2–3 | 0–7 | 2–4 |
| Ormiston Primrose | 0–5 | 0–4 | 1–4 | 3–4 | 2–6 | 7–0 | 2–1 | 2–12 | 0–2 | 2–2 | 3–2 | | 0–1 | 0–3 | 0–4 | 0–3 |
| Peebles Rovers | 1–2 | 2–3 | 0–2 | 2–2 | 1–5 | 3–2 | 1–2 | 1–3 | 3–1 | 2–0 | 2–1 | 4–0 | | 4–0 | 1–4 | 1–1 |
| Stirling University reserves | 2–0 | 2–1 | 5–2 | 4–2 | 2–5 | 6–1 | 1–2 | 2–3 | 2–0 | 1–2 | 2–1 | 4–5 | 1–4 | | 1–4 | 0–2 |
| Thornton Hibs | 0–2 | 4–2 | 0–0 | 5–0 | 5–0 | 4–1 | 2–0 | 1–0 | 8–1 | 4–0 | 6–1 | 6–2 | 3–0 | 1–0 | | 2–0 |
| Tweedmouth Rangers | 2–1 | 2–5 | 3–1 | 2–4 | 4–1 | 0–5 | 0–4 | 0–2 | 0–2 | 2–4 | 0–2 | 3–0 | 4–1 | 2–0 | 0–2 | |
* ↑ Match played at Albyn Park, Broxburn.
* ↑ Match played at Meadowbank Stadium.
* ↑ Match played at Albyn Park, Broxburn, due to a waterlogged pitch at Paties Road.
* ↑ Match played at Bayview Stadium, Methil, due to an unplayable pitch at Memorial Park.

## Third Division

West Calder United won the league title with a round of matches to spare, following a 2–1 victory over Harthill Royal on 14 May 2024.
Transferred from Lothian & Edinburgh Amateur League
* Linton Hotspur

### Stadia and locations

| Club | Location | Home Ground | Surface | Capacity | Seats | Floodlit |
| Bathgate Thistle | Bathgate | Creamery Park | Grass | 2,000 | 0 | Yes |
| Edinburgh Community | Warriston, Edinburgh | St Mark's Park | Grass | 1,000 | 0 | No |
| Fauldhouse United | Fauldhouse | Park View | Grass | 1,500 | 80 | No |
| Harthill Royal | Harthill | Gibbshill Park | Grass | 1,800 | 0 | No |
| Hawick Royal Albert | Hawick | Albert Park | Grass | 1,000 | 500 | Yes |
| Linton Hotspur | West Linton | New Moor Road | Grass | 1,000 | 63 | No |
| Livingston United | Livingston | Station Park | Grass | 1,500 | 0 | No |
| Lochgelly Albert | Lochgelly | Gardiners Park | Grass | 1,500 | 0 | No |
| Pumpherston | Pumpherston | Recreation Park | Grass | 1,500 | 0 | No |
| Stoneyburn | Stoneyburn | Beechwood Park | Grass | 1,500 | 0 | No |
| West Calder United | West Calder | Hermand Park | Grass | 1,000 | 0 | No |

### League table

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Promotion |
| 1 | West Calder United (C, P) | 30 | 24 | 2 | 4 | 85 | 25 | +60 | 74 | Promotion to the Second Division |
| 2 | Bathgate Thistle (P) | 30 | 22 | 4 | 4 | 82 | 32 | +50 | 70 | Promotion to the Second Division |
| 3 | Harthill Royal (P) | 30 | 17 | 5 | 8 | 73 | 42 | +31 | 56 | Promotion to the Second Division |
| 4 | Stoneyburn | 30 | 16 | 4 | 10 | 53 | 45 | +8 | 52 | |
| 5 | Pumpherston | 30 | 13 | 7 | 10 | 60 | 51 | +9 | 46 | |
| 6 | Lochgelly Albert | 30 | 14 | 3 | 13 | 71 | 64 | +7 | 45 | |
| 7 | Fauldhouse United | 30 | 13 | 5 | 12 | 51 | 43 | +8 | 42 | |
| 8 | Hawick Royal Albert | 30 | 12 | 2 | 16 | 48 | 62 | −14 | 38 | |
| 9 | Edinburgh Community | 30 | 8 | 4 | 18 | 43 | 73 | −30 | 28 | |
| 10 | Linton Hotspur | 30 | 4 | 0 | 26 | 31 | 94 | −63 | 12 | |
| 11 | Livingston United | 30 | 2 | 4 | 24 | 31 | 97 | −66 | 10 | |
* ↑ Fauldhouse United deducted 2 points for fielding an ineligible player in their game against Edinburgh Community – originally a 3–3 draw, the game was awarded 1–0 to Edinburgh Community.

### Results

| Home \ Away | BAT | ECF | FAU | HAR | HAW | LIN | LIV | LOC | PUM | STO | WCU |
| Bathgate Thistle | | 1–0 | 4–2 | 2–0 | 1–2 | 4–1 | 6–0 | 2–3 | 5–3 | 3–1 | 0–2 |
| | | 4–1 | | 2–0 | 4–1 | | | 3–2 | | 2–1 |
| Edinburgh Community | 2–2 | | 1–1 | 1–2 | 2–1 | 4–2 | 2–2 | 0–2 | 0–4 | 0–1 | 0–5 |
| 1–5 | | 1–0 | | | 4–2 | | | 1–3 | 2–3 | |
| Fauldhouse United | 0–1 | 1–0 | | 1–2 | 2–1 | 2–1 | 3–2 | 3–3 | 2–4 | 0–1 | 2–0 |
| | | | 4–0 | 1–0 | | 3–1 | 3–2 | | | 0–2 |
| Harthill Royal | 0–1 | 4–2 | 2–2 | | 3–0 | 5–0 | 6–0 | 1–2 | 3–2 | 5–1 | 0–0 |
| 2–1 | 2–3 | | | | 3–2 | 2–2 | | | 2–0 | |
| Hawick Royal Albert | 1–4 | 2–1 | 1–0 | 1–4 | | 3–1 | 3–3 | 3–0 | 2–1 | 1–2 | 1–5 |
| | 4–2 | | 1–5 | | | 1–0 | 0–2 | | | 1–5 |
| Linton Hotspur | 0–2 | 2–0 | 0–4 | 0–3 | 1–3 | | 3–0 | 4–5 | 0–7 | 0–4 | 0–3 |
| | | 0–3 | | 2–1 | | | 2–3 | 1–2 | | 1–4 |
| Livingston United | 2–5 | 0–4 | 0–1 | 1–5 | 1–4 | 2–3 | | 0–2 | 2–3 | 0–4 | 2–4 |
| 0–4 | 1–2 | | | | 3–1 | | | 3–1 | 1–4 | |
| Lochgelly Albert | 0–4 | 2–3 | 2–1 | 4–5 | 2–2 | 6–0 | 4–0 | | 4–2 | 1–5 | 2–3 |
| 3–3 | 4–1 | | 1–3 | | | 3–0 | | | 3–1 | |
| Pumpherston | 1–1 | 3–2 | 1–1 | 2–2 | 1–3 | 2–0 | 3–1 | 3–2 | | 0–0 | 3–1 |
| | | 2–2 | 0–0 | 1–0 | | | 1–0 | | | 1–5 |
| Stoneyburn | 0–3 | 1–1 | 1–6 | 1–0 | 2–5 | 1–0 | 2–2 | 4–2 | 2–0 | | 0–2 |
| 0–2 | | 3–0 | | 3–0 | 4–0 | | | 1–1 | | |
| West Calder United | 1–1 | 4–1 | 1–0 | 3–1 | 3–1 | 3–1 | 6–0 | 3–1 | 2–1 | 0–1 | |
| | 7–0 | | 2–1 | | | 3–0 | 2–1 | | 3–0 | |
* ↑ Match initially finished 3–3; later awarded 1–0 to Edinburgh Community as Fauldhouse United fielded an ineligible player.
* ↑ The original fixture finished 3–1 to Edinburgh Community, but the match was replayed as Edinburgh Community made too many substitutions during the match.