Note: Free agency and salary data is from overthecap.com.

Unrestricted Free Agents

Michael Floyd (NE, 27) – Floyd was having a miserable contract season before he compounded matters by making a terrible life decision. Floyd earned his release from the Cardinals in December when he was arrest for drunk driving when he blew a .217, his second DUI offense in five years. The Patriots claimed him off waivers, and he made almost no impact in the final two regular season games and in the playoffs – the Pats made him inactive for the Super Bowl. He finished the year with 37/488/5 receiving on 76 targets (48.7% catch rate, 13.2 YPC) in 13 games between the Cardinals and two games with the Patriots. Prior to his arrest and poor showing in 2016, Floyd would’ve been one of the more coveted free-agent WRs this off-season. He is the prototypical outside WR that any team would love to have because of his size (6’2”, 222 pounds) and athleticism. He could now be stuck playing on a one-year, prove-it deal in 2017. He also has a hearing at the end of February, just before the start of free agency, and he could face a 180-day jail sentence for a second offense. Needless to say, Floyd’s career, and life for that matter, is at a bit of a crossroads.

Anquan Boldin (Det, 36) – Expectations were quite low for Boldin when the Lions signed him late in July, and he turned out to be a very pleasant surprise at 36 years old. Boldin came in right off the street to be a chain-mover in the middle of the field, and he turned into Matthew Stafford’s go-to guy in the red zone. He finished tied for second in red-zone targets (26) with Davante Adams, and Boldin scored his most TDs in a season since he was with Cardinals back in 2008. He finished the year with 67/584/8 receiving on 95 targets (70.5% catch rate, 8.7 YPC) in 16 games. Boldin averaged 10.8 FPG, ranking 47th at the position behind Marqise Lee. He played on 80% of the snaps, saw a 16.5% target share, and had 9.72% of the team’s touches. Boldin and Cordarrelle Patterson finished tied for last in YPC (8.7) among WRs with 50+ catches, so he didn’t do anything after the catch. It sounded like Boldin was leaning toward playing in 2017 after their Wild Card loss, "I haven’t sat down with my family at this point, but there’s still a passion that burns within me for football." Bolding hasn’t been a playmaker in two seasons, but he’s just fine as a #3, chain-moving WR like he was last season. The Lions will likely welcome Boldin back with open arms, but he’ll only have fantasy relevance if he continues to score TDs like he did in 2016.

Marquess Wilson (Chi, 24) – Wilson has flashed when he’s played in his first four seasons, but the playing part has been very difficult for the wiry Wilson – he’s listed at 6’4”, 206 pounds. He needed surgery on his foot in November 2015, and he re-broke his foot at minicamp in June. He missed the first 10 weeks of the season before finally getting on the field in Weeks 11-13. He unfortunately re-broke his foot once again and missed the final four games of the year. Wilson finished with 9/160/1 receiving on 16 targets (56.3% catch rate, 17.8 YPC), averaging 10.3 FPG and playing 39% of the snaps in his three games. Wilson is long and can run, which makes him an intriguing project. He’s also just 24 years old despite being a four-year veteran, but the issue is that he’s played in just 30 of 64 possible games (46.9%). Wilson is going to struggle to find much of a market, and he’ll likely have to take a one-year, prove-it deal and compete for a spot in training camp.

Victor Cruz (NYG, 30) – Cruz made an incredible comeback from a torn patellar tendon in 2016, an injury that cost him basically two years of his prime (2014 and 2015), but unfortunately he was pretty much useless for fantasy last season. In 15 games, missing one with an ankle injury, Cruz posted 39/586/1 receiving on 72 targets (15.0 YPC, 54.2% catch rate). At 6.9 FPG, Cruz finished tied for 88th at the WR position. Ironically, Cruz’s only TD came in Week 1 against Dallas, and his season-high in yardage (91 yards) came in Week 2. After that, his production went completely downhill. Cruz finished as a top-36 WR just twice, and the two weeks were so far apart that likely no one caught either one – Weeks 1 and 16. Cruz played 77.7% of the Giants’ snaps on the year when active, but he simply couldn’t move the way he could before his injury. The Giants parted ways with Cruz in the middle of February, saving $7.5 million by cutting him. Cruz didn’t have much juice left in 2016, and we can’t imagine him having much of a market as a free agent.

