The San Francisco 49ers report for training camp on July 25, and with time ticking down, we’re back for our annual roster ranking feature. The past two years, we’ve put together a consensus ranking of the 49ers 90-man roster. It includes ranking from myself and other Niners Nation staff.

The San Francisco 49ers return to training camp in nine days, and that means it is time for what will hopefully continue to be a regular annual feature. A year ago, we put together a consensus ranking of the 49ers 90-man roster. It included rankings from myself and 12 of our writers. You can look at last year’s full rankings here.

This year, we’ve got 18 people voting. Since this is entirely subjective, I did not provide a specific framework for voting. I could have said “the best,” or “the most important,” or a whole host of other possible ideas. The Instead, I just told people to rank the 90-man roster heading into 2018. It’s not an exact science, but none of this is!

Thanks to Greg Valerio, Oscar Aparicio, Tracy Sandler, James Brady, Jennifer Chan, Pat Holloway, Steve Busichio, Scott Geelan, Mark Saltveit, TryAndCatchVD, Joe The Wizard, Scott Geelan, Josh Eccles, Josh Cootner, ak4niner, El Shorts, Alex Eisen, and Akash, Anavarathan.

I’ve included the high and low ranking for each player, and then also my own ranking. On to spots 71-80!

80. Terrell Williams, S (High: 65, Low: 88, Fooch: 78)

The 49ers signed Williams as a UDFA this year, and he arguably lucked out more than most of the UDFAs. The 49ers are relatively thin at safety behind their starters, and the absence of rehabbing players like Don Jones, Chanceller James, and Marcell Harris meant more reps higher up the depth chart for Williams. If he has impressed, it bodes well at least for his practice squad chances, and maybe for a roster spot.

79. Malcolm Johnson, FB (High: 61, Low: 90, Fooch: 81)

Another one I probably should have ranked lower. Nobody is supplanting Kyle Juszczyk, so Johnson’s best shot at earning a roster spot is excelling on special teams or adding some versatility to his skillset. It is worth noting, Johnson represents the first non-rookie on the list. The 49ers signed him to a reserve/future contract back in January. He spent two seasons with the Cleveland Browns.

78. Jeff Locke, P (High: 53, Low: 90, Fooch: 89)

Quick note on Locke. There was a mistake in the rankings with a name duplicated. Locke should be No. 82, Coleman Shelton up to No. 80, and everybody between them and here bumped up a spot. That being said, Locke is basically there to give Bradley Pinion some rest, give the 49ers a left-footed punter look, and get some more film that he can show other teams. Useful, but not someone otherwise making an impact on the roster.

77. Emmanuel Moseley, CB (High: 58, Low: 90, Fooch: 83)

The UDFA received a sizable $30,000 in guaranteed money, which ranked third on the team behind cornerback Tarvarus McFadden and center Coleman Shelton. Moseley worked at nickel back this offseason, which puts him in competition with K’Waun Williams and D.J. Reed, among others. Williams signed a contract extension last fall after signing a one-year deal the prior spring. The addition of Reed leaves Moseley in a tough spot competing for an opportunity.

76. Cole Wick, TE (High: 55, Low: 86, Fooch: 82)

Wick joined the 49ers in January on a reserve/future contract. He spent a sizable chunk of 2016 on injured reserve and after being released in 2017, he ended up on the 49ers practice squad. The team did not promote him when Cole Hikutini got hurt, but they brought him back after the season ended. Hikutini is likely the favorite for the third tight end role, but Wick and Ross Dwelley could offer some competition.

75. Max McCaffrey, WR (High: 62, Low: 88, Fooch: 72)

The son of former Denver Broncos wide receiver Ed McCaffrey, Max joined the 49ers in December. The 49ers signed him to a two-year deal after placing Victor Bolden on injured reserve. He was inactive for the final three games, and for the time being seems like closer to a camp body than a competitive option.

74. Steven Dunbar, WR (High: 49, Low: 89, Fooch: 79)

And once again, as I see the rankings in full, I think I made a mistake on the two receivers in this set. I likely would have at least swapped them, as I think Dunbar has a better shot at making the roster than McCaffrey. I don’t think he has a great shot, but he has a shot. That being said, I could see Dunbar also being a second half preseason all star — meaning, a guy who gets a lot of work in the third and fourth quarter and excels. It puts him in competition for KSWOF, but at 6’1 and change, he’s got some good size.

73. Pace Murphy, OG (High: 51, Low: 85, Fooch: 74)

We’re back with another player who spent most of last season (14 weeks) on the 49ers practice squad and earned a reserve/future contract. The guard position does not offer much in the way of opportunities for players this far down the depth chart.

72. Andrew Lauderdale, OT (High: 52, Low: 90, Fooch: 70)

The 49ers signed Lauderdale to their practice squad in Week 11, where he finished out the season. He spent the offseason workout program as the second-string left tackle. Garry Gilliam is arguably the front-runner at swing tackle, and spent the offseason workout program more at right than left tackle. Darrell Williams was rehabbing during the program, which is likely why Lauderdale got the bump.

71. Nick Mullens, QB (High: 58, Low: 88, Fooch: 88)

I had thought about ranking Mullens fairly high up the list, but it really comes down to his position. He spent the season on the practice squad, but given the 49ers extension of Jimmy Garoppolo coupled with C.J. Beathard’s decent performances before Jimmy G, Mullens would seem to have little chance at a roster spot. Scarcity of such an opportunity is why I stuck him near the bottom of my rankings. Maybe something unexpected happens at the QB position, but I’m just not seeing it.