Council Compositions 2021

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
10 9 3 0 19 0 4
Aberdeenshire70
18 1 13 1 18 0 19
Adur29
18 7 0 1 0 0 3
Allerdale49
18 13 0 0 0 0 18
Amber Valley45
28 16 0 1 0 0 0
Angus28
8 0 2 0 9 0 9
Argyll and Bute36
10 0 5 0 11 0 10
Arun54
23 1 17 2 0 0 11
Ashfield35
3 2 0 0 0 0 30
Ashford47
26 6 0 2 0 0 13
Babergh32
14 1 3 4 0 0 10
Barking and Dagenham51
0 51 0 0 0 0 0
Barnet63
38 23 2 0 0 0 0
Barnsley63
3 49 7 0 0 0 4
Barrow-in-Furness36
12 24 0 0 0 0 0
Basildon42
20 13 0 0 0 0 9
Basingstoke and Deane54
33 10 5 0 0 0 6
Bassetlaw48
7 36 1 0 0 0 4
Bath and North East Somerset59
11 5 37 0 0 0 6
Bedford40
11 11 15 2 0 0 1
Bexley45
34 10 0 0 0 0 1
Birmingham101
27 65 8 1 0 0 0
Blaby39
25 6 6 1 0 0 1
Blackburn with Darwen51
13 35 1 0 0 0 2
Blackpool42
16 22 0 0 0 0 4
Blaenau Gwent41
0 12 0 0 0 0 29
Bolsover37
3 19 0 0 0 0 15
Bolton60
20 18 5 0 0 0 17
Boston30
14 2 0 0 0 0 14
Bournemouth, Christchurch and Poole76
37 3 14 2 0 0 20
Bracknell Forest42
38 3 1 0 0 0 0
Bradford90
25 51 7 3 0 0 4
Braintree49
34 2 0 7 0 0 6
Breckland49
36 6 0 2 0 0 5
Brent63
3 59 1 0 0 0 0
Brentwood37
23 2 12 0 0 0 0
Bridgend54
8 25 1 0 0 2 18
Brighton and Hove54
13 16 0 20 0 0 5
Bristol70
14 24 8 23 0 0 1
Broadland47
33 2 12 0 0 0 0
Bromley60
50 8 0 0 0 0 2
Bromsgrove31
18 3 3 0 0 0 7
Broxbourne30
27 3 0 0 0 0 0
Broxtowe44
20 14 7 0 0 0 3
Buckinghamshire147
113 4 15 1 0 0 14
Burnley45
9 18 8 5 0 0 5
Bury51
15 27 4 0 0 0 5
Caerphilly73
0 49 0 0 0 18 6
Calderdale51
15 28 5 0 0 0 3
Cambridge42
0 30 9 2 0 0 1
Cambridgeshire61
27 9 20 0 0 0 5
Camden54
7 43 3 1 0 0 0
Cannock Chase41
24 9 2 1 0 0 5
Canterbury39
23 10 6 0 0 0 0
Cardiff75
21 38 11 0 0 0 5
Carlisle39
19 13 1 1 0 0 5
Carmarthenshire74
0 17 0 0 0 37 20
Castle Point41
21 0 0 0 0 0 20
Central Bedfordshire59
42 1 3 0 0 0 13
Ceredigion42
0 0 8 0 0 20 14
Charnwood52
37 12 0 1 0 0 2
Chelmsford57
22 0 30 0 0 0 5
Cheltenham40
7 0 31 0 0 0 2
Cherwell48
31 9 3 1 0 0 4
Cheshire East82
32 25 4 0 0 0 21
Cheshire West and Chester70
29 35 2 1 0 0 3
Chesterfield48
0 28 17 0 0 0 3
Chichester36
17 2 10 2 0 0 5
Chorley42
13 29 0 0 0 0 0
City of London Corporation125
0 5 0 0 0 0 120
Clackmannanshire18
4 5 0 0 8 0 1
Colchester51
23 11 12 2 0 0 3
Conwy59
15 6 4 0 0 9 25
Copeland33
10 17 0 0 0 0 6
Cornwall87
47 5 13 1 0 0 21
Cotswold34
14 0 18 1 0 0 1
Coventry54
15 39 0 0 0 0 0
Craven30
15 3 1 2 0 0 9
Crawley36
18 17 0 0 0 0 1
Croydon70
29 41 0 0 0 0 0
Cumbria84
38 26 15 1 0 0 4
Dacorum51
31 0 19 0 0 0 1
Darlington50
23 18 3 2 0 0 4
Dartford42
29 9 0 0 0 0 4
Denbighshire47
15 11 0 0 0 10 11
Derby51
21 13 8 0 0 0 9
Derbyshire64
45 14 4 1 0 0 0
Derbyshire Dales39
20 4 7 2 0 0 6
Devon60
39 6 9 2 0 0 4
Doncaster55
11 40 0 0 0 0 4
Dorset82
43 1 29 4 0 0 5
Dover32
20 11 0 0 0 0 1
Dudley72
46 24 0 0 0 0 2
Dumfries and Galloway43
16 9 1 0 10 0 7
Dundee City29
3 8 2 0 14 0 2
Durham126
24 53 17 1 0 0 31
Ealing69
8 57 4 0 0 0 0
East Ayrshire32
6 9 0 0 14 0 3
East Cambridgeshire28
15 0 11 0 0 0 2
East Devon60
21 0 8 2 0 0 29
East Dunbartonshire22
6 2 6 0 7 0 1
East Hampshire43
32 2 8 0 0 0 1
East Hertfordshire50
40 2 6 2 0 0 0
East Lindsey55
30 6 1 0 0 0 18
East Lothian22
7 9 0 0 6 0 0
East Renfrewshire18
5 4 1 0 5 0 3
East Riding of Yorkshire67
47 0 9 0 0 0 11
East Staffordshire39
24 11 1 0 0 0 3
East Suffolk55
40 7 3 4 0 0 1
East Sussex50
27 5 11 4 0 0 3
Eastbourne27
9 0 18 0 0 0 0
Eastleigh39
2 0 32 0 0 0 5
Eden38
14 2 11 2 0 0 9
Edinburgh63
17 11 6 8 16 0 5
Elmbridge48
21 0 9 0 0 0 18
Enfield63
17 40 0 0 0 0 6
Epping Forest58
37 0 3 3 0 0 15
Epsom and Ewell38
1 3 2 0 0 0 32
Erewash47
28 16 1 0 0 0 2
Essex75
52 5 8 1 0 0 9
Exeter39
6 26 2 2 0 0 3
Falkirk30
7 9 0 0 12 0 2
Fareham31
23 0 5 0 0 0 3
Fenland39
26 0 2 1 0 0 10
Fife75
14 23 7 0 29 0 2
Flintshire70
6 34 5 0 0 0 25
Folkestone and Hythe30
13 5 2 6 0 0 4
Forest of Dean38
8 4 2 6 0 0 18
Fylde51
31 0 1 0 0 0 19
Gateshead66
0 52 13 0 0 0 1
Gedling41
8 29 2 0 0 0 2
Glasgow City85
7 30 0 7 36 0 5
Gloucester39
25 3 11 0 0 0 0
Gloucestershire53
28 5 16 4 0 0 0
Gosport34
19 1 14 0 0 0 0
Gravesham44
20 22 0 0 0 0 2
Great Yarmouth39
22 14 0 0 0 0 3
Greenwich51
9 42 0 0 0 0 0
Guildford48
9 2 17 0 0 0 20
Gwynedd75
0 1 1 0 0 38 35
Hackney57
5 52 0 0 0 0 0
Halton54
2 48 3 1 0 0 0
Hambleton28
24 1 1 0 0 0 2
Hammersmith and Fulham46
11 35 0 0 0 0 0
Hampshire78
56 3 17 0 0 0 2
Harborough34
22 1 11 0 0 0 0
Haringey57
0 40 15 0 0 0 2
Harlow33
20 13 0 0 0 0 0
Harrogate40
31 0 7 0 0 0 2
Harrow63
27 35 0 0 0 0 1
Hart33
11 1 10 0 0 0 11
Hartlepool36
13 11 0 0 0 0 12
Hastings32
12 19 0 1 0 0 0
Havant38
36 1 1 0 0 0 0
Havering54
25 5 0 0 0 0 24
Herefordshire53
14 0 7 7 0 0 25
Hertfordshire78
46 7 23 1 0 0 1
Hertsmere39
29 7 3 0 0 0 0
High Peak43
16 22 3 2 0 0 0
Highland74
10 3 9 1 18 0 33
Hillingdon65
44 21 0 0 0 0 0
Hinckley and Bosworth34
10 2 21 0 0 0 1
Horsham48
32 0 13 2 0 0 1
Hounslow60
10 50 0 0 0 0 0
Huntingdonshire52
30 4 7 0 0 0 11
Hyndburn35
12 19 0 0 0 0 4
Inverclyde22
2 8 1 0 6 0 5
Ipswich48
14 30 3 0 0 0 1
Isle of Anglesey30
0 2 1 0 0 14 13
Isle of Wight39
18 1 1 2 0 0 17
Isles of Scilly16
0 0 0 0 0 0 16
Islington48
1 45 0 1 0 0 1
Kensington and Chelsea50
35 13 1 0 0 0 1
Kent81
61 7 6 4 0 0 3
King's Lynn and West Norfolk55
29 9 1 1 0 0 15
Kingston upon Hull57
1 30 26 0 0 0 0
Kingston upon Thames48
9 0 38 1 0 0 0
Kirklees69
19 33 9 3 0 0 5
Knowsley45
0 34 3 5 0 0 3
Lambeth63
1 57 0 5 0 0 0
Lancashire84
48 31 2 2 0 0 1
Lancaster60
13 14 2 10 0 0 21
Leeds99
24 54 8 3 0 0 10
Leicester54
0 52 1 0 0 0 1
Leicestershire55
42 4 9 0 0 0 0
Lewes41
19 3 9 8 0 0 2
Lewisham54
0 53 0 0 0 0 1
Lichfield47
35 10 1 0 0 0 1
Lincoln33
10 22 1 0 0 0 0
Lincolnshire70
54 4 3 0 0 0 9
Liverpool90
0 70 12 4 0 0 4
Luton48
3 32 13 0 0 0 0
Maidstone55
29 4 17 0 0 0 5
Maldon31
15 0 0 0 0 0 16
Malvern Hills38
13 1 5 5 0 0 14
Manchester96
0 94 1 1 0 0 0
Mansfield36
1 15 0 0 0 0 20
Medway55
32 20 0 0 0 0 3
Melton28
20 0 0 1 0 0 7
Mendip47
12 0 23 10 0 0 2
Merthyr Tydfil33
0 15 0 0 0 0 18
Merton60
17 34 6 0 0 0 3
Mid Devon42
20 0 11 2 0 0 9
Mid Suffolk34
16 0 5 12 0 0 1
Mid Sussex54
35 0 13 3 0 0 3
Middlesbrough46
3 18 0 0 0 0 25
Midlothian18
5 6 0 0 7 0 0
Milton Keynes57
18 22 15 0 0 0 2
Mole Valley41
12 0 22 0 0 0 7
Monmouthshire43
25 9 3 0 0 0 6
Moray26
9 1 0 0 8 0 8
Na h-Eileanan Siar31
1 0 0 0 6 0 24
Neath Port Talbot64
0 38 1 0 0 15 10
New Forest60
46 0 13 0 0 0 1
Newark and Sherwood39
27 7 2 0 0 0 3
Newcastle upon Tyne78
0 51 20 0 0 0 7
Newcastle-under-Lyme44
19 19 2 0 0 0 4
Newham60
0 60 0 0 0 0 0
Newport50
12 31 2 0 0 0 5
Norfolk84
58 11 8 3 0 0 4
North Ayrshire33
7 11 0 0 10 0 5
North Devon42
11 0 21 2 0 0 8
North East Derbyshire53
31 17 3 0 0 0 2
North East Lincolnshire42
31 8 3 0 0 0 0
North Hertfordshire49
23 15 11 0 0 0 0
North Kesteven43
22 0 0 0 0 0 21
North Lanarkshire77
8 31 0 0 27 0 11
North Lincolnshire43
28 14 0 0 0 0 1
North Norfolk40
9 0 27 0 0 0 4
North Northamptonshire78
57 15 0 3 0 0 3
North Somerset50
13 6 11 3 0 0 17
North Tyneside60
9 50 0 0 0 0 1
North Warwickshire35
23 12 0 0 0 0 0
North West Leicestershire38
22 9 4 1 0 0 2
North Yorkshire72
52 4 4 0 0 0 12
Northumberland67
34 21 3 2 0 0 7
Norwich39
0 26 3 9 0 0 1
Nottingham55
2 50 0 0 0 0 3
Nottinghamshire66
36 15 1 0 0 0 14
Nuneaton and Bedworth34
24 7 0 1 0 0 2
Oadby and Wigston26
2 0 24 0 0 0 0
Oldham60
8 40 8 0 0 0 4
Orkney Islands21
0 0 0 1 0 0 20
Oxford48
0 34 10 4 0 0 0
Oxfordshire63
20 16 21 3 0 0 3
Pembrokeshire60
11 7 1 0 0 6 35
Pendle33
18 8 5 0 0 0 2
Perth and Kinross40
19 1 5 0 13 0 2
Peterborough60
29 17 8 2 0 0 4
Plymouth57
26 24 0 0 0 0 7
Portsmouth42
16 7 15 0 0 0 4
Powys73
17 8 14 1 0 2 31
Preston48
11 30 7 0 0 0 0
Reading46
10 29 2 5 0 0 0
Redbridge63
11 51 0 0 0 0 1
Redcar and Cleveland59
6 14 13 0 0 0 26
Redditch29
25 4 0 0 0 0 0
Reigate and Banstead45
28 0 3 7 0 0 7
Renfrewshire43
8 13 1 0 19 0 2
Rhondda Cynon Taf75
3 48 0 0 0 17 7
Ribble Valley40
27 0 10 0 0 0 3
Richmond upon Thames54
11 0 40 3 0 0 0
Richmondshire24
9 0 3 1 0 0 11
Rochdale60
10 45 3 0 0 0 2
Rochford39
27 0 3 1 0 0 8
Rossendale36
15 18 0 0 0 0 3
Rother38
14 3 7 1 0 0 13
Rotherham59
20 29 3 0 0 0 7
Rugby42
25 8 9 0 0 0 0
Runnymede41
25 1 3 0 0 0 12
Rushcliffe44
29 7 3 2 0 0 3
Rushmoor39
29 9 1 0 0 0 0
Rutland27
15 0 3 1 0 0 8
Ryedale30
11 0 2 0 0 0 17
Salford60
7 52 1 0 0 0 0
Sandwell72
9 59 0 0 0 0 4
Scarborough46
13 13 0 2 0 0 18
Scottish Borders34
15 0 2 0 8 0 9
Sedgemoor48
29 11 7 0 0 0 1
Sefton66
6 48 8 0 0 0 4
Selby31
19 8 0 0 0 0 4
Sevenoaks54
46 1 3 0 0 0 4
Sheffield84
1 40 29 13 0 0 1
Shetland22
0 0 0 0 1 0 21
Shropshire74
43 9 14 4 0 0 4
Slough42
5 34 0 0 0 0 3
Solihull51
30 1 3 16 0 0 1
Somerset55
33 3 14 2 0 0 3
Somerset West and Taunton59
10 3 31 2 0 0 13
South Ayrshire28
12 5 0 0 9 0 2
South Cambridgeshire45
11 2 31 0 0 0 1
South Derbyshire36
15 15 0 0 0 0 6
South Gloucestershire61
33 11 17 0 0 0 0
South Hams31
16 0 10 2 0 0 3
South Holland37
23 0 0 0 0 0 14
South Kesteven56
40 3 2 0 0 0 11
South Lakeland51
14 3 33 1 0 0 0
South Lanarkshire64
12 17 3 0 25 0 7
South Norfolk46
35 1 10 0 0 0 0
South Oxfordshire36
10 3 13 5 0 0 5
South Ribble50
22 22 5 0 0 0 1
South Somerset60
14 0 40 1 0 0 5
South Staffordshire49
37 1 0 3 0 0 8
South Tyneside54
1 44 0 3 0 0 6
Southampton48
25 23 0 0 0 0 0
Southend-on-Sea51
23 13 5 0 0 0 10
Southwark63
0 48 14 0 0 0 1
Spelthorne39
17 2 7 2 0 0 11
St Albans58
23 2 30 1 0 0 2
St. Helens48
3 34 4 3 0 0 4
Stafford40
22 10 0 1 0 0 7
Staffordshire62
57 4 0 0 0 0 1
Staffordshire Moorlands56
27 13 1 0 0 0 15
Stevenage39
11 22 6 0 0 0 0
Stirling23
9 4 0 1 7 0 2
Stockport63
9 25 25 1 0 0 3
Stockton-on-Tees56
16 24 1 0 0 0 15
Stoke-on-Trent44
20 13 0 0 0 0 11
Stratford-on-Avon36
19 0 12 1 0 0 4
Stroud51
20 15 3 13 0 0 0
Suffolk75
55 5 4 9 0 0 2
Sunderland75
18 42 12 0 0 0 3
Surrey81
47 2 14 2 0 0 16
Surrey Heath35
17 1 9 2 0 0 6
Sutton54
18 0 33 0 0 0 3
Swale47
17 10 3 2 0 0 15
Swansea72
9 48 7 0 0 0 8
Swindon57
36 20 0 0 0 0 1
Tameside57
6 50 0 1 0 0 0
Tamworth30
26 3 0 0 0 0 1
Tandridge42
14 0 9 0 0 0 19
Teignbridge47
12 0 23 0 0 0 12
Telford and Wrekin54
14 35 4 0 0 0 1
Tendring48
21 6 2 0 0 0 19
Test Valley43
26 0 12 0 0 0 5
Tewkesbury38
23 0 8 1 0 0 6
Thanet56
27 18 0 4 0 0 7
Three Rivers39
11 3 22 0 0 0 3
Thurrock49
28 16 0 0 0 0 5
Tonbridge and Malling54
39 1 9 2 0 0 3
Torbay36
14 0 12 0 0 0 10
Torfaen44
4 27 0 0 0 0 13
Torridge36
11 3 2 2 0 0 18
Tower Hamlets45
1 41 1 0 0 0 2
Trafford63
17 40 3 3 0 0 0
Tunbridge Wells48
24 5 13 0 0 0 6
Uttlesford39
5 0 5 2 0 0 27
Vale of Glamorgan47
15 14 0 0 0 4 14
Vale of White Horse38
7 0 30 1 0 0 0
Wakefield63
17 43 2 0 0 0 1
Walsall60
36 22 0 0 0 0 2
Waltham Forest60
14 46 0 0 0 0 0
Wandsworth60
33 26 0 0 0 0 1
Warrington58
11 35 8 0 0 0 4
Warwick44
19 5 9 8 0 0 3
Warwickshire57
42 6 5 3 0 0 1
Watford36
0 10 24 0 0 0 2
Waverley57
22 2 15 2 0 0 16
Wealden45
32 0 5 2 0 0 6
Welwyn Hatfield48
28 9 11 0 0 0 0
West Berkshire43
24 0 16 3 0 0 0
West Devon31
15 0 2 2 0 0 12
West Dunbartonshire22
2 8 0 0 9 0 3
West Lancashire54
20 26 0 0 0 0 8
West Lindsey36
16 0 12 0 0 0 8
West Lothian33
7 12 0 0 13 0 1
West Northamptonshire93
64 20 5 0 0 0 4
West Oxfordshire49
28 8 10 1 0 0 2
West Suffolk64
40 4 0 1 0 0 19
West Sussex70
48 9 10 1 0 0 2
Westminster60
41 19 0 0 0 0 0
Wigan75
8 57 0 0 0 0 10
Wiltshire98
60 3 27 0 0 0 8
Winchester45
16 0 27 0 0 0 2
Windsor and Maidenhead41
22 0 10 0 0 0 9
Wirral66
23 30 6 5 0 0 2
Woking30
13 3 12 0 0 0 2
Wokingham54
31 3 18 0 0 0 2
Wolverhampton60
15 44 0 0 0 0 1
Worcester35
18 11 2 4 0 0 0
Worcestershire57
45 3 4 3 0 0 2
Worthing37
19 15 3 0 0 0 0
Wrexham52
9 11 2 0 0 5 25
Wychavon45
35 0 6 2 0 0 2
Wyre50
37 8 0 0 0 0 5
Wyre Forest33
12 2 3 1 0 0 15
York47
2 17 21 3 0 0 4

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