# 1990 United Kingdom local elections

The 1990 United Kingdom local elections were held on Thursday 3 May 1990. They were the last local elections held before the resignation of Prime Minister Margaret Thatcher in November 1990.
The main opposition Labour Party gained 284 seats, bringing their number of councillors to 8,920, their highest since 1981. Their projected share of the vote was 44%, an increase of 2% from 1989.
The governing Conservative Party lost 222 seats, leaving them with 9,020 councillors. Their share of the vote was projected to be 33%, a fall of 3% from the previous year. This mounted further pressure on the government of Margaret Thatcher, which had been declining for a year following the introduction of the controversial poll tax, and was a major boost for opposition leader Neil Kinnock, whose Labour Party was enjoying a wide lead in the opinion polls with a general election no more than two years away.
The Liberal Democrats lost 78 seats and had 3,265 councillors after the elections. Their projected share of the vote was 17%.

## England
### London boroughs

In all 32 London boroughs the whole council was up for election.
| Council | Previous control | Result | Details |
| Barking and Dagenham | Labour | Labour hold | Details |
| Barnet | Conservative | Conservative hold | Details |
| Bexley | Conservative | Conservative hold | Details |
| Brent | Labour | No overall control gain | Details |
| Bromley | Conservative | Conservative hold | Details |
| Camden | Labour | Labour hold | Details |
| Croydon | Conservative | Conservative hold | Details |
| Ealing | Labour | Conservative gain | Details |
| Enfield | Conservative | Conservative hold | Details |
| Greenwich | Labour | Labour hold | Details |
| Hackney | Labour | Labour hold | Details |
| Hammersmith and Fulham | Labour | Labour hold | Details |
| Haringey | Labour | Labour hold | Details |
| Harrow | Conservative | Conservative hold | Details |
| Havering | No overall control | No overall control hold | Details |
| Hillingdon | No overall control | Conservative gain | Details |
| Hounslow | Labour | Labour hold | Details |
| Islington | Labour | Labour hold | Details |
| Kensington and Chelsea | Conservative | Conservative hold | Details |
| Kingston upon Thames | No overall control | No overall control hold | Details |
| Lambeth | Labour | Labour hold | Details |
| Lewisham | Labour | Labour hold | Details |
| Merton | Conservative | Labour gain | Details |
| Newham | Labour | Labour hold | Details |
| Redbridge | Conservative | Conservative hold | Details |
| Richmond upon Thames | Liberal Democrats | Liberal Democrats hold | Details |
| Southwark | Labour | Labour hold | Details |
| Sutton | Liberal Democrats | Liberal Democrats hold | Details |
| Tower Hamlets | Liberal Democrats | Liberal Democrats hold | Details |
| Waltham Forest | Labour | Labour hold | Details |
| Wandsworth | Conservative | Conservative hold | Details |
| Westminster | Conservative | Conservative hold | Details |

### Metropolitan boroughs

All 36 metropolitan borough councils had one third of their seats up for election.
| Council | Previous control | Result | Details |
| Barnsley | Labour | Labour hold | Details |
| Birmingham | Labour | Labour hold | Details |
| Bolton | Labour | Labour hold | Details |
| Bradford | No overall control | Labour gain | Details |
| Bury | Labour | Labour hold | Details |
| Calderdale | No overall control | Labour gain | Details |
| Coventry | Labour | Labour hold | Details |
| Doncaster | Labour | Labour hold | Details |
| Dudley | Labour | Labour hold | Details |
| Gateshead | Labour | Labour hold | Details |
| Kirklees | No overall control | Labour gain | Details |
| Knowsley | Labour | Labour hold | Details |
| Leeds | Labour | Labour hold | Details |
| Liverpool | Labour | Labour hold | Details |
| Manchester | Labour | Labour hold | Details |
| Newcastle upon Tyne | Labour | Labour hold | Details |
| North Tyneside | Labour | Labour hold | Details |
| Oldham | Labour | Labour hold | Details |
| Rochdale | Labour | Labour hold | Details |
| Rotherham | Labour | Labour hold | Details |
| Salford | Labour | Labour hold | Details |
| Sandwell | Labour | Labour hold | Details |
| Sefton | No overall control | No overall control hold | Details |
| Sheffield | Labour | Labour hold | Details |
| Solihull | Conservative | Conservative hold | Details |
| South Tyneside | Labour | Labour hold | Details |
| St Helens | Labour | Labour hold | Details |
| Stockport | No overall control | No overall control hold | Details |
| Sunderland | Labour | Labour hold | Details |
| Tameside | Labour | Labour hold | Details |
| Trafford | Conservative | Conservative hold | Details |
| Wakefield | Labour | Labour hold | Details |
| Walsall | Labour | Labour hold | Details |
| Wigan | Labour | Labour hold | Details |
| Wirral | No overall control | No overall control hold | Details |
| Wolverhampton | Labour | Labour hold | Details |

