There can be no doubt about it - last night was Labour's night. So far, Miliband's party has held onto the 28 councils they already controlled and taken a further 28. At the time of writing, with 99 of 181 councils declared, they have an additional 469 councillors to their ranks. The Conservatives have lost 277 seats so far, and to add to their woes, Nottingham, Manchester, Bradford and Coventry have voted against having a directly-elected mayor - just a couple of days ago their leader gave a front-page interivew to the Evening Standard declaring that he wants 'a Boris in every city'. The Lib Dems have already lost 129 council seats, lost control of Cambridge and their number of council seats has fallen below 3,000 for the first time ever - the worst ever performance for a party that provides itself on its strong base in local government.
The smaller parties have cause for celebration. The Greens have made small gains, while in Bradford the Galloway effect continues as his Respect party unseated the Labour council leader and gained five seats. UKIP, which usually does better at European elections than local ones, did well, polling at 13% in wards they contested. Results in Wales have gone Labour's way so far, with the Conservatives losing control of Monmouthshire council. The counts in Scotland are only just starting to declare, but keep a sharp eye out for the contest in Glasgow - as Dan Hodges wrote in a recent TP column, the Labour-SNP fight there is a crucial one for Miliband's party.
Expectation managers have already been out in force on the Conservative side, pushing the line that these are the kind of losses that should be expected for at mid-term local elections for a party of government, and that Labour's gains are in no way a reflection of the trouble that Cameron has faced over the past few weeks. Maybe so, but it's still been a very bad night for Cameron's party. Depending on how things go in Glasgow and in London, it might be about to get worse.