Vincent Jackson (TB, 34) – Coming off of a knee injury that claimed 11 games in 2016 and a trip to the injured-reserve to boot, it is possible Jackson has played his last snap with the Bucs and possibly in the NFL. Jackson is now 34-years-old and his last two years have been cut short due to injuries. He got a massive $56 million, 5-year deal in 2012 with $26 million guaranteed and is now heading toward free agency. If his health checks out and if Jackson wants to play one more year, he possibly could get a deal in a veteran-mentor role while primarily playing a limited snap rate. Jackson’s receiving output per game has been in a five-year decline since his best season in 2012. Jackson ripped defenses for 86.5 yards per game in 2012 and he has since slipped to 76.5 (2013), 62.6 (2014), 54.3 (2015), and 34.6 YPG in 2016. V-Jax posted just 15/173/0 receiving on 32 targets (46.9% catch rate, 12.7 YPC), averaging 6.5 FPG in five games. If Jackson does not elect to retire, he’ll have to take a one-year deal in the open market. Jackson used to be one of the league’s premier deep-threats, but he has lost more than a step due to various injuries over the past three years.

Andrew Hawkins (Cle, 31) – The Browns released Hawkins just before the start of free agency. He played a small role in the Browns passing game in 2016, racking up just 33/324/3 receiving on 54 targets (61.1% catch rate, 9.8 YPC), despite playing 62% of the snaps in 16 games. Hawk is restricted to the slot at 5’7”, 180 pounds, but he’s a slippery option in the middle of the field. Some team desperate for help out of the slot will likely give him a look, but he’s not guaranteed to be on a roster in Week 1.

Stevie Johnson (SD, 30) – Johnson suffered a torn meniscus in the first couple days of training camp, and he subsequently missed the entire season after he needed surgery in August. He played in just 10 games in his first season with the Chargers back in 2015, and the organization decided to save $3.5 million by releasing him before the start of free agency. Johnson will turn 31 later this summer, and we’re not expecting him to have much of a market since he’s struggled to stay on the field and been mediocre the last four seasons. He’ll likely have to sign a one-year deal and fight for a roster spot in training camp.

Rod Streater (SF, 29) – Streater’s 60-catch season from back in 2013 seems like it happened ages ago. He was hoping for a fresh start when he went from Oakland to Kansas City last off-season, but he was a cut candidate before the Chiefs traded him to the 49ers for next to nothing in early September. He finished the year with 18/191/2 receiving on 27 targets (66.7% catch rate, 10.6 YPC) while playing 24.9% of the snaps in 16 games. He played more and his best when Torrey Smith went out of the lineup late in the year, but the 49ers won’t necessarily keep Streater around.

Jordan Norwood (Den, 30) – Norwood has carved a long career as a former UDFA out of Penn State, and he beat out the likes of Bennie Fowler and former second-round pick Cody Latimer for the #3 WR job. Norwood finished with 21/232/1 receiving on 35 targets while playing 49.2% of the snaps in 14 games. Norwood also contributed as a punt returner the last two seasons, including a Super Bowl record 61-yard return in Super Bowl 50. The Broncos need to seriously upgrade their WR corps, but Norwood does bring some versatility because of return ability, so he could be back as a depth option.

Cecil Shorts (TB, 29) – Shorts has never been able to stay healthy for major stretches of time, and he suffered one of the more catastrophic injuries in 2016. He tore his right ACL, MCL, and PCL and also dislocated his knee in early December. He turned 29 last December, but his career is in serious jeopardy. At the very least, Shorts is a real long shot to play in 2017 because of the extensive rehab that lies ahead for him. Shorts was a playmaker early in his career before his injuries started to catch up to him.

Marlon Brown (Den, 25) – Brown once caught 7 TDs as a rookie back in 2013, but he couldn’t even get on the field in 2016. The Broncos waived/injured him early in August with a back injury before re-signing him in November, but he never got on the field. Brown will be just 26 years old in April, but his career has been a downward trajectory since his rookie season. Gary Kubiak, who coached him in Baltimore, will also be gone next season, so Brown might have to look elsewhere for work.

Marc Mariani (Ten, 29) – Mariani is regarded as one of the better returners, bouncing between the Titans and Bears since he broke into the league in 2010. The Bears surprisingly cut him before the season and the Titans snatched him up. He ended up posting 560 kick-return yards and 235 punt-return yards. The Titans love him as a returner, so he could be back to compete for a job.

