Running backs and tight ends were pulled in many directions for a tumultuous 2018 Vikings offense. The end result was underwhelming roles for weapons tight end Kyle Rudolph and running back Dalvin Cook, who averaged four and 15 touches per game, respectively.

Talent wasn't the issue for these two position groups, but opportunities and situations were consistent limits.

Grades are based on a 1-to-5 scale, with '5' marking excellence, '4' for above-average, '3' for average, '2' for below-average and '1' for failure to perform. Players that did not accrue a season (weren't on the active roster for at least six weeks) or played in five games or fewer are not graded. Below are individual grades, based on game and practice observations, weekly film reviews and interviews with coaches, for 11 running backs and tight ends who finished the season on the Vikings' active roster, injured reserve or practice squad. Unofficial NFL stats, such as QB pressures, missed tackles and targeted passes, are compiled by

Previously: (Quarterbacks) Kirk Cousins' first Vikings season busted when it mattered most; (Defensive backs) Harrison Smith leads a deep secondary; (Linebackers) Anthony Barr's contract season leaves you wanting more; (Defensive linemen) Danielle Hunter's name now among the NFL's best

Kyle Rudolph (4.0) — One of six handpicked team captains, Rudolph solidified himself as one of the league's most reliable tight ends across a variety of assignments. Played 925 snaps [88%]. Penalized four times, including two false starts. No tight end in 2018 had more catches and fewer drops (1). Caught 64 of 82 targets for the Vikings' best catch rate [78%] among non-running backs. Had 634 yards, the second-highest total of his career. Wasn't leaned on nearly enough for a struggling red-zone offense. Target of 14 throws in the red zone, catching six for three touchdowns. Rudolph's four touchdown catches were his fewest since 2014. Went 11 games without a touchdown catch, the longest drought since the start of his career. Disappeared in losses against the Seahawks and Bears when he had seven, 13 and 19-yard games. A focal point of the offense when he had a career-high 122 yards against the Lions, including the 44-yard Hail Mary touchdown catch that gave the Vikings a 14-9 lead before halftime.

Relied on heavily as a pass protector. Only four NFL tight ends had more pass-blocking snaps than Rudolph's 85. None were credited with fewer hurries (2) allowed. The big knock on Rudolph is his uneven run blocking, but he's put into difficult double and sometimes one-on-one matchups against opposing defensive ends due to the Vikings' weaknesses at offensive tackle. The Dolphins' blitzing Minkah Fitzpatrick cruised past Rudolph when he caught the 50-yard pick six off Kirk Cousins, who noted the defender was unblocked on a screen attempt. Rudolph could be a restructure or cap casualty this offseason.

The 29-year-old is entering the final year of his contract with a $7.625 million cap hit (none guaranteed) that would make him the 9th-highest paid tight end in 2019. While Rudolph may have proven he's worth it, the leverage is not on his side.

Dalvin Cook (3.5) — Didn't top 20 carries in a game all season. Peaked with 22 touches in the season opener vs. San Francisco. Made history talk of his ACL recovery and started his second NFL season with a flash, leading the league with 10 broken tackles on 26 carries in the first two games. But a hamstring injury suffered in overtime in Green Bay, and his subsequent rush onto the field 10 days later in Los Angeles, would derail the first half of his season. Played 490 snaps [46.6%]. Not penalized. Led the team with 615 rushing yards. Missed five of the next six games after the Week 2 tie at Lambeau, taking an ineffective 10 carries for 20 yards while playing injured against the Rams.

Returned Nov. 4 against the Lions and proclaimed he was healthy again with a 70-yard lightning shot that clocked 22 miles per hour by the league's Next Gen stats. It was the fastest a ball carrier had been recorded by Week 9. Looked fully recovered from both the hamstring injury and ACL tear in his left knee as Cook averaged 5.3 yards per carry in Weeks 9-17. Could've had a huge game against a Patriots defense eager to double Adam Thielen and Stefon Diggs, but Cook was given just nine carries turned into 84 yards. Had a career-high 136 rushing yards and two touchdowns against the Dolphins.

Shut down behind the offensive line in two games against the Bears with 51 yards on 20 carries. Fumbled away two possessions, including a red-zone carry in Chicago when Khalil Mack punched the ball out of his hands.

Despite missing five games, Cook still forced as many broken tackles (29) as Alvin Kamara and Joe Mixon to rank 15th in the NFL. Grew into a more reliable receiver, catching 40 of 49 targets for 305 yards and two touchdowns. Could become a star if made an emphasis in the offense and given a little more room to run.

Here's the main problem that needs fixing: 53 of Cook's 173 touches, or about 30 percent, gained only one yard or worse. He was tackled behind the line for a loss of yards 25 times, including a season-worst six stuffs in the Week 11 loss at Chicago.

Latavius Murray (3.5) — Murray saw his lowest marks in carries (140), rushing yards (578) and touchdowns (six) since the beginning of his career. Two of those totals — carries and rushing touchdowns — led the Vikings, speaking to the problems with the offense. The 28-year-old Murray was a team player throughout a disappointing season, but he was candid afterward about his desire to play a leading role in an offense that wants to run the ball. Played 461 snaps [43.9%]. Not penalized. Took just 19 carries in Weeks 1-4 despite Cook dealing with his early hamstring injury. Saw a season-high 24 carries against the Cardinals and turned them into a career-high 155 rushing yards and a touchdown in the win. Short-yardage woes weren't the case with Murray, who converted 11 of 18 attempts including goal-line touchdowns against the Lions and Saints. He did fall short in big spots against the Bears, Packers and Seahawks. Another problem: those two goal-line touchdowns were the fewest since Murray's 2014 rookie season in Oakland. He had six for the Vikings in 2017. Not a game-breaker, but showed the same decisive, one-cut burst he had after recovering from ankle surgery nearly two years ago. Forced 18 missed tackles. Could contribute somewhere as a lead back. Likely won't be in Minnesota, where he's a pending free agent.

David Morgan (3.0) — One metric illustrates the third-year Morgan's impact to the Vikings offense. Played 231 snaps [22%], missing five games due to knee injuries. In those five games — against the Bills, Bears, Packers, Patriots and Seahawks — the Vikings' 30th-ranked rush attack (averaging 93.3 yards per game) plummeted to just 59.8 rushing yards per game without Morgan. He's a go-to option for both pass protection and run blocking in the Vikings offense. Surrendered just one hit on Kirk Cousins in 54 pass pro snaps. Phased out of the receiving game due to lingering knee problems. Wasn't the same run blocker upon returning as a starter for Weeks 16 and 17 against the Lions and Bears. Caught five of six targets for 36 yards in the first half of the season. Flagged once for a false start against the Dolphins. Could play a bigger role in a more balanced future for the Vikings offense.

C.J. Ham (3.0) — Grown in his third NFL season, Ham didn't get many opportunities to showcase his blocking for an offense ranking 27th in rushing attempts. Played 140 snaps [13.3%]. Voted as a second Pro Bowl alternate. Took six handoffs, but only three in short-yardage situations. Converted only one attempt when he ran for five yards on a third-and-1 in the tie at Green Bay. Failed on first-and-goal at the 1-yard line against the Saints and a third-and-1 carry against the Packers in November. Played a season-high 20 snaps in Los Angeles during the Week 4 loss, when he struggled to find his mark as a lead blocker and was caught short on a third-and-2 reception. The former college running back can be slippery as a receiver. Caught 11 of 14 targets for 85 receiving yards. Dropped one. Did most of his damage in garbage time of the Bills loss, with five catches for 47 yards. Forced all four missed tackles against Buffalo. Nearly fumbled away one catch when hit by a Bills defender. Not penalized. Missed the season finale loss to Chicago due to an elbow injury suffered in the Week 16 win at Detroit.

Tyler Conklin (2.5) — Drafted in the fifth round (157th overall) out of Central Michigan. Earned roles on special teams, where he played 153 snaps [34.2%] and took practice reps as an emergency long snapper. Impressed coaches with sticky hands during camp practices. Played 146 snaps on offense [13.9%]. Appeared in all 16 games, starting three when David Morgan was sidelined or limited by injury. Not penalized. Caught five of seven targets for 77 yards. Most of that damage — two catches for 53 yards — came on coverage busts by the Dolphins. Absorbed a big hit by Dolphins safety Reshad Jones to secure a 20-yard fly ball. Conklin might not be the type of athlete the Vikings need in a mismatch tight end, but he showed his reliability.

Ameer Abdullah (2.5) — The former second-round pick was phased out of the Lions backfield and waived after Detroit's Week 9 loss to the Vikings. Claimed by Minnesota and inserted as the kick returner following Mike Hughes' season-ending injury three weeks prior. Appeared in all seven games upon arrival. Played six offensive snaps [0.6%] and 86 snaps on special teams [19.2%]. Had three impact returns on 10 attempts, gaining 30, 30 and 33 yards against the Bears, Patriots and Lions. Did not fumble. Pending free agent.

Mike Boone (2.0) — Signed as an undrafted free agent out of Cincinnati. Boone won the camp competition with Roc Thomas for the No. 3 job though both made the team. Played through a groin injury to appear first in Week 3. Played 36 snaps [3.4%]. Active for eight games, but rarely saw playing time. Flashed as a bruising downhill runner when given the opportunity. Forced four broken tackles on 11 carries for 47 yards, but was not touched on his 20-yard sprint up the middle against the porous Cardinals. Coaches lamented too many mental errors. He was perhaps the group's worst pass protector throughout training camp and has room to round out his game this offseason.

Roc Thomas (N/A) — Signed as an undrafted free agent for $23,000 out of Jacksonville State. Thomas, former Alabama's Mr. Football and Auburn recruit, made an impressive bid for the No. 3 job in training camp, but nagging injuries limited his availability. Made the 53-man roster, but was inactive until Week 4. Played 29 snaps [2.8%]. Appeared in five games, taking eight carries for 30 yards. Had a 23-yard sweep against the Jets. Showed to be a quick-accelerating and smooth receiver in the preseason. Waived during the Week 10 bye to make room for Ameer Abdullah. Re-signed to the practice squad a day later.

Cole Hikutini (N/A) — During the Vikings' search for an athletic receiving tight end, Hikutini, a second-year Louisville product, signed to the practice squad for a hefty $20,000 per week — or nearly three times the minimum — in Week 1 after San Francisco let him go in roster cuts. The Vikings had offered a seventh-round pick to the Rams for Tyler Higbee around the same time, a source told the Star Tribune. But L.A. wanted a sixth-round pick and talks dissolved.

Josiah Price (N/A) — Re-signed twice with the Vikings in March and July, the latter only a few days after he was waived to make room for center depth at the start of training camp. The second-year Michigan State product suffered a torn ACL during a joint practice against the Jaguars in mid August.