Bank of America's headquarters in Charlotte, North Carolina. Image source: iStock/Thinkstock.

Shares of Bank of America (BAC 1.70%) surged last week after the nation's second-biggest bank by assets reported better-than-expected first-quarter earnings. Compared to its closing price the previous Friday, Bank of America's stock price increased 8.7%, which was second only among big banks to Citigroup's (C 2.82%) 11% rise.

If you look at Bank of America and Citigroup's results for the first three months of the year -- here and here, respectively -- you'd be excused for wondering why their shares rallied after they announced earnings. Multiple headwinds besieged the industry to start out 2016, from uncertainty surrounding China and Europe, to increased loan losses tied to struggling borrowers in the energy industry, to interest rates that have remained persistently low.

The net result was that earnings per share fell at all the major banks on a year-over-year basis. Citigroup led the way with a 27% decline, though it also recorded a one-time $491 million restructuring charge. Bank of America's earnings per share dropped by 16%. And JPMorgan Chase and Wells Fargo rounded out the group, with declines of 6.9% and 4.8%, respectively.

Bank

1Q16 EPS

1Q15 EPS

Change

Wells Fargo

0.99

1.04

(4.8%)

JPMorgan Chase

1.35

1.45

(6.9%)

Bank of America

0.21

0.25

(16%)

Citigroup

1.1

1.51

(27.2%)

Data source: First quarter earnings releases.

The saving grace for all four banks was the fact that analysts had predicted even direr performances. During the past three months, analysts had dropped their earnings-per-share forecasts for Bank of America from $0.32 per share down to only $0.20 per share on the eve of earnings season. They did the same with Citigroup, ultimately settling on an estimate of $1.03 per share for the nation's fourth-biggest bank by assets.

It was this trend that allowed both banks to outperform expectations. Bank of America earned $0.21 per share in the first quarter, while Citigroup reported earnings per share of $1.10. These figures equated to earnings "beats" of 5% and 6.8%, respectively.

Bank

1Q16 EPS – Actual

1Q16 EPS-Expected

Beat/(Miss)

JPMorgan Chase

$1.35

$1.26

7.1%

Bank of America

$0.21

$0.20

5%

Wells Fargo

$0.99

$0.97

2.1%

Citigroup

$1.10

$1.03

6.8%

Data source: The Wall Street Journal.

Further catalyzing the surge in Bank of America's and Citigroup's stock prices is the fact that their shares trade for incredibly low valuations right now. While Wells Fargo and JPMorgan Chase are priced at premiums to their respective book values, Bank of America and Citigroup trade for substantial discounts. Bank of America's stock trades for 39% below its current book value, while Citigroup's stock changes hands for an only slightly better 37% discount.

It's hard to overstate how cheap this is. An ordinary bank that generates middle-of-the-road profitability will trade right at book value, if not higher. Bank of America and Citigroup, on the other hand, are priced as if we're still in the thick of the financial crisis. As a result, it didn't take a spectacular performance from either bank to cause investors to reassess whether or not such steep discounts are indeed warranted.