# 1999 United Kingdom local elections

The 1999 United Kingdom local elections were held on Thursday 6 May 1999. All Scottish and Welsh unitary authorities had all their seats elected. In England a third of the seats on each of the Metropolitan Boroughs were elected along with elections in many of the unitary authorities and district councils. There were no local elections in Northern Ireland.
The elections saw Labour, now in their second year of government, suffer a setback as the opposition Conservatives gained ground. The councils up for election had last been contested in 1995, which saw Labour achieve record gains and the Conservatives lose over 2,000 seats.

## Summary of results

| Party | Party | Councils | Councils | Councils | Councils | Councillors | Councillors | Councillors | Councillors |
| Party | Party | Gain | Loss | Change | Total | Gain | Loss | Change | Total |
| | Labour | 3 | 35 | –32 | 137 | 89 | 1,239 | –1,150 | 4,802 |
| | Conservative | 48 | 0 | +48 | 61 | 1,391 | 43 | +1,348 | 3,766 |
| | Liberal Democrats | 7 | 18 | -11 | 20 | 383 | 473 | -90 | 2,609 |
| | SNP | 0 | 1 | -1 | 1 | 41 | 24 | +17 | 208 |
| | Plaid Cymru | 2 | 0 | +2 | 3 | 89 | 7 | +81 | 205 |
| | Independent | 2 | 5 | -3 | 18 | 174 | 299 | -125 | 1,551 |
| | Other | 0 | 0 | 0 | 0 | 66 | 145 | –79 | 191 |
| | No overall control | 40 | 42 | -2 | 122 | — | — | — | — |

## England
### Metropolitan boroughs

All 36 English 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 | Labour | Labour hold | Details |
| Bury | Labour | Labour hold | Details |
| Calderdale | No overall control | No overall control hold | Details |
| Coventry | Labour | Labour hold | Details |
| Doncaster | Labour | Labour hold | Details |
| Dudley | Labour | Labour hold | Details |
| Gateshead | Labour | Labour hold | Details |
| Kirklees | Labour | No overall control gain | Details |
| Knowsley | Labour | Labour hold | Details |
| Leeds | Labour | Labour hold | Details |
| Liverpool | Liberal Democrats | Liberal Democrats 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 | Liberal Democrats gain | Details |
| Solihull | No overall control | No overall control hold | Details |
| South Tyneside | Labour | Labour hold | Details |
| St Helens | Labour | Labour hold | Details |
| Stockport | No overall control | Liberal Democrats gain | Details |
| Sunderland | Labour | Labour hold | Details |
| Tameside | Labour | Labour hold | Details |
| Trafford | Labour | Labour hold | Details |
| Wakefield | Labour | Labour hold | Details |
| Walsall | No overall control | Labour gain | Details |
| Wigan | Labour | Labour hold | Details |
| Wirral | Labour | Labour hold | Details |
| Wolverhampton | Labour | Labour hold | Details |

### Unitary authorities
#### Whole council

| Council | Previous control | Result | Details |
| Bath and North East Somerset ‡ | No overall control | No overall control hold | Details |
| Brighton and Hove | Labour | Labour hold | Details |
| Bristol ‡ | Labour | Labour hold | Details |
| Bournemouth | No overall control | No overall control hold | Details |
| Darlington | Labour | Labour hold | Details |
| East Riding of Yorkshire | No overall control | No overall control hold | Details |
| Leicester | Labour | Labour hold | Details |
| Luton | Labour | Labour hold | Details |
| Middlesbrough | Labour | Labour hold | Details |
| Milton Keynes | Labour | Labour hold | Details |
| North East Lincolnshire | Labour | Labour hold | Details |
| North Lincolnshire | Labour | Labour hold | Details |
| North Somerset ‡ | No overall control | Conservative gain | Details |
| Poole | Liberal Democrats | No overall control gain | Details |
| Redcar and Cleveland | Labour | Labour hold | Details |
| Rutland | No overall control | No overall control hold | Details |
| South Gloucestershire ‡ | No overall control | Liberal Democrats gain | Details |
| Stockton-on-Tees | Labour | Labour hold | Details |
‡ New ward boundaries

#### Third of council

