George Osborne has always been described as a "political chancellor", as if there was really any other kind. But his first Tory-only budget confirmed he is more than comfortable with the nasty politics of division and hypocrisy.
The central theme of his speech was that he wants the UK to be a "high wage economy", even going as far as stealing our slogan from 2013 that Britain needs a pay rise. This final flourish worked well for the cameras, cheered braying Tory MPs, and appeared to persuade some people that he actually meant it. But look at what he actually announced.
Public sector pay will be capped at 1% for four more years. This comes after five years of wages being held down, meaning living standards for many of the civil servants and other government workers that I represent have been cut by 20%.
Pay is already so low in the civil service that in the Department for Work and Pensions 40% of staff are eligible for in-work benefits, of the kind Osborne also now plans to cut. When - assuming it is 'when' rather than 'if' - universal credit ever gets rolled out fully, many of these staff could be forced to increase their hours or find another job, or face having their benefits stopped.
At £9 an hour by 2020, the living wage announcement that stole the headlines is simply a crude PR rebranding of the pitiful minimum wage. Simply calling it a living wage doesn't actually make it a living wage. The TUC's policy, following an excellent campaign by the bakers' union, of £10 an hour immediately would really begin to tackle the inequality and in-work poverty that today's budget will simply entrench.
Cutting tax credits only makes sense when seen as part of the Tories' deeply unpleasant assault on social security. A genuine commitment to increasing wages would cut tax credits anyway, so there is no need to cut rates or eligibility. Limiting low-income families to two children is social engineering and a gross intrusion on family life, and parents with more than two kids will need to hope they don't get made redundant.
Lowering the benefit cap will push tens of thousands more families over the edge, and child poverty is already the highest it has been since 2001 thanks to the previous government.
So on their way to slashing £12billion from the social security budget, the Tories are cutting child tax credits, despite Cameron saying they wouldn't, reducing support for disabled people, despite Osborne saying it was a principle they would be protected, freezing working age benefits, and removing housing benefit from under 21s. Yet they can find money for another corporation tax cut when it is already by far the lowest of the major economies.
Ultimately, there were few surprises. So Osborne's calculated and provocative use of the word "lifestyle", when referring to people who rely on already meagre social security payments, was no bolt from the blue, but it did help to prove this was a despicable budget by a despicable government.