Even grading on an easy, breezy exhibition-season curve, the 49ers flunked all subjects on Saturday.
Remedial football, across the board.
There was no way to debunk the conclusion, not after that haphazard display of missed blocks, wild passes, blown coverages and eventually, a deserved 30-7 loss to Houston at a quiet Candlestick Park.
It was so complete that, opposite of his usual slow arrival, coach Jim Harbaugh actually beat the media to his postgame news conference.
He was there, and pacing.
"It's a bitter pill to swallow to be beaten that thoroughly -- in pretty much all phases," Harbaugh said bitingly once everybody got situated.
"I think defense wasn't quite as bad as special teams, and special teams wasn't quite as bad as offense."
But oh, that offense. This is an offense that cracked under the pressure of a big pass rush Saturday, as it did two weeks ago in New Orleans.
And this is an offense that does not look ready for prime time ... or Sept. 11 against Seattle, that's for sure.
"Looking to find something positive to say offensively is not easy tonight," Harbaugh said. "So I'm not going to single anybody out (for criticism)."
One success: The stadium atmosphere was completely calm, a vast departure of the roiling emotions and violence that surrounded last Saturday's game against the Raiders.
But the football result was a 49ers debacle.
Despite going the whole way with their top two quarterbacks -- Alex Smith and Colin Kaepernick -- the 49ers managed only 105 yards of total offense and looked inept the entire way.
In four series with Smith at the helm, the 49ers offense picked up one first down, gave up two sacks, punted twice and had an interception.
In six series with Kaepernick under center, the 49ers offense totaled three first downs (one by penalty), gave up a sack, punted five times and gave up an interception that was returned for a touchdown.
The 49ers defense produced the team's only points -- scoring a touchdown when linebacker Ahmad Brooks snared Matt Schaub's short pass on the first play of the game and ran it in from 13 yards.
After that ... nothing. The defense was manhandled. The offense was obliterated.
"Need to get a lot better," said Kaepernick, who was 6 for 16 for 52 yards with the interception -- a 20.8 passer rating. "I think the scoreboard showed that.
"We didn't put any points on the board offensively tonight. So there's a lot of things we need to work on ...
"You can learn a lot from games like this. As much as you hate to have them, sometimes you learn more from losses than wins."
Neither QB generated anything close to a scoring drive, and the 49ers offense got into Houston territory only once during the first three quarters.
It won't change the depth chart: Smith is clearly the starter; Kaepernick is the rookie waiting in the wings, and he showed why.
It just doesn't quite look like a winning combination at this point, especially with the offensive line struggling to provide even minimum protection.
Smith played the first two series, yielded to Kaepernick for two series, then came back for the last two series of the first half.
Overall, Smith was just 2 for 6 for 17 yards and the interception--a passer rating of 2.8.
Combined, Smith and Kaepernick put up a passer rating of 7.6.
"We didn't get any kind of rhythm going at all," Harbaugh said. "It's on everybody on the offense -- protection, route-running, decision-making, all those things."
So what happens now? They play the fourth and final exhibition game Thursday against San Diego. And they tell themselves that, with Frank Gore sitting this one out and other starters getting light work, better times are ahead.
That's what they have to tell themselves.
"Of course we'll be ready," receiver Joshua Morgan said. "If you think about it, most of our starters didn't really play that much. We've just got to watch the film, keep together and keep going."
It was only an exhibition game. The real stuff doesn't happen for two weeks.
But Harbaugh didn't try to hide his disappointment or dismiss this as a product of vanilla game-planning.
However, he also didn't delve too deeply into the emotional repercussions of this. He wanted to address it -- as quickly as possible -- then move onward and upward, if that's possible.
"We're not going to have any loser talk or hang our heads," Harbaugh said. "If you're waiting for that, you're not going to get it. We're going to keep our heads up and forge ahead."
That's a lot easier to do when there's tangible evidence of progress. On Saturday, there was none of that.
On Saturday, the 49ers went backward. They can get past this, but it's a longer trip now than when they started.