| Council | Previous control | Result | Details |
| Blackburn with Darwen | Labour | Labour hold | Details |
| Derby | Labour | Labour hold | Details |
| Halton | Labour | Labour hold | Details |
| Hartlepool | Labour | Labour hold | Details |
| Kingston upon Hull | Labour | Labour hold | Details |
| Peterborough | No overall control | No overall control hold | Details |
| Portsmouth | Labour | Labour hold | Details |
| Reading | Labour | Labour hold | Details |
| Slough | Labour | Labour hold | Details |
| Southampton | Labour | Labour hold | Details |
| Southend-on-Sea | No overall control | No overall control hold | Details |
| Stoke-on-Trent | Labour | Labour hold | Details |
| Swindon | Labour | Labour hold | Details |
| Thurrock | Labour | Labour hold | Details |
| Warrington | Labour | Labour hold | Details |
| Wokingham | Conservative | Conservative hold | Details |
| York | Labour | Labour hold | Details |

### District councils
#### Whole council

| Council | Previous control | Result | Details |
| Allerdale ‡ | Labour | Labour hold | Details |
| Alnwick ‡ | No overall control | No overall control hold | Details |
| Arun | Conservative | Conservative hold | Details |
| Ashfield | Labour | Labour hold | Details |
| Ashford | No overall control | No overall control hold | Details |
| Aylesbury Vale | Liberal Democrats | No overall control gain | Details |
| Babergh | No overall control | No overall control hold | Details |
| Barrow-in-Furness ‡ | Labour | No overall control gain | Details |
| Berwick-upon-Tweed ‡ | No overall control | Liberal Democrats gain | Details |
| Blaby | No overall control | Conservative gain | Details |
| Blyth Valley ‡ | Labour | Labour hold | Details |
| Bolsover | Labour | Labour hold | Details |
| Boston ‡ | No overall control | No overall control hold | Details |
| Braintree | Labour | Labour hold | Details |
| Breckland | No overall control | Conservative gain | Details |
| Bridgnorth | Independent | Independent hold | Details |
| Bromsgrove | Labour | Conservative gain | Details |
| Broxbourne ‡ | Conservative | Conservative hold | Details |
| Broxtowe | Labour | Labour hold | Details |
| Canterbury | No overall control | No overall control hold | Details |
| Caradon | No overall control | No overall control hold | Details |
| Carlisle ‡ | Labour | Conservative gain | Details |
| Carrick | No overall control | Liberal Democrats gain | Details |
| Castle Morpeth ‡ | No overall control | No overall control hold | Details |
| Castle Point | Labour | Labour hold | Details |
| Charnwood | Labour | No overall control gain | Details |
| Chelmsford | Liberal Democrats | No overall control gain | Details |
| Chesterfield | Labour | Labour hold | Details |
| Chester-le-Street | Labour | Labour hold | Details |
| Chester ‡ | No overall control | No overall control hold | Details |
| Chichester | No overall control | Conservative gain | Details |
| Chiltern | No overall control | Conservative gain | Details |
| Christchurch | No overall control | Conservative gain | Details |
| Congleton ‡ | Liberal Democrats | Liberal Democrats hold | Details |
| Copeland ‡ | Labour | Labour hold | Details |
| Corby ‡ | Labour | Labour hold | Details |
| Cotswold | Independent | No overall control gain | Details |
| Crewe and Nantwich ‡ | Labour | Labour hold | Details |
| Dacorum ‡ | No overall control | Conservative gain | Details |
| Dartford | Labour | Labour hold | Details |
| Daventry ‡ | No overall control | Conservative gain | Details |
| Derbyshire Dales | No overall control | Conservative gain | Details |
| Derwentside | Labour | Labour hold | Details |
| Dover | Labour | No overall control gain | Details |
| Durham | Labour | Labour hold | Details |
| Easington | Labour | Labour hold | Details |
| East Cambridgeshire | Independent | Liberal Democrats gain | Details |
| East Devon | Conservative | Conservative hold | Details |
| East Dorset | Liberal Democrats | Conservative gain | Details |
| East Hampshire | Liberal Democrats | Conservative gain | Details |
| East Hertfordshire ‡ | No overall control | Conservative gain | Details |
| East Lindsey ‡ | Independent | Independent hold | Details |
| East Northamptonshire ‡ | Labour | Conservative gain | Details |
| East Staffordshire | Labour | Labour hold | Details |
| Eden ‡ | Independent | Independent hold | Details |
| Ellesmere Port and Neston ‡ | Labour | Labour hold | Details |
| Epsom and Ewell | Independent | Independent hold | Details |
| Erewash | Labour | Labour hold | Details |
| Fenland | No overall control | Conservative gain | Details |
| Forest Heath | No overall control | Conservative gain | Details |
| Forest of Dean ‡ | Labour | Labour hold | Details |
| Fylde | No overall control | No overall control hold | Details |
| Gedling | Labour | Conservative gain | Details |
| Gravesham | Labour | Labour hold | Details |
| Guildford | No overall control | No overall control hold | Details |
| Hambleton | Conservative | Conservative hold | Details |
| Harborough | No overall control | No overall control hold | Details |
| Hertsmere ‡ | Labour | Conservative gain | Details |
| High Peak | Labour | Labour hold | Details |
| Hinckley and Bosworth | No overall control | No overall control hold | Details |
| Horsham | Liberal Democrats | Conservative gain | Details |
| Kennet | No overall control | No overall control hold | Details |
| Kerrier | No overall control | No overall control hold | Details |
| Kettering ‡ | Labour | No overall control gain | Details |
| King's Lynn and West Norfolk | Labour | No overall control gain | Details |
| Lancaster | Labour | No overall control gain | Details |
| Lewes | Liberal Democrats | Liberal Democrats hold | Details |
| Lichfield | Labour | Conservative gain | Details |
| Lincoln ‡ | Labour | Labour hold | Details |
| Macclesfield ‡ | Conservative | Conservative hold | Details |
| Maldon | No overall control | Conservative gain | Details |
| Mansfield | Labour | Labour hold | Details |
| Melton | No overall control | No overall control hold | Details |
| Mendip ‡ | No overall control | No overall control hold | Details |
| Mid Bedfordshire | No overall control | Conservative gain | Details |
| Mid Devon | No overall control | No overall control hold | Details |
| Mid Suffolk | No overall control | No overall control hold | Details |
| Mid Sussex | No overall control | Conservative gain | Details |
| New Forest | Liberal Democrats | Conservative gain | Details |
| Newark and Sherwood | Labour | No overall control gain | Details |
| North Cornwall | Independent | Independent hold | Details |
| North Devon | Liberal Democrats | Liberal Democrats hold | Details |
| North Dorset | Liberal Democrats | No overall control gain | Details |
| North East Derbyshire | Labour | Labour hold | Details |
| North Hertfordshire ‡ | Labour | Conservative gain | Details |
| North Kesteven ‡ | No overall control | No overall control hold | Details |
| North Norfolk | No overall control | No overall control hold | Details |
| North Shropshire | Independent | Independent hold | Details |
| North Warwickshire | Labour | Labour hold | Details |
| North West Leicestershire | Labour | Labour hold | Details |
| North Wiltshire | Liberal Democrats | No overall control gain | Details |
| Northampton ‡ | Labour | Labour hold | Details |
| Oadby and Wigston | Liberal Democrats | Liberal Democrats hold | Details |
| Oswestry | No overall control | Independent gain | Details |
| Purbeck ‡ | No overall control | Conservative gain | Details |
| Restormel | Liberal Democrats | No overall control gain | Details |
| Ribble Valley | No overall control | No overall control hold | Details |
| Richmondshire | Independent | No overall control gain | Details |
| Rother | No overall control | Conservative gain | Details |
| Rushcliffe | No overall control | Conservative gain | Details |
| Ryedale | No overall control | No overall control hold | Details |
| Salisbury | No overall control | No overall control hold | Details |
| Scarborough | No overall control | No overall control hold | Details |
| Sedgefield | Labour | Labour hold | Details |
| Sedgemoor ‡ | No overall control | Conservative gain | Details |
| Selby | Labour | No overall control gain | Details |
| Sevenoaks | No overall control | Conservative gain | Details |
| Shepway | No overall control | Conservative gain | Details |
| South Bucks | No overall control | Conservative gain | Details |
| South Derbyshire | Labour | Labour hold | Details |
| South Hams ‡ | No overall control | Conservative gain | Details |
| South Holland ‡ | Independent | Conservative gain | Details |
| South Kesteven ‡ | No overall control | No overall control hold | Details |
| South Lakeland ‡ | No overall control | No overall control hold | Details |
| South Norfolk | Liberal Democrats | Liberal Democrats hold | Details |
| South Northamptonshire ‡ | No overall control | Conservative gain | Details |
| South Oxfordshire | No overall control | No overall control hold | Details |
| South Ribble | No overall control | No overall control hold | Details |
| South Shropshire | Independent | Independent hold | Details |
| South Somerset ‡ | Liberal Democrats | Liberal Democrats hold | Details |
| South Staffordshire | Conservative | Conservative hold | Details |
| Spelthorne | Conservative | Conservative hold | Details |
| St Albans ‡ | Liberal Democrats | No overall control gain | Details |
| St Edmundsbury | No overall control | Conservative gain | Details |
| Stafford | Labour | No overall control gain | Details |
| Staffordshire Moorlands | No overall control | No overall control hold | Details |
| Stevenage ‡ | Labour | Labour hold | Details |
| Suffolk Coastal | No overall control | Conservative gain | Details |
| Surrey Heath | Conservative | Conservative hold | Details |
| Taunton Deane ‡ | Liberal Democrats | No overall control gain | Details |
| Teesdale | Independent | Independent hold | Details |
| Teignbridge | No overall control | No overall control hold | Details |
| Tendring | Labour | No overall control gain | Details |
| Test Valley | No overall control | Conservative gain | Details |
| Tewkesbury | No overall control | No overall control hold | Details |
| Thanet | Labour | Labour hold | Details |
| Three Rivers ‡ | No overall control | Liberal Democrats gain | Details |
| Tonbridge and Malling | No overall control | No overall control hold | Details |
| Torridge | No overall control | Independent gain | Details |
| Tynedale ‡ | No overall control | No overall control hold | Details |
| Uttlesford | No overall control | No overall control hold | Details |
| Vale of White Horse | Liberal Democrats | Liberal Democrats hold | Details |
| Vale Royal ‡ | Labour | Labour hold | Details |
| Wansbeck ‡ | Labour | Labour hold | Details |
| Warwick | No overall control | No overall control hold | Details |
| Watford ‡ | Labour | Labour hold | Details |
| Waverley | Liberal Democrats | Conservative gain | Details |
| Wealden | Conservative | Conservative hold | Details |
| Wear Valley | Labour | Labour hold | Details |
| Wellingborough ‡ | No overall control | Labour gain | Details |
| Welwyn Hatfield ‡ | Labour | Conservative gain | Details |
| West Devon | No overall control | No overall control hold | Details |
| West Dorset | No overall control | No overall control hold | Details |
| West Lindsey ‡ | No overall control | No overall control hold | Details |
| West Somerset ‡ | No overall control | No overall control hold | Details |
| West Wiltshire | Liberal Democrats | Liberal Democrats hold | Details |
| Wychavon | No overall control | Conservative gain | Details |
| Wycombe | No overall control | Conservative gain | Details |
| Wyre | Labour | Conservative gain | Details |
‡ New ward boundaries

