Council Compositions 2023

Prior to 2016, Greens are included in other and PC/SNP are combined.
Download council-level data as CSV: 1973-2015 - 2016-2024
AuthorityTotal
Composition  ( Con   Lab   Lib   Green   SNP   PC   Other)
Aberdeen City45
7 12 4 0 20 0 2
Aberdeenshire70
25 0 14 0 20 0 11
Adur29
15 9 0 2 0 0 3
Amber Valley42
8 26 1 5 0 0 2
Angus28
7 1 0 0 13 0 7
Argyll and Bute36
9 1 5 1 12 0 8
Arun54
20 8 14 6 0 0 6
Ashfield35
2 1 0 0 0 0 32
Ashford47
19 11 0 8 0 0 9
Babergh32
7 1 5 10 0 0 9
Barking and Dagenham51
0 50 0 0 0 0 1
Barnet63
21 40 0 0 0 0 2
Barnsley63
2 48 10 0 0 0 3
Basildon42
26 9 0 0 0 0 7
Basingstoke and Deane54
23 10 9 1 0 0 11
Bassetlaw48
8 38 0 0 0 0 2
Bath and North East Somerset59
3 5 41 3 0 0 7
Bedford46
14 14 13 3 0 0 2
Bexley45
32 12 0 0 0 0 1
Birmingham101
22 65 12 2 0 0 0
Blaby36
19 6 9 2 0 0 0
Blackburn with Darwen51
12 39 0 0 0 0 0
Blackpool42
14 28 0 0 0 0 0
Blaenau Gwent33
0 22 0 0 0 0 11
Bolsover37
3 31 0 0 0 0 3
Bolton60
17 25 6 0 0 0 12
Boston30
5 0 1 0 0 0 24
Bournemouth, Christchurch and Poole76
12 11 28 5 0 0 20
Bracknell Forest41
10 22 7 2 0 0 0
Bradford90
16 55 5 8 0 0 6
Braintree49
26 10 0 4 0 0 9
Breckland49
30 12 1 1 0 0 5
Brent57
5 49 3 0 0 0 0
Brentwood37
17 2 17 0 0 0 1
Bridgend51
1 26 0 0 0 2 22
Brighton and Hove54
5 38 0 7 0 0 4
Bristol70
14 24 5 24 0 0 3
Broadland47
21 8 14 4 0 0 0
Bromley58
36 12 5 0 0 0 5
Bromsgrove31
11 8 5 0 0 0 7
Broxbourne30
27 3 0 0 0 0 0
Broxtowe44
10 26 5 0 0 0 3
Buckinghamshire147
112 6 16 1 0 0 12
Burnley45
7 21 7 7 0 0 3
Bury51
11 31 0 0 0 0 9
Caerphilly69
0 45 0 0 0 17 7
Calderdale51
15 27 6 2 0 0 1
Cambridge42
0 27 10 4 0 0 1
Cambridgeshire61
25 8 22 0 0 0 6
Camden55
3 45 5 1 0 0 1
Cannock Chase41
18 17 1 5 0 0 0
Canterbury39
8 18 9 4 0 0 0
Cardiff79
11 54 10 0 0 2 2
Carmarthenshire75
0 23 0 0 0 38 14
Castle Point41
8 0 0 0 0 0 33
Central Bedfordshire63
20 5 10 1 0 0 27
Ceredigion38
0 0 7 0 0 21 10
Charnwood52
23 20 0 8 0 0 1
Chelmsford57
21 0 33 0 0 0 3
Cheltenham40
5 0 31 2 0 0 2
Cherwell48
20 12 10 3 0 0 3
Cheshire East82
32 30 2 0 0 0 18
Cheshire West and Chester70
23 39 1 2 0 0 5
Chesterfield40
0 28 12 0 0 0 0
Chichester36
5 0 25 2 0 0 4
Chorley42
5 37 0 0 0 0 0
City of London Corporation125
0 5 0 0 0 0 120
Clackmannanshire18
3 5 0 1 8 0 1
Colchester51
19 15 15 2 0 0 0
Conwy55
10 10 4 1 0 8 22
Cornwall87
46 5 13 1 0 0 22
Cotswold34
9 0 22 2 0 0 1
Coventry54
15 35 0 2 0 0 2
Crawley36
16 20 0 0 0 0 0
Croydon70
33 34 1 2 0 0 0
Cumberland46
7 29 5 2 0 0 3
Dacorum51
17 3 28 0 0 0 3
Darlington50
15 24 3 7 0 0 1
Dartford42
29 11 0 1 0 0 1
Denbighshire48
7 17 0 2 0 8 14
Derby51
15 23 4 0 0 0 9
Derbyshire64
42 15 4 1 0 0 2
Derbyshire Dales34
11 6 12 4 0 0 1
Devon60
38 6 9 2 0 0 5
Doncaster55
11 40 0 0 0 0 4
Dorset82
43 1 27 5 0 0 6
Dover32
14 17 0 0 0 0 1
Dudley72
43 27 0 0 0 0 2
Dumfries and Galloway43
17 8 1 0 11 0 6
Dundee City29
1 9 4 0 15 0 0
Durham126
22 55 17 1 0 0 31
Ealing70
5 59 6 0 0 0 0
East Ayrshire32
4 10 0 0 14 0 4
East Cambridgeshire28
15 0 13 0 0 0 0
East Devon60
15 2 18 2 0 0 23
East Dunbartonshire22
2 4 6 0 8 0 2
East Hampshire43
19 1 14 2 0 0 7
East Hertfordshire50
16 5 10 18 0 0 1
East Lindsey55
26 6 1 1 0 0 21
East Lothian22
4 10 0 1 7 0 0
East Renfrewshire18
5 5 0 0 5 0 3
East Riding of Yorkshire67
28 4 22 0 0 0 13
East Staffordshire37
15 21 0 0 0 0 1
East Suffolk55
14 12 11 17 0 0 1
East Sussex50
26 5 11 4 0 0 4
Eastbourne27
8 0 19 0 0 0 0
Eastleigh39
1 0 35 0 0 0 3
Edinburgh63
9 12 13 10 18 0 1
Elmbridge48
12 0 19 0 0 0 17
Enfield63
25 37 0 0 0 0 1
Epping Forest58
34 0 6 2 0 0 16
Epsom and Ewell35
2 3 4 0 0 0 26
Erewash47
16 28 1 1 0 0 1
Essex75
51 4 8 1 0 0 11
Exeter39
4 24 3 6 0 0 2
Falkirk30
4 9 0 0 12 0 5
Fareham31
25 0 4 0 0 0 2
Fenland43
35 0 2 0 0 0 6
Fife75
8 20 13 0 34 0 0
Flintshire67
2 31 4 0 0 0 30
Folkestone and Hythe30
5 10 2 11 0 0 2
Forest of Dean38
4 5 3 15 0 0 11
Fylde37
19 2 2 0 0 0 14
Gateshead66
0 49 17 0 0 0 0
Gedling41
9 28 4 0 0 0 0
Glasgow City85
2 35 0 10 37 0 1
Gloucester39
21 3 13 0 0 0 2
Gloucestershire53
26 5 16 4 0 0 2
Gosport28
10 2 16 0 0 0 0
Gravesham39
17 22 0 0 0 0 0
Great Yarmouth39
19 18 0 0 0 0 2
Greenwich55
3 52 0 0 0 0 0
Guildford48
10 3 25 0 0 0 10
Gwynedd69
0 1 1 0 0 45 22
Hackney57
5 46 0 2 0 0 4
Halton54
2 49 3 0 0 0 0
Hammersmith and Fulham50
10 40 0 0 0 0 0
Hampshire78
53 3 17 0 0 0 5
Harborough34
15 3 13 3 0 0 0
Haringey57
0 48 7 0 0 0 2
Harlow33
21 12 0 0 0 0 0
Harrow55
31 23 0 0 0 0 1
Hart33
11 0 11 0 0 0 11
Hartlepool36
12 18 0 0 0 0 6
Hastings32
11 15 0 4 0 0 2
Havant38
30 4 2 1 0 0 1
Havering55
16 9 0 0 0 0 30
Herefordshire53
21 1 12 9 0 0 10
Hertfordshire78
46 7 23 1 0 0 1
Hertsmere39
16 14 9 0 0 0 0
High Peak43
10 29 1 2 0 0 1
Highland74
9 2 15 4 21 0 23
Hillingdon53
30 22 0 0 0 0 1
Hinckley and Bosworth34
9 2 22 0 0 0 1
Horsham48
11 0 28 8 0 0 1
Hounslow62
9 51 0 0 0 0 2
Huntingdonshire52
21 4 11 1 0 0 15
Hyndburn35
16 16 0 2 0 0 1
Inverclyde22
2 9 0 0 8 0 3
Ipswich48
9 33 3 0 0 0 3
Isle of Anglesey35
0 3 1 0 0 21 10
Isle of Wight39
17 1 2 2 0 0 17
Isles of Scilly16
0 0 0 0 0 0 16
Islington51
0 47 0 3 0 0 1
Kensington and Chelsea50
36 11 2 0 0 0 1
Kent81
60 7 5 5 0 0 4
King's Lynn and West Norfolk55
21 10 3 2 0 0 19
Kingston upon Hull57
0 25 32 0 0 0 0
Kingston upon Thames48
3 0 43 0 0 0 2
Kirklees69
18 37 8 3 0 0 3
Knowsley45
0 31 3 7 0 0 4
Lambeth63
0 58 3 2 0 0 0
Lancashire84
48 31 2 2 0 0 1
Lancaster61
5 24 7 21 0 0 4
Leeds99
17 61 6 3 0 0 12
Leicester54
16 32 3 3 0 0 0
Leicestershire55
42 4 9 0 0 0 0
Lewes41
0 9 15 16 0 0 1
Lewisham54
0 54 0 0 0 0 0
Lichfield47
23 17 7 0 0 0 0
Lincoln33
9 20 4 0 0 0 0
Lincolnshire70
53 4 3 0 0 0 10
Liverpool85
0 61 15 3 0 0 6
Luton48
2 30 15 0 0 0 1
Maidstone55
24 6 12 3 0 0 10
Maldon31
10 1 6 0 0 0 14
Malvern Hills31
7 0 3 7 0 0 14
Manchester96
0 88 4 4 0 0 0
Mansfield36
5 25 0 0 0 0 6
Medway59
21 31 0 0 0 0 7
Melton28
11 5 1 1 0 0 10
Merthyr Tydfil30
0 14 0 0 0 0 16
Merton57
7 31 17 0 0 0 2
Mid Devon42
4 0 33 3 0 0 2
Mid Suffolk34
6 0 4 24 0 0 0
Mid Sussex48
18 1 20 4 0 0 5
Middlesbrough46
4 25 2 0 0 0 15
Midlothian18
3 7 0 0 8 0 0
Milton Keynes57
17 25 15 0 0 0 0
Mole Valley39
3 0 30 0 0 0 6
Monmouthshire46
18 22 0 1 0 0 5
Moray26
9 3 0 1 9 0 4
Na h-Eileanan Siar29
1 0 0 0 6 0 22
Neath Port Talbot60
0 27 2 1 0 12 18
New Forest48
26 1 14 3 0 0 4
Newark and Sherwood39
14 11 3 0 0 0 11
Newcastle upon Tyne78
0 47 23 0 0 0 8
Newcastle-under-Lyme44
25 19 0 0 0 0 0
Newham66
0 63 0 2 0 0 1
Newport51
7 35 1 1 0 0 7
Norfolk84
54 12 10 3 0 0 5
North Ayrshire33
10 9 0 0 12 0 2
North Devon42
7 0 22 3 0 0 10
North East Derbyshire53
19 28 3 1 0 0 2
North East Lincolnshire42
27 9 3 0 0 0 3
North Hertfordshire49
15 19 15 0 0 0 0
North Kesteven43
25 2 0 0 0 0 16
North Lanarkshire77
5 32 0 1 33 0 6
North Lincolnshire43
27 16 0 0 0 0 0
North Norfolk40
13 0 25 0 0 0 2
North Northamptonshire78
54 16 1 3 0 0 4
North Somerset50
13 10 9 7 0 0 11
North Tyneside60
6 51 0 0 0 0 3
North Warwickshire35
17 15 0 0 0 0 3
North West Leicestershire38
12 17 5 0 0 0 4
North Yorkshire90
46 11 12 5 0 0 16
Northumberland67
33 20 4 2 0 0 8
Norwich39
0 23 3 13 0 0 0
Nottingham55
0 51 0 0 0 0 4
Nottinghamshire66
34 15 1 0 0 0 16
Nuneaton and Bedworth34
27 5 0 2 0 0 0
Oadby and Wigston26
7 0 18 0 0 0 1
Oldham60
11 30 10 0 0 0 9
Orkney Islands21
0 0 0 2 0 0 19
Oxford48
0 32 9 6 0 0 1
Oxfordshire63
20 14 21 3 0 0 5
Pembrokeshire60
10 10 2 0 0 2 36
Pendle33
14 2 7 0 0 0 10
Perth and Kinross40
14 2 4 0 16 0 4
Peterborough60
30 14 7 2 0 0 7
Plymouth57
18 31 0 2 0 0 6
Portsmouth42
8 7 18 0 0 0 9
Powys68
14 9 20 1 0 3 21
Preston48
10 31 7 0 0 0 0
Reading48
5 32 3 7 0 0 1
Redbridge63
5 56 0 0 0 0 2
Redcar and Cleveland59
12 23 11 0 0 0 13
Redditch29
16 13 0 0 0 0 0
Reigate and Banstead45
23 1 3 11 0 0 7
Renfrewshire43
5 13 1 0 21 0 3
Rhondda Cynon Taf75
2 59 0 0 0 8 6
Ribble Valley40
18 7 8 2 0 0 5
Richmond upon Thames54
1 0 48 5 0 0 0
Rochdale60
9 46 3 0 0 0 2
Rochford39
14 0 9 1 0 0 15
Rossendale36
9 22 0 1 0 0 4
Rother38
10 8 7 3 0 0 10
Rotherham59
17 31 4 0 0 0 7
Rugby42
21 12 9 0 0 0 0
Runnymede41
19 4 4 2 0 0 12
Rushcliffe44
25 9 1 2 0 0 7
Rushmoor39
23 14 2 0 0 0 0
Rutland27
6 2 11 1 0 0 7
Salford60
8 49 2 0 0 0 1
Sandwell72
12 58 0 0 0 0 2
Scottish Borders34
14 0 3 1 9 0 7
Sefton66
5 49 8 0 0 0 4
Sevenoaks54
33 0 14 4 0 0 3
Sheffield84
1 38 29 14 0 0 2
Shetland23
0 1 0 1 1 0 20
Shropshire74
41 10 15 4 0 0 4
Slough42
21 18 3 0 0 0 0
Solihull51
29 0 6 12 0 0 4
Somerset110
36 5 60 4 0 0 5
South Ayrshire28
10 5 0 0 9 0 4
South Cambridgeshire45
8 0 37 0 0 0 0
South Derbyshire36
9 23 0 0 0 0 4
South Gloucestershire61
23 17 20 0 0 0 1
South Hams31
7 1 19 3 0 0 1
South Holland37
19 0 0 0 0 0 18
South Kesteven56
22 2 4 4 0 0 24
South Lanarkshire64
7 24 3 1 27 0 2
South Norfolk46
24 9 11 0 0 0 2
South Oxfordshire36
1 3 21 8 0 0 3
South Ribble50
15 29 5 0 0 0 1
South Staffordshire42
29 2 4 2 0 0 5
South Tyneside54
1 38 0 9 0 0 6
Southampton51
8 35 3 1 0 0 4
Southend-on-Sea51
22 17 4 1 0 0 7
Southwark63
0 52 11 0 0 0 0
Spelthorne39
12 7 10 3 0 0 7
St Albans56
4 0 48 2 0 0 2
St. Helens48
2 29 4 6 0 0 7
Stafford40
14 13 1 5 0 0 7
Staffordshire62
55 5 0 0 0 0 2
Staffordshire Moorlands56
22 24 1 1 0 0 8
Stevenage39
9 24 6 0 0 0 0
Stirling23
8 5 0 1 7 0 2
Stockport63
0 24 30 3 0 0 6
Stockton-on-Tees56
22 22 0 0 0 0 12
Stoke-on-Trent44
14 29 0 0 0 0 1
Stratford-on-Avon41
12 0 25 3 0 0 1
Stroud51
17 6 3 14 0 0 11
Suffolk75
54 4 4 9 0 0 4
Sunderland75
13 46 15 0 0 0 1
Surrey81
45 2 15 2 0 0 17
Surrey Heath35
6 2 21 0 0 0 6
Sutton55
20 3 29 0 0 0 3
Swale47
11 15 5 3 0 0 13
Swansea75
7 45 11 1 0 0 11
Swindon57
22 33 1 0 0 0 1
Tameside57
6 51 0 0 0 0 0
Tamworth30
14 10 0 0 0 0 6
Tandridge42
9 0 11 0 0 0 22
Teignbridge47
9 0 26 0 0 0 12
Telford and Wrekin54
8 38 6 0 0 0 2
Tendring48
19 8 4 0 0 0 17
Test Valley43
26 0 17 0 0 0 0
Tewkesbury38
9 0 16 4 0 0 9
Thanet56
16 31 0 5 0 0 4
Three Rivers39
10 3 21 2 0 0 3
Thurrock49
24 19 0 0 0 0 6
Tonbridge and Malling44
20 3 11 8 0 0 2
Torbay36
19 0 15 0 0 0 2
Torfaen40
0 29 0 0 0 0 11
Torridge36
6 2 8 4 0 0 16
Tower Hamlets45
1 19 0 1 0 0 24
Trafford63
10 41 6 6 0 0 0
Tunbridge Wells48
11 8 17 0 0 0 12
Uttlesford39
11 0 4 0 0 0 24
Vale of Glamorgan54
13 25 0 0 0 8 8
Vale of White Horse38
0 0 34 4 0 0 0
Wakefield63
7 49 3 0 0 0 4
Walsall60
36 20 0 0 0 0 4
Waltham Forest60
13 46 0 0 0 0 1
Wandsworth58
22 35 0 0 0 0 1
Warrington58
10 36 8 0 0 0 4
Warwick44
6 10 10 14 0 0 4
Warwickshire57
42 6 5 3 0 0 1
Watford36
0 9 27 0 0 0 0
Waverley50
10 2 22 1 0 0 15
Wealden45
9 2 13 11 0 0 10
Welwyn Hatfield48
22 12 14 0 0 0 0
West Berkshire43
11 1 29 2 0 0 0
West Devon31
11 1 2 5 0 0 12
West Dunbartonshire22
0 11 0 0 8 0 3
West Lancashire45
15 26 0 0 0 0 4
West Lindsey36
14 0 19 0 0 0 3
West Lothian33
4 12 1 0 15 0 1
West Northamptonshire93
63 20 5 0 0 0 5
West Oxfordshire49
17 10 18 3 0 0 1
West Suffolk64
26 17 1 1 0 0 19
West Sussex70
46 9 11 1 0 0 3
Westminster54
23 31 0 0 0 0 0
Westmorland and Furness65
11 14 36 1 0 0 3
Wigan75
2 64 0 0 0 0 9
Wiltshire98
59 3 27 0 0 0 9
Winchester45
12 0 30 2 0 0 1
Windsor and Maidenhead41
7 0 22 0 0 0 12
Wirral66
17 30 6 13 0 0 0
Woking30
4 2 20 0 0 0 4
Wokingham54
22 5 26 0 0 0 1
Wolverhampton60
13 46 0 0 0 0 1
Worcester35
8 13 4 10 0 0 0
Worcestershire57
44 4 3 3 0 0 3
Worthing37
11 21 1 1 0 0 3
Wrexham56
9 14 0 0 0 9 24
Wychavon43
29 1 7 6 0 0 0
Wyre50
30 15 0 0 0 0 5
Wyre Forest33
20 4 2 1 0 0 6
York47
3 24 19 0 0 0 1

Email Me    Creative Commons Licence: Attribution ShareAlike (CSV downloads are public domain)     About This Site
Provided by Lawson Data Services Ltd. (Company No. 15322169)