Starmer had a chance to succeed, but he froze when faced with the demands of leadership—turning a triumph into a tragedy.

Starmer had a chance to succeed, but he froze when faced with the demands of leadership—turning a triumph into a tragedy.

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.ttf’) format(‘truetype’);
font-weight: 300;
font-style: normal;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.ttf’) format(‘truetype’);
font-weight: 300;
font-style: italic;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.ttf’) format(‘truetype’);
font-weight: 400;
font-style: normal;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.ttf’) format(‘truetype’);
font-weight: 400;
font-style: italic;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.ttf’) format(‘truetype’);
font-weight: 500;
font-style: normal;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.ttf’) format(‘truetype’);
font-weight: 500;
font-style: italic;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.ttf’) format(‘truetype’);
font-weight: 600;
font-style: normal;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.ttf’) format(‘truetype’);
font-weight: 600;
font-style: italic;
}Here’s the rewritten version in fluent, natural English:

“`css
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.ttf’) format(‘truetype’);
font-weight: 700;
font-style: normal;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.ttf’) format(‘truetype’);
font-weight: 700;
font-style: italic;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.ttf’) format(‘truetype’);
font-weight: 900;
font-style: normal;
}

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.ttf’) format(‘truetype’);
font-weight: 900;
font-style: italic;
}

@font-face {
font-family: ‘Guardian Titlepiece’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.ttf’) format(‘truetype’);
font-weight: 700;
font-style: normal;
}

@media (min-width: 71.25em) {
.content__main-column–interactive {
margin-left: 160px;
}
}

@media (min-width: 81.25em) {
.content__main-column–interactive {
margin-left: 240px;
}
}

.content__main-column–interactive .element-atom {
max-width: 620px;
}

@media (max-width: 46.24em) {
.content__main-column–interactive .element-atom {
max-width: 100%;
}
}

.content__main-column–interactive .element-showcase {
margin-left: 0;
}

@media (min-width: 46.25em) {
.content__main-column–interactive .element-showcase {
max-width: 620px;
}
}

@media (min-width: 71.25em) {
.content__main-column–interactive .element-showcase {
max-width: 860px;
}
}

.content__main-column–interactive .element-immersive {
max-width: 1100px;
}

@media (max-width: 46.24em) {
.content__main-column–interactive .element-immersive {
width: calc(100vw – var(–scrollbar-width, 0px));
position: relative;
left: 50%;
right: 50%;
margin-left: calc(-50vw + var(–half-scrollbar-width, 0px)) !important;
margin-right: calc(-50vw + var(–half-scrollbar-width, 0px)) !important;
}
}

@media (min-width: 46.25em) {
.content__main-column–interactive .element-immersive {
transform: translate(-20px);
width: calc(100% + 60px);
}
}

@media (max-width: 71.24em) {
.content__main-column–interactive .element-immersive {
margin-left: 0;
margin-right: 0;
}
}

@media (min-width: 71.25em) {
.content__main-column–interactive .element-immersive {
transform: translate(0);
width: auto;
}
}

@media (min-width: 81.25em) {
.content__main-column–interactive .element-immersive {
max-width: 1260px;
}
}

.content__main-column–interactive p,
.content__main-column–interactive ul {
max-width: 620px;
}

.content__main-column–interactive::before {
position: absolute;
top: 0;
height: calc(100% + 15px);
min-height: 100px;
content: “”;
}

@media (min-width: 71.25em) {
/ Additional styles can go here /
}
“`Here’s the rewritten CSS in fluent, natural English:

The main content column for interactive pages has a left border that is 1 pixel solid light gray. On screens wider than 81.25em, this border shifts slightly to the left. Inside this column, elements like atoms have no top or bottom margin but have 12 pixels of padding above and below. When a paragraph is followed by an atom, the padding is removed and replaced with 12 pixels of margin on both sides. Inline elements are limited to a maximum width of 620 pixels, and on screens wider than 61.25em, figures with the inline role also have this width limit.

