Somehow, we still don’t really know with Jimmy Garoppolo.

We’re five years and $45 million into his career at this point. He’ll turn 28 during this upcoming season. The 49ers have him tied to cap hits of at least $19 million over the next four seasons. Yet we still don’t really know what he is.

He’s only started 10 games. Only thrown 361 passes. Patrick Mahomes has twice that and he was drafted three years after Garoppolo before sitting for his rookie year.

It’s impossible to be conclusive about a quarterback who has only half a season for a career. You can be confident about where he might potentially go, but you’re essentially projecting a college prospect still. When Garoppolo has played, his teams have won games but he’s not been overly impressive individually. He doesn’t have a big arm, isn’t particularly accurate and his defining trait has been to throw the ball to defenders far too often.

And now he has to return from an ACL tear.

Despite the question marks, Garoppolo will be the 49ers unquestioned starter entering the season. John Lynch and Kyle Shanahan invested their careers in him when they traded for him and prematurely signed him to a massive contract extension even though there was no need to force the deal like they did.

He shouldn’t be.

Nick Mullens showed more in 2018 than Garoppolo has at any point in his career. Mullens entered the league in 2017 as an undrafted rookie. He signed with the 49ers but couldn’t make the roster behind Brian Hoyer, Matt Barkley and C.J. Beathard. He was signed to the practice squad, where he remained until he became the starter in Week 9 of last season. It took Garoppolo’s knee to get him on the active roster, then Beathard’s shoulder to get him on the field.

Normally a quarterback who takes that route to the NFL plays like Ryan Lindley or Tom Savage. That is to say they are normally lost but have big, strong arms that help them throw wildly inaccurate passes. Mullens is a different type of low-level quarterback. He doesn’t have a big arm, in fact arm strength is probably his biggest concern. Instead, he’s a cerebral, poised passer who understands how to run Shanahan’s offense.

There’s precedent for a quarterback following the path that Mullens is currently on. Tony Romo did it for the Dallas Cowboys before eventually moving into the booth for CBS. Like Mullens, not having top-tier arm strength was likely the difference between him being drafted and making a roster immediately and him having to wait around for an opportunity to develop in front of him.

Mullens started eight games in 2018. He had a 64.2 completion percentage, averaged 8.3 yards per attempt, threw 13 touchdowns and 10 interceptions. Besides the 10 interceptions, those numbers are extremely impressive for a quarterback coming in cold halfway through the regular season. That’s not unusual for a Kyle Shanahan quarterback.

What is unusual is those numbers don’t do justice to his performances.

Charting data loves Mullens. Those 10 interceptions aren’t an issue because four of them weren’t his fault. In fact, Mullens was one of the best quarterbacks in the league at taking care of the ball. He threw eight interceptable passes on 274 attempts. That’s a 2.9 percent interceptable pass rate, sixth best in the league last season.

Mullens was by far the most unlucky quarterback in the NFL. Six of his interceptable passes were caught and when you add in the four interceptions that weren’t his fault, he had two more interceptions than interceptable passes. The closest comparison to him was Marcus Mariota who had 10 interceptable passes and eight interceptions. Nobody besides Mullens had more interceptions than interceptable passes.

Three of his four non-quarterback interceptions were because of balls hitting off of his receiver’s hands.

On this play Mullens could have moved in the pocket to avoid having his front foot taken away from him by the interior pressure. That interior pressure leads to the ball being slightly behind Marquise Goodwin. But Goodwin is wide open and he can comfortably get two hands on the ball. He should catch this pass even though it’s not a perfect throw. He didn’t have to dive backwards or extend his arms fully away from his body.

In Week 14, the Broncos sent a heavy blitz after Mullens at the start of the fourth quarter. he diagnosed it instantly and hit Trent Taylor with an accurate throw on a slant route. Taylor could have caught this ball and continued upfield but his approach is awkward and leads to the ball bouncing off of his body into the chest of the arriving defender.

Goodwin again allowed the ball to go through his hands on this underneath throw. The receiver is off balance from the start as he poorly handles the initial jam from the defender then fails to confidently run through the ball for the completion.

As a 49ers player, Garoppolo has eight interceptions on 267 attempts (3 percent). Mullens has 10 interceptions on 274 attempts (3.6 percent). But Mullens’ interceptable pass rate over that period is far superior to Garoppolo’s. Regression suggests that Garoppolo will throw a lot of interceptions moving forward whereas Mullens projects as not throwing many.