Percy Harvin (Buf, 28) – Harvin surprised many by coming out of retirement at midseason for the WR hungry Bills. But, to the surprise of no one, Harvin played in just two games before his migraines crept back in and ended his season. We can’t imagine any team inquiring about his services for the 2017 season.

Restricted Free Agents

Taylor Gabriel (Atl, 25) – Gabriel couldn’t make the worst team (Browns) out of training camp in 2016, but by the middle of the season he was making critical big plays for the eventual Super Bowl runner-ups (Falcons). His former OC in Cleveland Kyle Shanahan in 2014 had the Falcons scoop him up off of waivers, and Gabriel became an interesting chess piece by Week 8. He averaged a strong 0.546 fantasy points per route run, finishing fourth among all receivers in fantasy points/route in 2016. He finished the year with 35/579/6 receiving on 50 targets (70.0% catch rate, 16.5 YPC) and 4/51/1 rushing. He averaged 10.8 FPG in 13 games, tying him with Anquan Boldin for 47th at the position. Gabriel played just a 42% snap rate, but he was the much-preferred No. 2 fantasy receiving option over Mohamed Sanu by the end of the year. Gabriel finished the fantasy regular season (Week 1-16) with six top-30 PPR performances while Sanu had just four. What will be most interesting in 2017 re-draft formats is the cost difference between Sanu and Gabriel. While Sanu projects to be on the field most often, Gabriel owns the higher upside role by a mile. Gabriel’s average depth of target was 3.2 yards further downfield than Sanu’s in 2016. Gabriel was a spark plug in Atlanta’s offense, but he’s only been used effectively while with Shanahan in 2014 and 2016. We’ll see if Steve Sarkisian can find a way to keep him involved next season.

Josh Gordon (Cle, 25) – Many fantasy owners wasted a pick on Gordon last summer as he never made it back to the field when he first became eligible in Week 5. He went into rehab last fall after yet another violation of the league’s alcohol and drug policy. He’s indefinitely banned from the NFL until further notice, and HC Hue Jackson said that the Browns have moved on from Gordon. At this point, he’s probably a long shot to play in 2017, and it’s starting to look like he may never play in the league again.

Josh Huff (TB, 25) – Huff earned his ticket out of Philadelphia because of DUI, marijuana possession, and speeding charges in early November. He went through waivers unclaimed before the Buccaneers eventually snatched him up a week later. In 7 games with the Eagles and 3 games with the Bucs, he posted 16/113/1 receiving and added 324/1 in kickoff returns. Huff won’t be much help as a WR for a Buccaneer team desperate for receiving help, but he could easily stick around here as a kick returner.

Corey Fuller (NO, 26) – Fuller started the season reserve/PUP list after breaking his foot in OTAs while with the Lions. The team activated him in early November but they waived him two weeks later after spending his first four seasons on the fringe of their roster. The Saints scooped him up and even called him up of their practice squad heading into Week 15, but Fuller never appeared in a game. He’s regarded as a good athlete on the outside but it’s never translated to the field since being taken in the sixth round in 2013.

Chris Matthews (Bal, 27) – Remember this guy? Matthews went from anonymity, to shocking Super Bowl hero in 2014, back to anonymity the last two seasons. He didn’t appear in a single game for the Ravens last season. He’s a huge target (6’5”, 218 pounds), but he’s yet to really do anything outside of Super Bowl XLIX and his career is teetering on being over.

Exclusive-Rights Free Agents

Willie Snead (NO, 24) – Snead had a strong 2016 season, but he clearly found himself behind both Michael Thomas and Brandin Cooks on the Saints’ target totem pole. After posting 69/984/3 receiving on 101 targets in 2015, Snead backed up his unexpected breakout campaign with 72/895/4 on 104 targets (69.2% catch rate, 11.4 YPC) in 2016. He averaged 12.8 FPG in 15 games, which ranked him 28th at the position. Snead did not have much touchdown equity because of his role — he ran over 70% of his routes from the slot — but he did catch 4+ passes 10 times and his 1.89 yards per route run was fourth-best among qualified slot receivers, per PFF. Only Jarvis Landry, Julian Edelman, and T.Y. Hilton gained more cumulative receiving yards in the slot than Snead did. Unfortunately, Snead’s consistency did not generate a big weekly ceiling or floor. He only finished as a top-12 receiver (WR1) twice during Weeks 1-16 and finished the year with just five top-24 performances (WR2). Snead will undoubtedly be the Saints’ cheapest receiving option in 2017 fantasy leagues, but he’ll also have the weakest upside by a good margin, too. Snead is an exclusive rights free-agent this offseason, so he’s essentially stuck to a one-year deal unless New Orleans looks to lock him up to long-term deal.