#### Third of council

| Council | Previous control | Result | Details |
| Adur | Liberal Democrats | No overall control gain | Details |
| Amber Valley | Labour | Labour hold | Details |
| Basildon | Labour | Labour hold | Details |
| Basingstoke and Deane | No overall control | No overall control hold | Details |
| Bassetlaw | Labour | Labour hold | Details |
| Bedford | No overall control | No overall control hold | Details |
| Brentwood | Liberal Democrats | Liberal Democrats hold | Details |
| Broadland | No overall control | Conservative gain | Details |
| Burnley | Labour | Labour hold | Details |
| Cambridge | No overall control | No overall control hold | Details |
| Cannock Chase | Labour | Labour hold | Details |
| Cheltenham | Liberal Democrats | No overall control gain | Details |
| Cherwell | No overall control | No overall control hold | Details |
| Chorley | Labour | Labour hold | Details |
| Colchester | No overall control | No overall control hold | Details |
| Craven | No overall control | Conservative gain | Details |
| Crawley | Labour | Labour hold | Details |
| Eastbourne | Liberal Democrats | No overall control gain | Details |
| Eastleigh | Liberal Democrats | Liberal Democrats hold | Details |
| Elmbridge | No overall control | No overall control hold | Details |
| Epping Forest | No overall control | No overall control hold | Details |
| Exeter | Labour | Labour hold | Details |
| Fareham | No overall control | Conservative gain | Details |
| Gloucester | Labour | Labour hold | Details |
| Gosport | No overall control | No overall control hold | Details |
| Great Yarmouth | Labour | Labour hold | Details |
| Harlow | Labour | Labour hold | Details |
| Harrogate | Liberal Democrats | Liberal Democrats hold | Details |
| Hart | No overall control | No overall control hold | Details |
| Hastings | Labour | Labour hold | Details |
| Havant | No overall control | No overall control hold | Details |
| Huntingdonshire | Conservative | Conservative hold | Details |
| Hyndburn | Labour | No overall control gain | Details |
| Ipswich | Labour | Labour hold | Details |
| Maidstone | 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 |
| Norwich | Labour | Labour hold | Details |
| Nuneaton and Bedworth | Labour | Labour hold | Details |
| Oxford | Labour | Labour hold | Details |
| Pendle | Liberal Democrats | No overall control gain | Details |
| Penwith | No overall control | No overall control hold | Details |
| Preston | Labour | No overall control gain | Details |
| Redditch | Labour | Labour hold | Details |
| Reigate and Banstead | No overall control | No overall control hold | Details |
| Rochford | No overall control | No overall control hold | Details |
| Rossendale | Labour | Labour hold | Details |
| Rugby | No overall control | No overall control hold | Details |
| Runnymede | Conservative | Conservative hold | Details |
| Rushmoor | No overall control | No overall control hold | Details |
| Shrewsbury and Atcham | No overall control | No overall control hold | Details |
| South Bedfordshire | No overall control | No overall control hold | Details |
| South Cambridgeshire | No overall control | No overall control hold | Details |
| Stratford-on-Avon | No overall control | No overall control hold | Details |
| Stroud | No overall control | No overall control hold | Details |
| Swale | No overall control | No overall control hold | Details |
| Tamworth | Labour | Labour hold | Details |
| Tandridge | No overall control | No overall control hold | Details |
| Tunbridge Wells | Conservative | Conservative hold | Details |
| Waveney | Labour | Labour hold | Details |
| West Lancashire | Labour | Labour hold | Details |
| West Oxfordshire | No overall control | No overall control hold | Details |
| Weymouth and Portland | No overall control | No overall control hold | Details |
| Winchester | Liberal Democrats | Liberal Democrats hold | Details |
| Woking | No overall control | No overall control hold | Details |
| Worcester | Labour | Labour hold | Details |
| Worthing | Liberal Democrats | Conservative gain | Details |
| Wyre Forest | Labour | No overall control gain | Details |