Where Garoppolo has relied on defenders to drop passes to avoid interceptions, Mullens has relied on his own ability to keep the ball out of harm’s way.

It’s a similar story when it comes to accuracy.

Surprisingly, Mullens charted as the fourth-most accurate passer in the NFL in 2018. His 64.9 percent depth-adjusted accuracy score ranked behind only Andrew Luck, Marcus Mariota and Matt Ryan. He was one spot above Drew Brees. Mullens managed this by being the fifth-ranked passer on underneath throws, the 15th-ranked passer on intermediate throws and the 16th-ranked passer on deep throws.

In the above chart you can see that Mullens didn’t throw the ball deep often. Every single quarterback who qualified for charting threw the ball deep more often than Mullens did. Cam Newton was second last and he threw the ball deep 2.1 percent more often than Mullens did.

But while he didn’t throw deep often when he did he was effective. Not only did he rank 16th on deep throws but when you look at passes that travelled further than 15 yards downfield, he was second only to Marcus Mariota with a 59.5 percent accuracy rate.

The foundation of Mullens’ success is working underneath and intermediate routes regularly and effectively.

Having the second-highest rate of underneath throws with the fifth-highest rate of accuracy in that range is a peak skill. When combined with his acumen and Shanahan’s scheme that sets its passers up with options, that becomes an anchor point that Mullens can build sustained success from. Tom Brady is the most obvious example of a quarterback using one specific area of strength to cover other areas of weakness.

Brady has always thrived at diagnosing defenses before the snap and he excels with short and intermediate accuracy. He’s rarely been a great deep ball passer and he’s never had great physical traits. Mullens isn’t Brady, but he’s that style of quarterback.

From his very first start, Mullens was making good, quick decisions to target the weak spots of the opponents’ play designs. Shanahan helped him a lot with pre-snap motion and smart play designs but this wasn’t the case of a quarterback relying on hard play fakes and simplified reads for wide open big plays. It was a quarterback making reads and determinations based off of the evidence he garnished from the defense’s actions prior to the snap.

In the above play, the Raiders do a poor job of disguising their slot blitz. Mullens shifts his receiver from one side of the field to the other and the slot cornerback follows him. This tells the quarterback that it’s man coverage with the slot blitz.

Normally you want to exploit a blitz by throwing in behind it. But with the safety so aggressively outside before the ball is even snapped, Mullens instead looks for his slot receiver who is working against aggressive coverage with space over the middle of the field.

Richie James wins in his route, Mullens delivers the ball before the blitz can get home and that leads to a 60-yard gain on Third-and-9.

Being behind the down-and-distance is when the quarterback is challenged most mentally. You can’t rely on the run game to build a passing play from so the defense is able to be as creative as it wants to be. Mullens’ acumen allowed him to be very effective in these situations. He was the fourth-most accurate passer on these plays and he was the eighth-most accurate passer when you only included plays where the quarterback threw to or past the first down line.

Mullens’ acumen is such that he’s already comfortable manipulating defenders in coverage. For this touchdown throw in his first start against the Raiders he moves the underneath linebacker with his eyes to create a throwing window to Kendrick Bourne for the touchdown. Had he locked onto his receiver from the start like so many bad/inexperienced quarterbacks do, this would have been an interception.

It’s not like Mullens was only ever making throws to wide open receivers either. This is another underneath throw and it might not look like much on first viewing but it’s reflective of the positives of Mullens’ arm. He is a precision, touch passer with just enough arm strength to be comfortable throwing into NFL windows.

On this play he’s on the far hash and looks for his receiver running a flat route because he is anticipating the linebacker being taken out by the traffic in the middle of the field. The linebacker is taken out but the defensive end peels off his pass rush to run with Mullen’s intended target.

While he could have held the ball and looked infield because he now had more time in the pocket with only a three-man rush, Mullens chose to release the ball. To do this successfully he had to hit his receiver’s outside shoulder, allowing him to catch the ball while still moving forward but also protecting him by not leading him back into the defender infield.

That’s a very difficult throw to complete.

