NFL teams and players spend most of the offseason touting improvement. Not every move works out, of course, and sometimes the missed opportunities are obvious to the naked eye.
Here are seven of them, ranked roughly in order of the degree of, well, opportunity missed.
1. Arizona Cardinals botch the Josh Rosen trade
To be fair, there is no guidebook for handling Arizona's draft situation. No team had ever traded away a first-round quarterback after one year. The Cardinals made a defensible decision in drafting Kyler Murray, and that necessitated a move on Rosen.
But at 22, Rosen remains an elite asset who should have drawn more than a late-second-round pick and a fifth-round pick. The time to deal him was before they selected Murray, not after when there was no question they had to do it. Murray will help the Cardinals move forward, but the job would have been easier with more players and/or draft picks surrounding him from a Rosen trade.
What happens now: Rosen will get a chance to start with the Dolphins, a rebuilding team that nevertheless has better short- and long-term prospects than the Cardinals.
2. Teddy Bridgewater turns down Miami Dolphins
After three largely inactive years, Bridgewater had a chance to start again with the rebuilding Dolphins. It was clearly not the most attractive quarterback job in the NFL, given its potential short-term time frame and the hurdles the Dolphins face in the AFC East. But by turning down the Dolphins and returning to the New Orleans Saints as Drew Brees' backup, Bridgewater, 26, further delayed his return to the field.
Waiting for the right opportunity, or at least a better one, makes sense only as long as one still seems likely. When he hits free agency in 2020, possibly four years removed from his most recent meaningful snap, will a team in better shape than the Dolphins be interested?
What happens now: The Dolphins recovered well, signing veteran Ryan Fitzpatrick and acquiring Rosen. Bridgewater will sit behind Brees this season in New Orleans, barring an injury.
3. Russell Wilson compromises in contract negotiations
It might sound odd to call Wilson's deal with the Seahawks a "compromise." After all, he is now the NFL's highest-paid player, based on new money average and signing bonus. But at age 30, as the Seahawks' unquestioned franchise player, he had the leverage to push into new realms.
It might have meant playing out the 2019 season without a new deal, but ultimately it could have led to precedent-changing structures such as four fully guaranteed years or perhaps a tie-in to the rise of the salary cap. Wilson was well within his rights to stop short of that, but it was a loss for those who want to see fundamental changes to NFL player contracts.
What happens now: Wilson will be the Seahawks' starting quarterback for the foreseeable future. But the fully guaranteed Kirk Cousins contract, signed in 2018, remains an extreme outlier in the NFL's contract structure landscape.
4. Adam Humphries chooses Tennessee Titans over New England Patriots
Humphries faced a dilemma after agreeing to terms on a $36 million free-agent offer from the Titans. He could sign the contract or consider a new, higher offer from the Patriots. Ultimately and honorably, Humphries kept his word with the Titans. But in doing so, he chose a power-running team over one whose use of the slot position in the past two decades has changed the game.
Humphries was the NFL's third-most productive receiver from the slot with the Tampa Bay Buccaneers last season, and one can only imagine what he might have done for the Patriots in 2019 and beyond.
What happens now: Humphries will try to elevate a Titans offense that finished 2018 with the NFL's fourth-fewest passing yards (2,975). Without Humphries, the Patriots signed incumbent slot receiver Julian Edelman to a two-year contract extension. Humphries (25) is eight years younger than Edelman (33).
5. New York Giants get no immediate return for Landon Collins
Plenty of criticism has fallen on the Giants both for their decision to draft quarterback Daniel Jones and for using the No. 6 overall pick, rather than No. 17, to grab him. But both choices are defensible from a broad view. Allowing Collins to depart via free agency, rather than using the franchise tag to execute a trade, though? That was at least uninspired and at most felony mismanagement.
Collins might generate a third-round compensatory pick, but that won't be available for use until next year. The Giants have lost 24 of their past 32 games, and have one playoff appearance in seven seasons. They missed a chance to generate more help now. And the return for losing one of their best players won't be available until September 2020 at the earliest.
What happens now: Collins will face the Giants twice a season with the Washington Redskins. The Giants acquired Cleveland Browns safety Jabrill Peppers to replace him, but had to give up receiver Odell Beckham Jr. to do it.
6. San Francisco 49ers miss out on Odell Beckham Jr. and Antonio Brown
Fifty-two wide receivers caught more passes last season than the 49ers' team leader (Kendrick Bourne, 42). In a draft class that lacked a dominant blue-chip player at the position, two of the league's top veteran playmakers were available via trade. But the 49ers' offer for OBJ fell short, and they decided not to pursue Brown.
Instead, they signed veteran Jordan Matthews, and then drafted Deebo Samuel and Jalen Hurd in the second and third rounds, respectively. Had they closed the Beckham deal, the 49ers would have had an elite receiver in place for quarterback Jimmy Garoppolo's return from a torn ACL, making a strong duo as the franchise tries to elevate past 22 losses in the first 32 games of the John Lynch/Kyle Shanahan era.
What happens now: Beckham landed in what is arguably a better spot, playing alongside receiver Jarvis Landry and with quarterback Baker Mayfield in a Cleveland Browns scheme that was electric in the second half of last season. Brown found a team that wanted him -- the Oakland Raiders -- and a new contract as well.
7. Anthony Barr turns down chance to rush passer with New York Jets
Barr is the rare outside linebacker who was drafted in the top 10 but isn't used much as a pass-rusher. Is that a function of the Minnesota Vikings' scheme, which deploys him all over the field, or his limited skills as a rusher? The Jets wanted to find out and offered him a massive free-agent contract that Barr accepted before changing his mind and returning to Minnesota.
Some around the league think Barr's speed and long body would make him a dangerous pass-rusher on a regular basis. We might never know the answer.
What happens now: Barr will resume his role as a three-down, space 4-3 linebacker for the Vikings. His contributions might not appear any more frequently on the stat sheet, but Vikings coach Mike Zimmer believes he is central to running a multiple scheme. Meanwhile, the Jets still don't have a proven edge pass-rusher, but they hope rookie Quinnen Williams can give them a push up the middle.