## Scotland

| Council | Previous control | Result | Details |
| Aberdeen | Labour | Labour hold | Details |
| Aberdeenshire | No overall control | No overall control hold | Details |
| Angus | SNP | SNP hold | Details |
| Argyll and Bute | Independent | Independent hold | Details |
| Clackmannanshire | Labour | No overall control gain | Details |
| Dumfries and Galloway | Labour | Labour hold | Details |
| Dundee | Labour | No overall control gain | Details |
| East Ayrshire | Labour | Labour hold | Details |
| East Dunbartonshire | No overall control | No overall control hold | Details |
| East Lothian | Labour | Labour hold | Details |
| East Renfrewshire | No overall control | No overall control hold | Details |
| Edinburgh | Labour | Labour hold | Details |
| Falkirk | Labour | No overall control gain | Details |
| Fife | Labour | Labour hold | Details |
| Glasgow | Labour | Labour hold | Details |
| Highland | Independent | Independent hold | Details |
| Inverclyde | Labour | Labour hold | Details |
| Midlothian | Labour | Labour hold | Details |
| Moray | SNP | No overall control gain | Details |
| Na h-Eileanan Siar | Independent | Independent hold | Details |
| North Ayrshire | Labour | Labour hold | Details |
| North Lanarkshire | Labour | Labour hold | Details |
| Orkney Islands | Independent | Independent hold | Details |
| Perth and Kinross | No overall control | No overall control hold | Details |
| Renfrewshire | No overall control | Labour gain | Details |
| Scottish Borders | No overall control | No overall control hold | Details |
| Shetland Islands | Independent | Independent hold | Details |
| South Ayrshire | Labour | Labour hold | Details |
| South Lanarkshire | Labour | Labour hold | Details |
| Stirling | No overall control | No overall control hold | Details |
| West Dunbartonshire | Labour | Labour hold | Details |
| West Lothian | Labour | Labour hold | Details |