This touch and precision carries into deeper throws. In Week 17 against the Rams, Aaron Donald did what Aaron Donald tends to do when he blew up the interior of Mullens’ pocket. The quarterback didn’t panic. Quite the opposite in fact. He perfectly reset to his right side and established his feet so that he could deliver the ball properly.

He needed that platform to throw from because he was attempting a very difficult throw back across the field to George Kittle.

Kittle was between two defenders and he is forced to make a difficult catch by elevating high above them. But that was a necessary high throw. The only way Mullens could fit that ball over the underneath defender without leading his tight end into the arriving defender outside was by putting the ball where he did with the timing and trajectory that he did.

A bigger arm wouldn’t have helped this throw. There was no path where the ball could have been rocketed through to Kittle. The only way that ball is complete is if the quarterback has a high level of accuracy and trajectory control.

This was a similarly outstanding touch throw to Trent Taylor for 23 yards against the Chicago Bears. Mullens recognized the zone coverage, read the outside defender’s position and waited to release the ball so he maximized the window he was throwing into. He also put the ball on the receiver’s outside shoulder so as to protect him from the arriving safety.

This play came at the end of the Giants game. There were 18 seconds left in the fourth quarter and the 49ers needed a touchdown. The lack of pass rush helped but Mullens still had to fit the ball over a dropping linebacker who wasn’t concerned about anything underneath him. Not only does he manage to clear the linebacker he also hits his receiver perfectly in stride.

You can then see his acumen set up his precision passing on plays such as this one. Mullens recognizes the safety rotation go from two-deep to cheating on one side of the field. He brings his eyes off the front side of the play to the backside where he has a receiver working one-on-one. He then recognizes that the receiver is being stacked on top by the cornerback, so he hits a perfect backshoulder throw for an uncontested completion. This is an extremely high level play for a quarterback. It’s mental and technical, requiring Mullens to create an opportunity that isn’t there.

Another big positive working in Mullens’ favor is how he handles pressure.

Garoppolo’s play against pressure is concerning. He doesn’t stand in with the authority you expect from a quarterback who you’ve already invested your future in. Mullens on the other hand showed off that resilience to prioritize his delivery over his body but also the timing and awareness to maximize the time he was given.

He likely could have let this ball go a moment earlier, he hesitates with a pump fake just before actually releasing the ball. But what’s key here is that he didn’t rush the ball out just because his pass protection was breaking down. He made sure of what he was seeing, delivering the ball to a wide open George Kittle despite absorbing a huge hit.

This ball falls incomplete and it’s a tad high for Kendrick Bourne. Bourne should catch the ball, he lets it slide through his hands despite having an opportunity to grasp the ball uncontested. But even though this ball is slightly high it’s an example of a high-level play from Mullens. He does two things that make a completion here possible.

Because it’s Third-and-10, the Seahawks are able to disguise their coverage and blitz. Mullens feels the blitz and angles his dropback away from it. He still executes his dropback and establishes his platform to throw the ball, but he does so quickly to avoid getting hit before the ball can come out. He needs to do this perfectly because the defender arrives as soon as the ball comes out.

He couldn’t throw the ball before the top of his drop because the routes needed time to develop. Mullens’ timing is perfect. Not only does he avoid getting sacked, he actually hits the route at the perfect time. His receiver is in a window between the outside cornerback and the linebacker/safety tandem inside. Bourne was only going to be open for a split second, the ball had to arrive during that moment.

And it did.

Of course much of Mullens’ yardage did come on wide open throws to George Kittle. But that’s the benefit of being the 49ers quarterback. Those plays are always going to be there so long as Shanahan is the head coach. Mullens proved that he can consistently take advantage of them to maximize the output of the offense while elevating the unit in other areas.

A quarterback who comfortably works the pocket, diagnoses coverages quickly, throws with precision and timing while also taking care of the football is a quarterback who should be starting somewhere in the NFL. We know it won’t be in San Francisco. Even if the 49ers decide to run a competition for the job, there’s no such thing as a fair competition when one quarterback has more than $100 million invested in him.

Whether Mullens would actually be a better starting quarterback than Garoppolo moving forward is unclear. Like his teammate, Mullens also hasn’t thrown enough passes in the league to be fully confident in who he is.

But if that fair competition started today, there’s no doubt who should be the favorite to win the job. Mullens has simply been the better quarterback to this point.