Council Compositions 2024

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 11 4 0 19 0 4
Aberdeenshire70
24 0 14 0 20 0 12
Adur29
8 17 0 2 0 0 2
Amber Valley42
8 26 1 5 0 0 2
Angus28
8 1 0 0 13 0 6
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
17 11 0 8 0 0 11
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
1 48 11 0 0 0 3
Basildon42
13 18 0 0 0 0 11
Basingstoke and Deane54
16 11 11 2 0 0 14
Bassetlaw48
8 38 0 0 0 0 2
Bath and North East Somerset59
3 7 41 3 0 0 5
Bedford46
14 13 13 3 0 0 3
Bexley45
32 12 0 0 0 0 1
Birmingham101
20 64 12 2 0 0 3
Blaby36
19 6 9 2 0 0 0
Blackburn with Darwen51
9 29 0 0 0 0 13
Blackpool42
14 28 0 0 0 0 0
Blaenau Gwent33
0 21 0 0 0 0 12
Bolsover37
3 31 0 0 0 0 3
Bolton60
15 26 6 1 0 0 12
Boston30
5 0 1 0 0 0 24
Bournemouth, Christchurch and Poole76
12 10 28 6 0 0 20
Bracknell Forest41
10 22 7 2 0 0 0
Bradford90
13 49 5 10 0 0 13
Braintree49
26 10 0 4 0 0 9
Breckland49
31 12 0 1 0 0 5
Brent57
5 49 3 0 0 0 0
Brentwood39
19 3 17 0 0 0 0
Bridgend51
1 27 0 0 0 1 22
Brighton and Hove54
5 38 0 7 0 0 4
Bristol70
7 21 8 34 0 0 0
Broadland47
22 7 14 4 0 0 0
Bromley58
35 12 5 0 0 0 6
Bromsgrove31
11 8 5 0 0 0 7
Broxbourne30
27 3 0 0 0 0 0
Broxtowe44
10 26 3 0 0 0 5
Buckinghamshire147
111 6 17 1 0 0 12
Burnley45
8 15 7 5 0 0 10
Bury51
10 32 0 0 0 0 9
Caerphilly69
0 45 0 0 0 18 6
Calderdale51
11 29 6 3 0 0 2
Cambridge42
1 25 10 5 0 0 1
Cambridgeshire61
22 9 23 0 0 0 7
Camden55
3 46 5 1 0 0 0
Cannock Chase36
10 21 0 5 0 0 0
Canterbury39
8 18 9 4 0 0 0
Cardiff79
11 55 10 0 0 2 1
Carmarthenshire75
0 20 0 0 0 38 17
Castle Point39
0 0 0 0 0 0 39
Central Bedfordshire63
20 5 9 1 0 0 28
Ceredigion38
0 0 7 0 0 21 10
Charnwood52
23 20 0 8 0 0 1
Chelmsford57
19 0 33 0 0 0 5
Cheltenham40
0 0 36 3 0 0 1
Cherwell48
11 13 17 4 0 0 3
Cheshire East82
33 29 2 0 0 0 18
Cheshire West and Chester70
23 37 1 2 0 0 7
Chesterfield40
0 27 12 0 0 0 1
Chichester36
5 0 25 2 0 0 4
Chorley42
3 39 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 14 15 3 0 0 0
Conwy55
10 9 4 1 0 8 23
Cornwall87
45 5 13 1 0 0 23
Cotswold34
9 0 21 2 0 0 2
Coventry54
12 39 0 2 0 0 1
Crawley36
11 25 0 0 0 0 0
Croydon70
33 34 1 2 0 0 0
Cumberland46
8 28 4 2 0 0 4
Dacorum51
17 3 28 0 0 0 3
Darlington50
14 24 3 7 0 0 2
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
41 16 4 1 0 0 2
Derbyshire Dales34
10 7 12 4 0 0 1
Devon60
38 6 9 2 0 0 5
Doncaster55
11 41 0 0 0 0 3
Dorset82
30 2 42 4 0 0 4
Dover32
14 17 0 0 0 0 1
Dudley72
34 34 3 0 0 0 1
Dumfries and Galloway43
17 8 1 0 11 0 6
Dundee City29
1 9 4 0 15 0 0
Durham126
22 56 17 1 0 0 30
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 17 0 0 2
East Lindsey55
26 6 1 1 0 0 21
East Lothian22
4 10 0 1 6 0 1
East Renfrewshire18
5 5 0 0 5 0 3
East Riding of Yorkshire67
28 5 21 0 0 0 13
East Staffordshire37
15 21 0 0 0 0 1
East Suffolk55
15 12 11 16 0 0 1
East Sussex50
25 5 12 5 0 0 3
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
9 0 23 0 0 0 16
Enfield63
25 37 0 0 0 0 1
Epping Forest54
29 1 7 1 0 0 16
Epsom and Ewell35
2 3 4 0 0 0 26
Erewash47
16 28 1 1 0 0 1
Essex75
51 5 8 1 0 0 10
Exeter39
3 24 4 7 0 0 1
Falkirk30
4 9 0 0 11 0 6
Fareham32
22 1 8 0 0 0 1
Fenland43
35 0 2 0 0 0 6
Fife75
8 20 13 0 34 0 0
Flintshire67
1 32 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 48 18 0 0 0 0
Gedling41
9 26 4 0 0 0 2
Glasgow City85
2 34 0 11 37 0 1
Gloucester39
11 7 17 0 0 0 4
Gloucestershire53
27 5 16 4 0 0 1
Gosport28
10 2 15 0 0 0 1
Gravesham39
17 22 0 0 0 0 0
Great Yarmouth39
19 18 0 0 0 0 2
Greenwich55
2 51 0 0 0 0 2
Guildford48
10 3 25 0 0 0 10
Gwynedd69
0 1 1 0 0 46 21
Hackney57
6 44 0 2 0 0 5
Halton54
1 50 3 0 0 0 0
Hammersmith and Fulham50
10 39 0 0 0 0 1
Hampshire78
52 3 18 1 0 0 4
Harborough34
15 3 13 3 0 0 0
Haringey57
0 46 7 0 0 0 4
Harlow33
17 16 0 0 0 0 0
Harrow55
31 23 0 0 0 0 1
Hart33
9 0 12 0 0 0 12
Hartlepool36
6 24 0 0 0 0 6
Hastings32
5 8 0 12 0 0 7
Havant36
13 10 7 4 0 0 2
Havering55
16 9 0 0 0 0 30
Herefordshire53
21 1 12 9 0 0 10
Hertfordshire78
45 7 24 1 0 0 1
Hertsmere39
16 14 9 0 0 0 0
High Peak43
10 29 1 2 0 0 1
Highland74
8 2 14 4 21 0 25
Hillingdon53
30 22 0 0 0 0 1
Hinckley and Bosworth34
9 2 22 0 0 0 1
Horsham48
12 0 27 9 0 0 0
Hounslow62
9 51 0 0 0 0 2
Huntingdonshire52
20 4 12 1 0 0 15
Hyndburn35
11 22 0 1 0 0 1
Inverclyde22
2 9 0 0 8 0 3
Ipswich48
7 38 3 0 0 0 0
Isle of Anglesey35
0 3 1 0 0 21 10
Isle of Wight39
16 1 4 2 0 0 16
Isles of Scilly16
0 0 0 0 0 0 16
Islington51
0 46 0 3 0 0 2
Kensington and Chelsea50
36 8 2 1 0 0 3
Kent81
59 7 6 5 0 0 4
King's Lynn and West Norfolk55
21 10 3 2 0 0 19
Kingston upon Hull57
0 26 31 0 0 0 0
Kingston upon Thames48
2 0 43 0 0 0 3
Kirklees69
15 31 10 4 0 0 9
Knowsley45
0 31 3 7 0 0 4
Lambeth63
0 58 3 2 0 0 0
Lancashire84
48 28 2 2 0 0 4
Lancaster61
5 24 7 21 0 0 4
Leeds99
14 61 6 4 0 0 14
Leicester54
16 31 3 3 0 0 1
Leicestershire55
41 4 10 0 0 0 0
Lewes41
0 9 15 16 0 0 1
Lewisham54
0 54 0 0 0 0 0
Lichfield47
21 17 7 0 0 0 2
Lincoln33
5 23 5 0 0 0 0
Lincolnshire70
54 4 3 0 0 0 9
Liverpool85
0 61 15 3 0 0 6
Luton48
3 29 15 0 0 0 1
Maidstone49
13 6 12 10 0 0 8
Maldon31
10 1 6 0 0 0 14
Malvern Hills31
7 0 3 7 0 0 14
Manchester96
0 87 4 3 0 0 2
Mansfield36
4 25 0 0 0 0 7
Medway59
21 31 0 0 0 0 7
Melton28
10 6 1 0 0 0 11
Merthyr Tydfil30
0 13 0 0 0 0 17
Merton57
7 30 17 0 0 0 3
Mid Devon42
3 0 34 3 0 0 2
Mid Suffolk34
6 0 4 24 0 0 0
Mid Sussex48
18 1 20 4 0 0 5
Middlesbrough46
4 24 2 0 0 0 16
Midlothian18
3 7 0 0 8 0 0
Milton Keynes57
9 30 18 0 0 0 0
Mole Valley39
2 0 31 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 11 19
New Forest48
26 1 14 3 0 0 4
Newark and Sherwood39
14 11 3 0 0 0 11
Newcastle upon Tyne78
1 45 23 2 0 0 7
Newcastle-under-Lyme44
25 18 0 0 0 0 1
Newham66
0 60 0 2 0 0 4
Newport51
7 35 1 1 0 0 7
Norfolk84
54 10 11 4 0 0 5
North Ayrshire33
9 9 0 0 12 0 3
North Devon42
7 0 22 3 0 0 10
North East Derbyshire53
19 28 3 1 0 0 2
North East Lincolnshire42
19 15 3 0 0 0 5
North Hertfordshire51
7 25 19 0 0 0 0
North Kesteven43
24 2 1 0 0 0 16
North Lanarkshire77
5 34 0 1 24 0 13
North Lincolnshire43
26 15 0 0 0 0 2
North Norfolk40
13 0 25 0 0 0 2
North Northamptonshire78
53 17 1 3 0 0 4
North Somerset50
13 10 9 8 0 0 10
North Tyneside60
8 51 0 0 0 0 1
North Warwickshire35
17 15 0 0 0 0 3
North West Leicestershire38
12 17 5 0 0 0 4
North Yorkshire90
44 11 13 4 0 0 18
Northumberland67
33 19 4 2 0 0 9
Norwich39
0 19 3 15 0 0 2
Nottingham55
0 50 0 0 0 0 5
Nottinghamshire66
34 15 0 0 0 0 17
Nuneaton and Bedworth38
16 20 0 2 0 0 0
Oadby and Wigston26
7 0 18 0 0 0 1
Oldham60
8 27 9 0 0 0 16
Orkney Islands21
0 0 0 2 0 0 19
Oxford48
0 20 9 8 0 0 11
Oxfordshire63
20 14 19 3 0 0 7
Pembrokeshire60
11 10 2 0 0 2 35
Pendle33
13 0 8 0 0 0 12
Perth and Kinross40
14 2 4 0 16 0 4
Peterborough60
11 19 8 4 0 0 18
Plymouth57
7 42 0 2 0 0 6
Portsmouth42
4 9 19 0 0 0 10
Powys68
14 9 22 1 0 3 19
Preston48
6 30 12 0 0 0 0
Reading48
4 32 3 8 0 0 1
Redbridge63
5 55 0 0 0 0 3
Redcar and Cleveland59
13 23 11 0 0 0 12
Redditch27
5 21 0 1 0 0 0
Reigate and Banstead45
18 2 4 13 0 0 8
Renfrewshire43
5 13 1 0 21 0 3
Rhondda Cynon Taf75
2 59 0 0 0 8 6
Ribble Valley40
17 8 5 2 0 0 8
Richmond upon Thames54
0 0 49 5 0 0 0
Rochdale60
9 44 3 0 0 0 4
Rochford39
10 0 11 1 0 0 17
Rossendale30
5 20 0 3 0 0 2
Rother38
10 8 7 3 0 0 10
Rotherham59
13 33 3 0 0 0 10
Rugby42
17 15 10 0 0 0 0
Runnymede41
13 8 6 3 0 0 11
Rushcliffe44
25 9 1 2 0 0 7
Rushmoor39
15 21 3 0 0 0 0
Rutland27
6 2 11 1 0 0 7
Salford60
7 50 2 0 0 0 1
Sandwell72
5 64 0 0 0 0 3
Scottish Borders34
15 0 3 1 8 0 7
Sefton66
4 50 9 1 0 0 2
Sevenoaks54
33 0 14 4 0 0 3
Sheffield84
0 36 27 14 0 0 7
Shetland23
0 1 0 1 1 0 20
Shropshire74
39 10 17 4 0 0 4
Slough42
21 18 3 0 0 0 0
Solihull51
30 1 8 10 0 0 2
Somerset110
34 5 61 5 0 0 5
South Ayrshire28
11 5 0 0 6 0 6
South Cambridgeshire45
8 0 36 0 0 0 1
South Derbyshire36
10 23 2 0 0 0 1
South Gloucestershire61
23 17 20 0 0 0 1
South Hams31
7 1 19 3 0 0 1
South Holland37
20 0 0 0 0 0 17
South Kesteven56
22 2 4 4 0 0 24
South Lanarkshire64
7 25 3 1 25 0 3
South Norfolk46
23 9 11 1 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
0 28 0 11 0 0 15
Southampton51
10 36 4 1 0 0 0
Southend-on-Sea51
18 20 4 2 0 0 7
Southwark63
0 52 11 0 0 0 0
Spelthorne39
13 7 10 2 0 0 7
St Albans56
3 2 47 3 0 0 1
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
1 32 6 0 0 0 0
Stirling23
8 5 0 1 7 0 2
Stockport63
0 22 31 3 0 0 7
Stockton-on-Tees56
26 22 0 0 0 0 8
Stoke-on-Trent44
14 29 0 0 0 0 1
Stratford-on-Avon41
12 0 25 3 0 0 1
Stroud51
7 20 2 22 0 0 0
Suffolk75
53 5 5 9 0 0 3
Sunderland75
10 53 12 0 0 0 0
Surrey81
45 2 16 2 0 0 16
Surrey Heath35
6 2 24 0 0 0 3
Sutton55
21 2 29 0 0 0 3
Swale47
10 16 5 3 0 0 13
Swansea75
7 45 11 1 0 0 11
Swindon57
15 41 1 0 0 0 0
Tameside57
7 48 0 0 0 0 2
Tamworth30
8 18 0 0 0 0 4
Tandridge43
7 0 11 0 0 0 25
Teignbridge47
9 0 26 0 0 0 12
Telford and Wrekin54
8 37 6 0 0 0 3
Tendring48
15 7 4 0 0 0 22
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
11 3 21 3 0 0 1
Thurrock49
13 27 0 0 0 0 9
Tonbridge and Malling44
20 3 11 8 0 0 2
Torbay36
17 0 15 0 0 0 4
Torfaen40
0 29 0 0 0 0 11
Torridge36
6 2 9 3 0 0 16
Tower Hamlets45
1 18 0 1 0 0 25
Trafford63
8 43 6 6 0 0 0
Tunbridge Wells39
7 5 22 0 0 0 5
Uttlesford39
11 0 4 0 0 0 24
Vale of Glamorgan54
13 25 0 0 0 8 8
Vale of White Horse38
0 0 32 4 0 0 2
Wakefield63
3 56 3 0 0 0 1
Walsall60
36 14 0 0 0 0 10
Waltham Forest60
13 46 0 0 0 0 1
Wandsworth58
23 34 0 0 0 0 1
Warrington58
1 42 12 0 0 0 3
Warwick44
6 10 10 14 0 0 4
Warwickshire57
42 6 5 3 0 0 1
Watford36
0 6 30 0 0 0 0
Waverley50
10 2 22 1 0 0 15
Wealden45
9 2 13 11 0 0 10
Welwyn Hatfield48
12 20 16 0 0 0 0
West Berkshire43
11 1 28 2 0 0 1
West Devon31
11 1 4 4 0 0 11
West Dunbartonshire22
0 11 0 0 8 0 3
West Lancashire45
14 26 0 0 0 0 5
West Lindsey36
14 0 19 0 0 0 3
West Lothian33
4 11 1 0 15 0 2
West Northamptonshire93
61 20 6 0 0 0 6
West Oxfordshire49
13 11 21 4 0 0 0
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 15 36 1 0 0 2
Wigan75
1 64 0 0 0 0 10
Wiltshire98
59 3 29 0 0 0 7
Winchester45
8 0 33 3 0 0 1
Windsor and Maidenhead41
7 0 22 0 0 0 12
Wirral66
17 29 6 14 0 0 0
Woking30
0 1 24 0 0 0 5
Wokingham54
19 8 27 0 0 0 0
Wolverhampton60
12 47 0 0 0 0 1
Worcester35
1 17 5 12 0 0 0
Worcestershire57
42 4 3 5 0 0 3
Worthing37
9 23 0 2 0 0 3
Wrexham56
9 14 0 0 0 9 24
Wychavon43
29 1 7 6 0 0 0
Wyre50
30 17 0 0 0 0 3
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)