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.
Results
{| class="wikitable"
|-
! colspan="2" rowspan="2" | Party
! colspan="4" | Councils
! colspan="4" | Councillors
|-
! valign="top" | Gain
! valign="top" | Loss
! valign="top" | Change
! style="text-align: right;" valign="top" | Total
! valign="top" | Gain
! valign="top" | Loss
! style="text-align: right;" valign="top" | Change
! style="text-align: right;" valign="top" | Total
|-
|
| align="right" |3
| align="right" |35
| align="right" |–32
| align="right" |137
| align="right" |89
| align="right" |1,239
| align="right" |–1,150
| align="right" |4,802
|-
|
| align="right" |48
| align="right" |0
| align="right" |+48
| align="right" |61
| align="right" |1,391
| align="right" |43
| align="right" |+1,348
| align="right" |3,766
|-
|
| align="right" |7
| align="right" |18
| align="right" |-11
| align="right" |20
| align="right" |383
| align="right" |473
| align="right" |-90
| align="right" |2,609
|-
|
| align="right" |0
| align="right" |1
| align="right" |-1
| align="right" |1
| align="right" |41
| align="right" |24
| align="right" |+17
| align="right" |208
|-
|
| align="right" |2
| align="right" |0
| align="right" |+2
| align="right" |3
| align="right" |89
| align="right" |7
| align="right" |+81
| align="right" |205
|-
|
| align="right" |2
| align="right" |5
| align="right" |-3
| align="right" |18
| align="right" |174
| align="right" |299
| align="right" |-125
| align="right" |1,551
|-
| bgcolor="#d3d3d3" |
| Other
| align="right" |0
| align="right" |0
| align="right" |0
| align="right" |0
| align="right" |66
| align="right" |145
| align="right" |–79
| align="right" |191
|-
|
| align="right" |40
| align="right" |42
| align="right" |-2
| align="right" |122
| align="right" |—
| align="right" |—
| align="right" |—
| align="right" |—
|}
England
Metropolitan boroughs
All 36 English Metropolitan borough councils had one third of their seats up for election.
{| class="wikitable sortable" border="1"
|-
! scope="col" | Council
! colspan=2 | Previous control
! colspan=2 | Result
! class="unsortable" scope="col"| Details
|-
! scope="row" style="text-align: left;" |Barnsley
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Birmingham
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Bolton
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Bradford
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Bury
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Calderdale
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Coventry
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Doncaster
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Dudley
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Gateshead
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Kirklees
|
| gain
|Details
|-
! scope="row" style="text-align: left;" |Knowsley
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Leeds
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Liverpool
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Manchester
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Newcastle upon Tyne
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |North Tyneside
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Oldham
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Rochdale
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Rotherham
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Salford
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Sandwell
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Sefton
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Sheffield
|
| gain
|Details
|-
! scope="row" style="text-align: left;" |Solihull
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |South Tyneside
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |St Helens
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Stockport
|
| gain
|Details
|-
! scope="row" style="text-align: left;" |Sunderland
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Tameside
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Trafford
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Wakefield
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Walsall
|
| gain
|Details
|-
! scope="row" style="text-align: left;" |Wigan
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Wirral
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Wolverhampton
|
| hold
|Details
|}
Unitary authorities
Whole council
{| class="wikitable sortable" border="1"
|-
! scope="col" | Council
! colspan=2 | Previous control
! colspan=2 | Result
! class="unsortable" scope="col"| Details
|-
! scope="row" style="text-align: left;" |Bath and North East Somerset ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Brighton and Hove
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Bristol ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Bournemouth
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Darlington
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |East Riding of Yorkshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Leicester
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Luton
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Middlesbrough
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Milton Keynes
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |North East Lincolnshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |North Lincolnshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |North Somerset ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;" |Poole
|
| gain
|Details
|-
! scope="row" style="text-align: left;" |Redcar and Cleveland
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Rutland
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |South Gloucestershire ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;" |Stockton-on-Tees
|
| hold
|Details
|-
|}
‡ New ward boundaries
Third of council
{| class="wikitable sortable" border="1"
|-
! scope="col" | Council
! colspan=2 | Previous control
! colspan=2 | Result
! class="unsortable" scope="col"| Details
|-
! scope="row" style="text-align: left;" |Blackburn with Darwen
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Derby
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Halton
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Hartlepool
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Kingston upon Hull
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Peterborough
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Portsmouth
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Reading
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Slough
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Southampton
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Southend-on-Sea
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Stoke-on-Trent
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Swindon
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Thurrock
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Warrington
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |Wokingham
|
| hold
|Details
|-
! scope="row" style="text-align: left;" |York
|
| hold
|Details
|-
|}
District councils
Whole council
{| class="wikitable sortable" border="1"
|-
! scope="col" | Council
! colspan=2 | Previous control
! colspan=2 | Result
! class="unsortable" scope="col"| Details
|-
! scope="row" style="text-align: left;"|Allerdale ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Alnwick ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Arun
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Ashfield
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Ashford
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Aylesbury Vale
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Babergh
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Barrow-in-Furness ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Berwick-upon-Tweed ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Blaby
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Blyth Valley ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Bolsover
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Boston ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Braintree
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Breckland
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Bridgnorth
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Bromsgrove
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Broxbourne ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Broxtowe
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Canterbury
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Caradon
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Carlisle ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Carrick
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Castle Morpeth ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Castle Point
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Charnwood
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Chelmsford
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Chesterfield
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Chester-le-Street
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Chester ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Chichester
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Chiltern
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Christchurch
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Congleton ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Copeland ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Corby ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Cotswold
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Crewe and Nantwich ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Dacorum ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Dartford
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Daventry ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Derbyshire Dales
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Derwentside
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Dover
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Durham
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Easington
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|East Cambridgeshire
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|East Devon
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|East Dorset
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|East Hampshire
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|East Hertfordshire ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|East Lindsey ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|East Northamptonshire ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|East Staffordshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Eden ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Ellesmere Port and Neston ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Epsom and Ewell
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Erewash
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Fenland
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Forest Heath
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Forest of Dean ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Fylde
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Gedling
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Gravesham
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Guildford
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Hambleton
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Harborough
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Hertsmere ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|High Peak
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Hinckley and Bosworth
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Horsham
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Kennet
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Kerrier
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Kettering ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|King's Lynn and West Norfolk
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Lancaster
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Lewes
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Lichfield
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Lincoln ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Macclesfield ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Maldon
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Mansfield
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Melton
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Mendip ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Mid Bedfordshire
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Mid Devon
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Mid Suffolk
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Mid Sussex
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|New Forest
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Newark and Sherwood
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|North Cornwall
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|North Devon
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|North Dorset
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|North East Derbyshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|North Hertfordshire ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|North Kesteven ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|North Norfolk
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|North Shropshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|North Warwickshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|North West Leicestershire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|North Wiltshire
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Northampton ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Oadby and Wigston
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Oswestry
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Purbeck ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Restormel
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Ribble Valley
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Richmondshire
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Rother
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Rushcliffe
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Ryedale
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Salisbury
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Scarborough
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Sedgefield
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Sedgemoor ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Selby
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Sevenoaks
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Shepway
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|South Bucks
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|South Derbyshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|South Hams ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|South Holland ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|South Kesteven ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|South Lakeland ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|South Norfolk
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|South Northamptonshire ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|South Oxfordshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|South Ribble
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|South Shropshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|South Somerset ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|South Staffordshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Spelthorne
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|St Albans ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|St Edmundsbury
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Stafford
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Staffordshire Moorlands
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Stevenage ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Suffolk Coastal
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Surrey Heath
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Taunton Deane ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Teesdale
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Teignbridge
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Tendring
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Test Valley
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Tewkesbury
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Thanet
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Three Rivers ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Tonbridge and Malling
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Torridge
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Tynedale ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Uttlesford
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Vale of White Horse
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Vale Royal ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Wansbeck ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Warwick
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Watford ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Waverley
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Wealden
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Wear Valley
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Wellingborough ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Welwyn Hatfield ‡
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|West Devon
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|West Dorset
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|West Lindsey ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|West Somerset ‡
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|West Wiltshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Wychavon
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Wycombe
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Wyre
|
| gain
|Details
|}
‡ New ward boundaries
Third of council
{| class="wikitable sortable" border="1"
|-
! scope="col" | Council
! colspan=2 | Previous control
! colspan=2 | Result
! class="unsortable" scope="col"| Details
|-
! scope="row" style="text-align: left;"|Adur
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Amber Valley
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Basildon
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Basingstoke and Deane
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Bassetlaw
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Bedford
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Brentwood
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Broadland
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Burnley
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Cambridge
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Cannock Chase
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Cheltenham
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Cherwell
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Chorley
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Colchester
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Craven
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Crawley
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Eastbourne
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Eastleigh
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Elmbridge
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Epping Forest
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Exeter
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Fareham
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Gloucester
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Gosport
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Great Yarmouth
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Harlow
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Harrogate
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Hart
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Hastings
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Havant
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Huntingdonshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Hyndburn
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Ipswich
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Maidstone
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Mole Valley
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Newcastle-under-Lyme
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Norwich
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Nuneaton and Bedworth
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Oxford
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Pendle
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Penwith
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Preston
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Redditch
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Reigate and Banstead
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Rochford
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Rossendale
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Rugby
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Runnymede
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Rushmoor
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Shrewsbury and Atcham
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|South Bedfordshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|South Cambridgeshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Stratford-on-Avon
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Stroud
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Swale
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Tamworth
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Tandridge
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Tunbridge Wells
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Waveney
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|West Lancashire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|West Oxfordshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Weymouth and Portland
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Winchester
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Woking
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Worcester
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Worthing
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Wyre Forest
|
| gain
|Details
|}
Scotland
{| class="wikitable sortable" border="1"
|-
! scope="col" | Council
! colspan=2 | Previous control
! colspan=2 | Result
! class="unsortable" scope="col"| Details
|-
! scope="row" style="text-align: left;"|Aberdeen
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Aberdeenshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Angus
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Argyll and Bute
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Clackmannanshire
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Dumfries and Galloway
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Dundee
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|East Ayrshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|East Dunbartonshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|East Lothian
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|East Renfrewshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Edinburgh
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Falkirk
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Fife
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Glasgow
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Highland
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Inverclyde
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Midlothian
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Moray
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Na h-Eileanan Siar
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|North Ayrshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|North Lanarkshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Orkney Islands
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Perth and Kinross
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Renfrewshire
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Scottish Borders
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Shetland Islands
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|South Ayrshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|South Lanarkshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Stirling
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|West Dunbartonshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|West Lothian
|
| hold
|Details
|}
Wales
{| class="wikitable sortable" border="1"
|-
! scope="col" | Council
! colspan=2 | Previous control
! colspan=2 | Result
! class="unsortable" scope="col"| Details
|-
! scope="row" style="text-align: left;"|Blaenau Gwent
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Bridgend
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Caerphilly
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Cardiff
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Carmarthenshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Ceredigion
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Conwy
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Denbighshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Flintshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Gwynedd
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Isle of Anglesey
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Merthyr Tydfil
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Monmouthshire
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Neath Port Talbot
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Newport
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Pembrokeshire
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Powys
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Rhondda Cynon Taf
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Swansea
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Torfaen
|
| hold
|Details
|-
! scope="row" style="text-align: left;"|Vale of Glamorgan
|
| gain
|Details
|-
! scope="row" style="text-align: left;"|Wrexham
|
| gain
|Details
|}
References
- Vote 1999 BBC News
- The local elections of 6 May 1999. House of Commons Library Research Paper 99/52.
