The D-backs did it again Wednesday night in Phoenix.

Geraldo Perdomo dropped a 3-run double — the kind of swing that lands differently when a team already knows it owns you — and Eduardo Rodriguez dealt deep into the game, and the Arizona Diamondbacks stayed undefeated against the San Francisco Giants in 2026 en route to another 5-4 win. Ketel Marte homered. Nolan Arenado homered. A 35-50 ballclub made its five-plus hour bus-stop in Phoenix and got handed another one.

That's the story of this series, this season, and increasingly this franchise in a sentence.

The Giants came into Chase Field having lost five straight on the road. Trevor McDonald, who entered the night at 2-6 with a 4.94 ERA and a WHIP that doesn't bear repeating, started for San Francisco. The asking price — survive a hostile building against a club that has made you its own personal batting practice — was already too steep. The Diamondbacks didn't need a masterpiece from Rodriguez. They had Perdomo.

What "undefeated against the Giants" actually means

It's easy to wave this away. The Giants are 35-50. Everybody beats the Giants. The numbers — dead last in the NL West, 15 games under .500, a .411 win percentage that tracks the Devers trade like a horror movie sequel — are bad enough that getting beaten by Arizona feels almost routine.

But Arizona's dominance is qualitatively different. They swept the Giants at Oracle Park in May. They're on the verge of sweeping them in Phoenix now. In each instance, San Francisco hasn't just lost — they've looked incapable of manufacturing the specific things that beat the Diamondbacks: bullpen consistency, an offense that doesn't go quiet in the middle innings, starting pitching that can eat enough innings to limit exposure to the Arizona lineup.

The Perdomo double is a perfect symbol of why. San Francisco left the wrong guys on base at the wrong time, and Arizona had enough situational lineup depth to make them pay. That's not a night-specific observation. That's structural.

The building case for a sell

July 31 is exactly 29 days away.

At 35-50 — 15.5 games out of first, 8.5 games out of even the wild card picture — the Giants have crossed from "bad team contending with adversity" into "team that needs to decide who it's building toward." Nobody inside the organization will say it publicly until around July 20, when the calendar forces their hand. But the math doesn't care about the politics.

Logan Webb is the obvious conversation piece. He's the best starter on the roster, on a reasonable contract, with legitimate pull for a contender looking for a rotation anchor before the deadline. We wrote last week that Webb's trade value was generating real calls. Tonight was another data point: the guy pitching in front of him is two-and-six. The night-over-night reality for Webb is that he's Atlas holding up a structure that doesn't deserve him.

Buster Posey's front office doesn't have to move Webb. But an honest look at the standings — and at how this Arizona series went — makes it harder to justify the alternative. Running it back with a 2-6 starter framing your rotation isn't a competitive posture. It's hoping the math reverses itself.

Analysis only — no bet placed on this game

The lines I pulled reflected a game already in its late innings, with Arizona ahead 5-4. I'm not going to manufacture a wager on nine months' worth of mistakes. Sometimes the story is just the story: the Diamondbacks owned this Giants team all year, Perdomo's double made it official again tonight, and in a month someone in the front office is going to have to stand up and explain what any of it is for.

35-50. Undefeated against. Twenty-nine days.