### District councils
#### Whole council

In 2 districts the whole council was up for election as there were new ward boundaries, following further electoral boundary reviews by the Local Government Boundary Commission for England.
| Council | Previous control | Previous control | Result | Result | Details |
| Colchester | | No overall control | | No overall control hold | Details |
| Preston | | Labour | | Labour hold | Details |

#### Third of council

In 114 districts one third of the council was up for election.
| Council | Previous control | Result | Details |
| Adur | Liberal Democrats | Liberal Democrats hold | Details |
| Amber Valley | Conservative | Conservative hold | Details |
| Barrow-in-Furness | Labour | Labour hold | Details |
| Basildon | No overall control | Labour gain | Details |
| Basingstoke and Deane | Conservative | Conservative hold | Details |
| Bassetlaw | Labour | Labour hold | Details |
| Bath | Conservative | No overall control gain | Details |
| Blackburn | Labour | Labour hold | Details |
| Brentwood | Conservative | No overall control gain | Details |
| Brighton | Labour | Labour hold | Details |
| Bristol | Labour | Labour hold | Details |
| Broadland | Conservative | Conservative hold | Details |
| Broxbourne | Conservative | Conservative hold | Details |
| Burnley | Labour | Labour hold | Details |
| Cambridge | Labour | Labour hold | Details |
| Cannock Chase | Labour | Labour hold | Details |
| Carlisle | Labour | Labour hold | Details |
| Cheltenham | No overall control | No overall control hold | Details |
| Cherwell | Conservative | Conservative hold | Details |
| Chester | No overall control | No overall control hold | Details |
| Chorley | No overall control | Labour gain | Details |
| Congleton | No overall control | No overall control hold | Details |
| Craven | No overall control | No overall control hold | Details |
| Crawley | Labour | Labour hold | Details |
| Crewe and Nantwich | No overall control | Labour gain | Details |
| Daventry | Conservative | Conservative hold | Details |
| Derby | Conservative | Conservative hold | Details |
| Eastbourne | Conservative | No overall control gain | Details |
| Eastleigh | Liberal Democrats | No overall control gain | Details |
| Ellesmere Port and Neston | Labour | Labour hold | Details |
| Elmbridge | Conservative | Conservative hold | Details |
| Epping Forest | Conservative | Conservative hold | Details |
| Exeter | No overall control | No overall control hold | Details |
| Fareham | Conservative | Conservative hold | Details |
| Gillingham | Conservative | No overall control gain | Details |
| Gloucester | Conservative | No overall control gain | Details |
| Gosport | Conservative | No overall control gain | Details |
| Great Grimsby | Labour | Labour hold | Details |
| Great Yarmouth | No overall control | Labour gain | Details |
| Halton | Labour | Labour hold | Details |
| Harlow | Labour | Labour hold | Details |
| Harrogate | Conservative | No overall control gain | Details |
| Hart | No overall control | No overall control hold | Details |
| Hartlepool | Labour | Labour hold | Details |
| Hastings | No overall control | No overall control hold | Details |
| Havant | Conservative | No overall control gain | Details |
| Hereford | Liberal Democrats | Liberal Democrats hold | Details |
| Hertsmere | Conservative | Conservative hold | Details |
| Huntingdonshire | Conservative | Conservative hold | Details |
| Hyndburn | Labour | Labour hold | Details |
| Ipswich | Labour | Labour hold | Details |
| Kingston upon Hull | Labour | Labour hold | Details |
| Leominster | Independent | Independent hold | Details |
| Lincoln | Labour | Labour hold | Details |
| Macclesfield | Conservative | Conservative hold | Details |
| Maidstone | No overall control | No overall control hold | Details |
| Milton Keynes | No overall control | No overall control hold | Details |
| Mole Valley | No overall control | No overall control hold | Details |
| Newcastle-under-Lyme | Labour | Labour hold | Details |
| North Bedfordshire | No overall control | No overall control hold | Details |
| North Hertfordshire | Conservative | Conservative hold | Details |
| Norwich | Labour | Labour hold | Details |
| Nuneaton and Bedworth | Labour | Labour hold | Details |
| Oadby and Wigston | Conservative | Conservative hold | Details |
| Oxford | Labour | Labour hold | Details |
| Pendle | Liberal Democrats | No overall control gain | Details |
| Penwith | No overall control | No overall control hold | Details |
| Peterborough | No overall control | No overall control hold | Details |
| Portsmouth | Conservative | No overall control gain | Details |
| Purbeck | No overall control | No overall control hold | Details |
| Reading | Labour | Labour hold | Details |
| Redditch | Labour | Labour hold | Details |
| Reigate and Banstead | Conservative | Conservative hold | Details |
| Rochford | Conservative | No overall control gain | Details |
| Rossendale | Labour | Labour hold | Details |
| Rugby | Conservative | No overall control gain | Details |
| Runnymede | Conservative | Conservative hold | Details |
| Rushmoor | Conservative | Conservative hold | Details |
| Scunthorpe | Labour | Labour hold | Details |
| Shrewsbury and Atcham | No overall control | No overall control hold | Details |
| Slough | Labour | Labour hold | Details |
| South Bedfordshire | Conservative | Conservative hold | Details |
| South Cambridgeshire | Independent | Independent hold | Details |
| South Herefordshire | Independent | Independent hold | Details |
| South Lakeland | No overall control | No overall control hold | Details |
| Southampton | Labour | Labour hold | Details |
| Southend-on-Sea | No overall control | Conservative gain | Details |
| St Albans | Conservative | Conservative hold | Details |
| Stevenage | Labour | Labour hold | Details |
| Stoke-on-Trent | Labour | Labour hold | Details |
| Stratford-on-Avon | Conservative | Conservative hold | Details |
| Stroud | No overall control | No overall control hold | Details |
| Swale | No overall control | No overall control hold | Details |
| Tamworth | No overall control | Labour gain | Details |
| Tandridge | Conservative | No overall control gain | Details |
| Thamesdown | Labour | Labour hold | Details |
| Three Rivers | Liberal Democrats | No overall control gain | Details |
| Thurrock | Labour | Labour hold | Details |
| Torbay | Conservative | No overall control gain | Details |
| Tunbridge Wells | Conservative | Conservative hold | Details |
| Watford | No overall control | Labour gain | Details |
| Waveney | No overall control | Labour gain | Details |
| Welwyn Hatfield | Labour | Labour hold | Details |
| West Lancashire | Conservative | Conservative hold | Details |
| West Lindsey | No overall control | No overall control hold | Details |
| West Oxfordshire | Conservative | Independent gain | Details |
| Weymouth and Portland | No overall control | No overall control hold | Details |
| Winchester | No overall control | No overall control hold | Details |
| Woking | No overall control | No overall control hold | Details |
| Wokingham | Conservative | Conservative hold | Details |
| Worcester | Labour | Labour hold | Details |
| Worthing | Conservative | Conservative hold | Details |
| Wyre Forest | No overall control | No overall control hold | Details |
| York | Labour | Labour hold | Details |

## Scotland
### Regional councils

| Council | Previous control | Result | Details |
| Borders | Independent | Independent hold | Details |
| Central | Labour | Labour hold | Details |
| Dumfries and Galloway | Independent | Independent hold | Details |
| Fife | Labour | Labour hold | Details |
| Grampian | Conservative | No overall control gain | Details |
| Highland | Independent | Independent hold | Details |
| Lothian | No overall control | Labour gain | Details |
| Orkney | Independent | Independent hold | Details |
| Shetland | Independent | Independent hold | Details |
| Strathclyde | Labour | Labour hold | Details |
| Tayside | Conservative | No overall control gain | Details |
| Western Isles | Independent | Independent hold | Details |