Adam Humphries (TB, 23) – Humphries proved he could play a small- to mid-size role in his second-year out of Clemson. The gritty 5’11” receiver ran 76% of his routes from the slot, ranking a modest 34th out of 54 qualifying slot receivers in yards gained per slot route (1.18) per PFF. In fact, Humphries’ 16.8 target rate on slot routes tied known-slot baller Jamison Crowder for 26th in the league. Humphries finished the year with 55/622/2 receiving on 83 targets (66.3% catch rate, 11.3 YPC) for 8.7 FPG in 15 games. Due to Tampa’s offensive makeup and identity, Humphries will never be a voluminous PPR option out of the slot like Jarvis Landry or Julian Edelman, but Humphries certainly showed he belongs as a spot role player in three-wide receiver sets for Jameis Winston and the Bucs’ pass attack in the future. Tampa will go after receivers this offseason in free agency and/or the draft with Vincent Jackson entering free agency and past his prime. They need the most help on the outside, but they could bring in some competition for him out of the slot.

Chris Harper (SF, 23) – Harper spent most of his rookie season with New England before getting cut toward the end of 2015. The 49ers scooped him up but Chip Kelly didn’t really give him much run until the end of the year. Harper ended the season with at least a catch in the final seven games of the year, posting 13/133/0 receiving while playing 47.6% of the snaps in that span. The 49ers need to overhaul their entire WR corps over the next season or two, but they are still enough of a mess for Harper to earn a backup role next September.

Dezmin Lewis (Buf, 24) – Lewis was the MVP of OTAs for the Bills, but he quickly turned into a zero once the pads went on in training camp. Perhaps it was just hopeful thinking for the Bills because looks like he looks (6’4”, 214 pounds) and runs (4.58) like a prototypical outside WR. The Bills had one of the worst WRs corps in the league last season, and Lewis managed an appearance in just one game without a catch. He is a small-school kid out of Central Arkansas, but he has no excuses now for still being behind the curve.

Donteea Dye (TB, 23) – Dye had some run as a starter during the 2015 campaign as a UDFA rookie, but he did little in his second season. The Bucs waived after the third preseason game after he suffered a hamstring injury. He eventually bounced on and off their practice squad before being added to the 53-man roster in early December after Cecil Shorts’ season-ending knee injury. He appeared in one game but didn’t register a catch, and he’ll be in a struggle to make this team out of camp.

Javontee Herndon (LAC, 25) – Herndon needed a knee scope just before the season, and they placed him on the IR since he was battling to be the #5 WR. He had a decent showing in 2015 with 24/195/0 receiving in eight games, so they’ll give him another chance to keep for one of the last WR spots next training camp.

Tre McBride (Ten, 24) – The Titans weren’t exactly loaded with talent at WR the last two years, but he’s been able to get on the field only nine times and has just 2 catches in 2015-16. He has spent most of his time on the practice squad the last two seasons, so he’s running out of time to get on the field. The Titans are also likely to draft a WR in the first couple rounds, so there will be more competition to stay on the roster.

Nick Williams (Atl, 26) – Williams appeared in just two games late in 2016, making an impact in Week 14 against the Rams with 4/49 receiving. Before the Falcons brought in the likes of Mohamed Sanu and Taylor Gabriel last off-season, Williams played in 14 games and posted 17/159/2. The Falcons will look to bring in more depth this off-season, so he could be hard pressed to stick around.

Quan Bray (Ind, 23) – Bray has worked as a return specialist in his first two seasons, but a broken ankle prematurely ended his season after six weeks. He registered just 3 catches in 2016 while playing 8.0% of the snaps, even with Donte Moncrief missing four games while Bray was still healthy. Bray’s only chance of making the team out of training camp is if he wins a spot as a returner once again.

Bralon Addison (Chi, 23) – Addison spent the majority of last season on the practice squad before getting called up for the final two games of the season. He doesn’t have much size (5’9”, 197 pounds), so he’ll have to make his mark as a returner or out of the slot in the future.