For media sections containing a loop figure, the caption sits above other content with a z-index of 6. The loop button is 32 pixels wide, aligned to the bottom right, with a small right margin and extra bottom space. The caption button has a high z-index to stay on top. On screens wider than 46.25em, cinemagraph figures inside media sections have no maximum height restriction.

In the body section, self-hosted videos are displayed as block elements, up to 620 pixels wide, with 12 pixels of margin above and below. The loop figure and its video inside take full width, auto height, and are centered. If the loop figure is immersive, the video container expands to full width with no margin. On screens wider than 71.25em, immersive videos are 1140 pixels wide and shifted left by 180 pixels, with captions indented 20 pixels. On screens wider than 81.25em, they are 1300 pixels wide and shifted left by 260 pixels.

Custom properties define colors for dateline, header borders, caption text, caption backgrounds, and feature accents. Subheadings, pull quotes, and block quotes use secondary pillar colors, with pull quotes having a matching icon. In dark mode, these switch to dark mode pillar colors, unless the light color scheme is explicitly set.

Interactive content columns and atom elements have no padding. The first atom in an article body, comment body, or feature body, when followed by a paragraph or sign-in gate, has no special margin. Similarly, horizontal rules that are not the last one are followed by paragraphs without extra spacing.Here’s the rewritten text in fluent, natural English:

The first paragraph after an element atom, sign-in gate, or horizontal rule (except the last one) gets 14 pixels of padding at the top. The first letter of that paragraph uses a large, bold serif font (Guardian Headline or Georgia), is 111 pixels tall with a line height of 92 pixels, floats to the left, is uppercase, has 8 pixels of right margin, and takes its color from the drop-cap or pillar color variable.

Paragraphs that come right after a horizontal rule have no top padding. Pull quotes are limited to a maximum width of 620 pixels.

For showcase images, the caption is normally positioned statically and spans the full width, up to 620 pixels. On screens wider than 71.25 em, the caption becomes absolutely positioned with a max width of 140 pixels. On screens wider than 81.25 em, the max width increases to 220 pixels.

Immersive elements take up the full viewport width (minus the scrollbar). On screens narrower than 71.24 em, they are capped at 978 pixels wide, and their captions have 10 pixels of horizontal padding. On screens between 30 em and 71.24 em, the caption padding increases to 20 pixels.Here’s the rewritten version in fluent, natural English:

The immersive element has a maximum width of 738px. On smaller screens (under 46.24em), the immersive element should have a left margin of -10px and no right margin. For screens between 30em and 46.24em, the left margin increases to -20px, and the caption gets 20px of padding on each side.

On wider screens (71.25em and above), showcase images in the main content area should have a left margin of -160px. On even wider screens (81.25em and above), that margin increases to -240px.

The furniture wrapper is positioned relatively. On screens 61.25em and wider, it becomes a grid with 20px column gaps and no row gaps. The grid has two main sections: the left side (title, headline, meta, and standfirst) takes up 5 columns, and the right side (portrait) takes up another 5 columns. The rows are arranged so the title and portrait start together, followed by the headline, then the standfirst, and finally the meta.

In this layout, the first child of the headline section gets a top border. The meta section has some top padding and no right margin. The standfirst text has a small bottom margin, and its list items are 20px in size. Links in the standfirst are underlined with a specific offset and color, and they change color on hover.

The first paragraph of the standfirst has a top border and no bottom padding. However, on screens 71.25em and wider, that top border is removed.

Figures in the furniture wrapper have no margin on top or bottom, and a left margin of -10px. Inline figures have a maximum width of 630px.

On screens 71.25em and wider, the grid changes: the left side (title, headline, and meta) takes up 2 columns, the standfirst takes up 5 columns, and the portrait takes up 7 columns. The rows are arranged so the title and portrait start together at 80px tall, followed by the headline, then the standfirst and meta together.