## Wales

| Council | Previous control | Result | Details |
| Blaenau Gwent | Labour | Labour hold | Details |
| Bridgend | Labour | Labour hold | Details |
| Caerphilly | Labour | Plaid Cymru gain | Details |
| Cardiff | Labour | Labour hold | Details |
| Carmarthenshire | No overall control | No overall control hold | Details |
| Ceredigion | Independent | No overall control gain | Details |
| Conwy | No overall control | No overall control hold | Details |
| Denbighshire | No overall control | No overall control hold | Details |
| Flintshire | Labour | Labour hold | Details |
| Gwynedd | Plaid Cymru | Plaid Cymru hold | Details |
| Isle of Anglesey | Independent | Independent hold | Details |
| Merthyr Tydfil | Labour | No overall control gain | Details |
| Monmouthshire | Labour | No overall control gain | Details |
| Neath Port Talbot | Labour | Labour hold | Details |
| Newport | Labour | Labour hold | Details |
| Pembrokeshire | Independent | Independent hold | Details |
| Powys | Independent | Independent hold | Details |
| Rhondda Cynon Taf | Labour | Plaid Cymru gain | Details |
| Swansea | Labour | Labour hold | Details |
| Torfaen | Labour | Labour hold | Details |
| Vale of Glamorgan | Labour | No overall control gain | Details |
| Wrexham | Labour | No overall control gain | Details |