In this wider layout, the meta section has a 540px-wide top border. The standfirst paragraphs have no top border, and the standfirst section itself has no top border either.The `e=standfirst]:before` rule adds a 1px-wide vertical line using the header border color. It’s positioned at the top, 0.5px from the left, and spans the full height of the element.

For screens wider than 81.25em, the `.furniture-wrapper` uses a grid layout with 16 columns and three rows. The title, headline, and meta span the first three columns, followed by the standfirst across the next five. The portrait section takes up the remaining eight columns. In this layout, the meta section’s `:before` element is 620px wide, and the standfirst’s `:before` is shifted slightly to the left.

Inside the article header, the labels within the title section have 2px of top padding. The headline’s `h1` is bold (600 weight), has a max width of 620px, and a font size of 32px. On screens wider than 71.25em, the max width shrinks to 540px and the font size increases to 50px.

For screens between 46.25em and 61.25em, the keyline-4 element has no right margin. Above 61.25em, it’s hidden entirely. The keyline-4 SVG uses the header border color for its stroke.

Starting at 46.25em, the meta section also loses its right margin. Its social and comment elements use the header border color for their borders. Inside the meta container, any `gu-island` elements are hidden.

The standfirst section is positioned with a left margin of -10px and 10px of left padding. From 46.25em onward, it gets 2px of top padding. Its paragraphs are regular weight (400), 20px in size, with 14px of bottom padding.

The main media section sits in the portrait grid area, with no top margin and 2px of bottom margin. Its inner divs are full width with no inline margin. Above 61.25em, the bottom margin is removed. On screens narrower than 46.24em, the media section stretches to the full viewport width (minus the scrollbar) and shifts 10px to the left. If the screen is between 30em and 46.24em, the left shift increases to 20px.

The figure caption is positioned at the bottom, with 4px top padding and 12px bottom padding. It uses the caption background and text colors, spans the full width, and has a minimum height of 46px. The caption’s span elements use the header border color for text and SVG fills. The first span is hidden, while the second is shown with a max width of 90%. On screens wider than 30em, the caption’s horizontal padding increases to 20px. If the caption has the `hidden` class, it becomes invisible.

The caption button is a circular, borderless element positioned at the bottom right (10px from the bottom, 8px from the right). It uses the caption background color and has a z-index of 30.Here is the rewritten text in fluent, natural English:

The CSS code adjusts the layout and styling of article pages, especially for mobile devices like iOS and Android. It sets padding, button positions, and column heights. On wider screens, it moves the left column up slightly and increases its height. Headings are limited to a maximum width of 620 pixels. The code also defines colors for dark mode and for different article sections. On iOS and Android, the first letter of the first paragraph after certain elements is colored based on the article’s secondary theme. The article header is hidden by setting its height to zero. The furniture wrapper—which contains labels and the headline—gets small padding at the top. Labels inside it use a bold serif font and take their color from the article’s main theme, with the text capitalized.Here’s the rewritten CSS in fluent, natural English:

For the headline inside the furniture wrapper on Android devices, the font size is 32 pixels, bold, with 12 pixels of padding at the bottom, and the color is set to dark (#121212).

On both iOS and Android, when an image appears inside the furniture wrapper, it is positioned relatively. It has a 14-pixel top margin and no left margin (0), but it starts 10 pixels to the left. Its width takes up the full viewport width, minus any scrollbar width, and its height adjusts automatically.

For the image itself, along with its inner container and any links inside it, the background is transparent. The width is again the full viewport width minus the scrollbar, and the height is set to auto (important).

The standfirst section (the introductory text) has 4 pixels of padding on top and 24 pixels on the bottom, with a negative right margin of 10 pixels.

Inside the standfirst, any paragraph text uses the font family: Guardian Headline, Guardian Egyptian Web, Guardian Headline Full, Georgia, or a generic serif font.

Links inside the standfirst, whether in a list item or not, follow the same styling.Here’s the rewritten version in fluent, natural English:

On Android devices, links inside the standfirst section of feature, standard, and comment articles use the pillar color, have no background image, are underlined with a 6px offset, and use a light gray underline color instead of a bottom border.

On both iOS and Android, when you hover over those same links, the underline color changes to the pillar color.

On both platforms, the meta section in these article containers has no margin.

Also on both platforms, the byline text, author names, author links, and any byline spans in the meta section all use the pillar color.For iOS and Android, the `.meta__misc` section inside `.furniture-wrapper` within article containers (feature, standard, and comment) has no padding.

On both iOS and Android, the SVG icons in the same `.meta__misc` section use a stroke color defined by `–new-pillar-colour`.

For the caption button inside `.element–showcase` in these article containers on both iOS and Android, it is displayed as a flex container with 5px padding, centered content, and a width and height of 28px, positioned 14px from the right.

The article body (`.article__body`) on both iOS and Android has 12px of padding on the left and right.

For images that are not thumbnails or immersive (`.element-image:not(.element–thumbnail):not(.element–immersive)`) inside the article body on both platforms, they have no margin and their width is calculated as `100vw – 24px – var(–scrollbar-width, 0px)`, with automatic height. Their captions have no padding.

For immersive images (`.element-image.element-immersive`) inside the article body on both platforms, the width is `calc(100vw – var(–scrollbar-width, 0px))`.

On iOS, within the article body, blockquotes with the class `.quoted` have a `:before` pseudo-element (the rule is incomplete in the original text).Here’s the rewritten version in fluent, natural English:

For quoted text in articles, the color is set by the new pillar color variable. Links within article text are styled with the primary pillar color, no background image, an underline, and a 6px offset. The underline color matches the header border. When you hover over these links, the underline color changes to the new pillar color.

In dark mode, the furniture wrapper background becomes dark gray (#1a1a1a). The content labels inside the wrapper use the new pillar color. The main headline (h1) has no background and uses the header border color. Standfirst text also uses the header border color. Links in the standfirst and author names in the byline follow the same styling.Here’s the rewritten version in fluent, natural English:

On both Android and iOS, the byline author links in the meta section of feature, standard, and comment articles use the new pillar color. Similarly, the SVG icons in the meta misc section of these articles are outlined in the new pillar color.

For showcase image captions in feature, standard, and comment articles, the text color is set to the dateline color on both platforms.

Blockquotes within the article body of feature, standard, and comment articles also use the new pillar color on both Android and iOS.

Finally, the main content areas—including article body, interactive content, feature body, comment body, and the body data attribute—all have a dark background color on both platforms.Here is the rewritten text in fluent, natural English:

On iOS devices, when viewing feature articles, the first letter of a paragraph that comes right after an element atom (or an element atom followed by a sign-in gate) should be styled in a special way. This applies to several sections of the article, including the main body, interactive content areas, feature body sections, and comment sections. The same styling rules also apply to standard articles and comment articles on iOS, covering the same areas like the article body, interactive content, feature body, and comment body.

On Android devices, similar styling is applied to feature articles.Here’s the rewritten version in fluent, natural English:

On Android devices, when viewing feature, standard, or comment articles, the first letter of the first paragraph after an element atom should be styled in a special way. This applies whether the paragraph comes right after the element atom, or after a sign-in gate that follows the element atom. The same rule applies to paragraphs in the article body, interactive content sections, feature body sections, body data sections, and comment body sections.Few would call him a dramatic figure, but Keir Starmer’s political career has followed an almost Shakespearean arc: just 11 years from entering parliament to leading Labour to an election win many thought impossible, and then, in the final two years, throwing it all away.

His downfall, of course, reflects an unprecedented era—one where voter loyalties splintered, a two-party system broke into five, and for the first time, Labour faced a real threat from both the left and the right.

Perhaps no one could have steered the party through all of this. But even Starmer’s closest allies and supporters would admit he was largely to blame. No modern prime minister has looked so perfect for the job on paper yet been so fundamentally ineffective in practice.

“Starmer didn’t know what he was doing in three ways,” said Anthony Seldon, the historian who has written biographies of every PM from John Major to Rishi Sunak.

“First, he never figured out what the job was—what does a prime minister actually do? Second, he never knew what he wanted to achieve, especially on economic policy. And third, he didn’t know who to appoint.

“Once you have those three things going wrong, it’s never going to work. It’s just a question of how quickly it falls apart.”

As a summary, this might sound harsh. But it’s hard to argue against the broader sense of a politician who was skilled at winning the Labour leadership and guiding the party to victory, but then froze when faced with the endless choices of power, hiding behind an ever-growing list of missions, goals, and plans for change.

This gap between campaigning and governing was noticed—with alarm—by some who worked directly with Starmer in the final days before Labour’s…The election victory in July 2024 was a landslide in terms of seats, though not in the popular vote.

View image in fullscreen
Starmer celebrates winning the 2024 general election with a speech at Tate Modern in London. Photograph: Ricky Vigil/Getty Images

One staff member recalled asking why they hadn’t seen a plan for governing yet, and was told there didn’t seem to be one. “After the win, we expected some kind of blitz of major policies. Instead, the PM just went around meeting mayors on a UK tour. A lot of people were saying: ‘This can’t be it. This isn’t how you do politics.’”

Some blame at least part of this shaky start on Sue Gray, the veteran civil servant who served as Starmer’s chief of staff. She’s another example of a highly capable person in the wrong role for their skills.

Others say the fault lies more with Starmer himself, for failing to shift his approach from opposition leader—focused on rebuilding the party after the disastrous 2019 election—to the inevitable prime minister-in-waiting. That meant he arrived at No 10 without a plan.

David Runciman, a political scientist and author, said: “Starmer thought he faced an uphill battle, and the real task was discipline and just squeezing as much as possible out of the next election.

“But in fact, from about halfway through that parliament—basically from the moment Liz Truss appointed Kwasi Kwarteng as chancellor—Labour was going to win the next election, no matter what. They had two years to prepare, and they didn’t.”

Gray was soon replaced by Morgan McSweeney, who had masterminded Labour’s unexpectedly fast recovery after Jeremy Corbyn, but was equally unsuited for the role. His main legacy was the disastrous appointment of Peter Mandelson as ambassador to Washington.

While Starmer is clearly a different politician from Boris Johnson, they share some similarities—especially the repeated and pointless changes to their top teams, followed by a slow realization that the problem wasn’t the aides, but the man at the center.

In another echo of the Johnson era, documents from Mandelson’s appointment showed Starmer acting more like a figurehead than a boss, with decisions made elsewhere and the PM simply rubber-stamping them.

View image in fullscreen
Morgan McSweeney, whose main legacy as chief of staff was the disastrous appointment of Peter Mandelson as US ambassador. Composite: Shutterstock/EPA

One Labour official says Starmer has always been keen to give trusted aides a lot of authority and freedom—a tendency that worked well when he led the Crown Prosecution Service (CPS) and later as opposition leader.

They added: “But government is different, and that system hasn’t worked. It becomes very hard to get consistency, because you end up with different people with different views, each with quite a bit of power and no real reason to align around one vision.”

Others disagree. One ally who worked very closely with Starmer as prime minister described him as not just hard-working but effective.

They said: “He’s not Obama when it comes to presentation, but then almost no one is. But he had a lot of other talents for the job, most of which the public never saw. If you want a presentation genius combined with all that, you might be waiting a long time.”

Much of Starmer’s work, the ally said, was based on his core belief in fairness. Others, however, argue that a key reason for his failure was the lack of a clear political philosophy.

“A core philosophy is what holds you together when things fall apart,” Runciman said. “Margaret Thatcher was the perfect example of that. But with Starmer, I couldn’t see it, and it never emerged.

“If your reason for being in government is ‘We’re more competent than the other guys,’ that doesn’t work when things go wrong.”

In one key way, Starmer is quite different from the four post-Brexit Tory prime ministers. Theresa May, Johnson, Truss, and Rishi Sunak were all somewhat unusual characters—whether awkward…Some people come across as hostile, borderline misanthropic, so narrowly focused they seem obsessive, or distant and irritable. In contrast, everyone who knows Starmer talks about how fundamentally normal he is—with his lower middle-class suburban background, love of football and the pub, he could have been designed for a focus group. They also mention his sociability and wide circle of friends, many of them outside politics.

It deeply frustrates almost everyone who has worked with Starmer that, despite all this, his public image is of someone who is not just boring and robotic, but also out of touch and—thanks to the knighthood he got for his work at the CPS—probably quite posh as well. Friends and colleagues often say they’re baffled that the person they know as open, thoughtful, and often funny in private seems to freeze up whenever a microphone or camera appears, even after years of hopeful coaching.

Starmer has always been a slightly odd politician. He was already 52 when he entered parliament, but because of his impressive career, he was immediately seen as a future leader. It only took a few months for him to reach the frontbench, and he joined the shadow cabinet soon after. This was, of course, under Corbyn—a tough experience that Starmer later compared to playing for a football team doomed to relegation: you try your best, but you can’t escape the reality. He thought about resigning several times but felt his role on Brexit was too important to give up.

When Corbyn resigned after the disastrous 2019 election loss, Starmer wasn’t the favorite at first. Observers assumed Labour members would stick with the left and choose Rebecca Long-Bailey. But a combination of a highly organized campaign and Starmer’s now-famous 10 policy pledges—which included left-leaning ideas like public ownership of utilities and ending student tuition fees—helped him win easily. And that’s where what some see as the golden phase of his political career began, even though the seeds of his later problems were already visible.

Most people in Labour assumed Starmer was like Neil Kinnock or John Smith—someone who would do the hard work of turning around a struggling and toxic party, but never actually get into power. For a while, that seemed very possible. Just over a year after becoming leader, Starmer briefly thought about quitting after Johnson’s Conservative party, boosted by a Covid “vaccine bounce,” won the ultra-safe Labour seat of Hartlepool in a by-election. The national polling gap that Starmer had painstakingly closed suddenly widened again, giving the Tories a nearly 20-point lead.

But luck was on Starmer’s side. Johnson self-destructed, and then Truss damaged the Conservative brand so badly that Sunak couldn’t fully fix it. Just as the circumstances of the 2019 election seemed designed to help Johnson, the same was true in 2024 for Labour. Still, Starmer had prepared his party with a ruthlessness that some—including former colleagues on the receiving end—knew well, but that surprised others. This was most obvious when he worked to rid Labour of antisemitism and the public perception that it had been tolerated under Corbyn.

Within weeks of becoming leader, he fired Long-Bailey from his shadow cabinet over a retweeted post. A few months later, Corbyn lost the party whip. Hundreds of members were suspended or expelled. Under the guidance of McSweeney, who moved from the controversial Labour Together thinktank to lead Starmer’s leadership campaign and then plan for an election, the party was firmly steered away from Corbyn’s left-wing populism, and the 10 pledges were largely forgotten.

As a way to reshape a party, it was undeniably effective. But the zeal with which McSweeney and his team approached it…Allies of Labour’s left were purged, demoted, sidelined, or otherwise put down—what’s often called “punching hippies.” This arguably left Starmer with a weaker, more shallow kind of authority.

This relentless focus on campaigning also helped create a party that was dead set on winning power but not very clear on what to do with it. That’s a bit of an oversimplification, though. Starmer’s Labour has introduced some fairly radical, pre-planned policies—like improving workers’ and renters’ rights—along with some decisions made while in office, such as scrapping the two-child benefit cap.

But almost from the start, the government was hit by self-inflicted problems. It began with a damaging row over election freebies, followed by a series of policy mistakes and U-turns, especially on welfare changes and cutting pensioners’ winter fuel allowances.

There were also failures in dealing with Reform UK. Tough talk on migration culminated in Starmer’s reference to an “island of strangers,” which accidentally echoed Enoch Powell. This did little to slow down Nigel Farage’s party, and more voters turned to the Greens, feeling Labour didn’t want them.

If Hartlepool was a sign of Starmer’s early struggles, another by-election in February this year showed how far his party had fallen again. The Greens overturned a 13,000 Labour majority in Gorton and Denton, Greater Manchester.

Some things weren’t Starmer’s fault. He wouldn’t have chosen Donald Trump’s re-election, let alone the US-Israeli attack on Iran, which dealt an unexpected blow to an economy that was showing signs of life.

At the same time, handling Trump and the delicate global situation is one of the few areas where Starmer has clearly done well and earned credit. He first won Trump’s affection—how he did so, Starmer admitted privately, was a mystery even to himself—before weathering the insults with dignity.

But even as Labour MPs pointed to these successes, or to Starmer’s decency and hard work, the numbers became stark. Labour polled as low as 17%, sometimes in fourth place. Starmer’s personal ratings were so bad that only Truss saved him from being the most unpopular PM in modern polling history. Focus groups described him as a “jellyfish” and a “doormat.”

It’s been less than two years since the relaxed, energetic prime minister gave his first Downing Street press conference after the election. He joked about still getting lost in his new workplace and promised a flood of policies. Labour had been planning for months, he said, using the phrase “hit the ground running” three times in one minute.

If there ever was a cohesive plan for government, it fell apart almost as soon as it met reality.

The deeply bruised party, so carefully rebuilt, will have to start all over again. Starmerism, if it ever existed, will be buried quickly and decisively.

With his project over and Andy Burnham waiting in the wings, Runciman argues that Starmer will likely be remembered as someone weighed down by a huge majority he never quite knew how to use, and who never properly made the transition from being a good opposition leader to running the country.

Runciman said: “I think the thing that will really stand out, the thing that makes his premiership different from all the others, is the mismatch between what looks like the scale of authority and legitimacy that a thumping majority in parliament should give, and the complete lack of actual authority and legitimacy in practice.

“The majority was almost a curse for him. I think he would have had a more successful premiership with a smaller majority.”

According to Seldon, Starmer will be remembered as the fourth Labour PM after Attlee, Wilson, and Blair to win a landslide.election, but the first to do almost nothing with it. He said: “He’s a decent, hard-working, serious person who could have made it—but crucially, fatally, he didn’t have the ability to learn how to do the job.”

Frequently Asked Questions
Here is a list of FAQs about the claim that Starmer had a chance to succeed but he froze when faced with the demands of leadershipturning a triumph into a tragedy

BeginnerLevel Questions

Q What does Starmer froze mean in this context
A It means that when Keir Starmer had a clear opportunity to take decisive action or seize a political advantage he hesitated delayed or failed to act confidently This inaction turned a potential win into a loss

Q What triumph is being referred to
A The triumph usually refers to a specific moment of political strengthlike a major policy win a strong poll lead or a clear failure by his opponentsthat gave him a golden opportunity to advance his agenda or solidify his leadership

Q What tragedy happened instead
A The tragedy is the negative outcome that followed his hesitation This could be a lost vote a damaged reputation internal party rebellion or allowing his opponents to regain the initiative and attack him

Q Is this about a specific event or a general pattern
A It can be about a specific event or a general criticism of his leadership stylethat he often overconsults delays decisions and misses the moment to act boldly

Intermediate Advanced Questions

Q Can you give a concrete example of when Starmer froze and turned a triumph into a tragedy
A A common example is the 2023 Uxbridge byelection loss Labour was expected to win easily due to the Tories unpopularity but Starmers cautious unclear stance on the ULEZ expansion allowed the Conservatives to turn it into a local protest vote costing Labour a safe seat

Q What are the demands of leadership that he supposedly failed to meet
A These demands include making quick clear decisions under pressure taking personal ownership of a strategy communicating a bold simple vision and being willing to take political risks rather than always playing it safe

Q Is it fair to call this a tragedy or is that an exaggeration