Things are going in the right direction for Bank of America (BAC 1.06%), but it's happening slowly. The $2.1 trillion bank's fourth-quarter earnings, released on Tuesday, bear this out.

The good news is that Bank of America is generating earnings on a consistent basis. The fourth quarter marked the first time since the financial crisis that it's generated respectable profits in four consecutive calendar quarters.

It earned $3.3 billion in the last three months of 2015, amounting to a 10% improvement over the year-ago period. For the full year, it earned $15.9 billion, compared to $4.8 billion in 2014.

As CEO Brian Moynihan noted in prepared remarks:

The 2015 results were our highest earnings in nearly a decade, reflecting the work we've done to develop a straightforward operating model focused on responsible growth and doing more business with each customer and client. We saw solid customer activity in loan growth, deposits, and wealth management asset flows, and we returned more capital to our shareholders. As we build on this progress, we will continue to invest in the future and manage expenses.

The problem is that Bank of America's profitability is still well below its cost of capital. Its return on average assets in the fourth quarter and the 2015 fiscal year came to 0.61% and 0.74%, respectively. Both numbers are meaningfully below the 1% ROAA threshold associated with top-shelf banks.

To be clear, Bank of America's current executive team, which I think is doing an admirable job navigating the bank through the post-crisis period, isn't responsible for these shortcomings. Mistakes made prior to Moynihan's accession in 2010 are instead the source of its ongoing pedestrian performance.

The Charlotte, North Carolina-based bank has absorbed $195 billion in costs related to the crisis over the past seven years. That's unprecedented. It also explains why Moynihan, despite his capable efforts, has yet to return Bank of America to the upper echelons of American banking.

Fortunately, there were multiple positive developments that took place last year that suggest to me that the nation's second biggest bank by assets has turned the corner.

The first was a court decision in the second quarter that barred a pernicious type of legal claim that was costing the bank $2 billion a quarter in added expense. The precedent established by the legal decision reduced this to $200 million or so a quarter, according to the bank's third-quarter presentation. (Bank of America didn't update this figure in its latest earnings presentation, so I assume it isn't going in wrong direction.)

Bank of America's debt rating also improved last year. As I wrote at the time:

Standard & Poor's noted that Bank of America's legal and regulatory risks have declined and that "any incremental charges will be manageable." It also acknowledged the bank's "progress in steadily reducing the size of its legacy mortgage portfolio, which has resulted in lower credit costs and an improved risk profile."

Just as importantly, the agency observed that Bank of America's business franchise is "among the best in the U.S., with significant scale and leading market positions nationwide, including in its retail and commercial banking, capital markets, and wealth management businesses." And it concluded its assessment by noting that the bank's "balance sheet remains strong, with ample capital and liquidity."

This matters because a bank's debt rating, just like your and my credit ratings, dictate the interest rate that Bank of America must pay to borrow money. To this end, if Bank of America faced the same debt rating as Wells Fargo, it would save somewhere along the lines of $2 billion in annual interest expense on its long-term debt.

The continued runoff of toxic and noncore assets housed in Bank of America's legacy assets and servicing division (its "bad bank") is also something that will help it to eventually earn more than 1% on its assets -- which, on a quarterly basis, equates to approximately $5.5 billion. In the same quarter last year, the unit employed the equivalent of 17,100 employees. Today, that figure is down to 11,200.

The LAS unit has also reduced the number of loans serviced for third parties, a component of Moynihan's turnaround strategy. And the number of delinquent loans in the division was cut nearly in half over the past 12 months. These factors help explain why Bank of America's total operating expenses fell by almost $1 billion in 2015 compared to 2014.

This is positive momentum that will ultimately benefit shareholders -- myself included. While I doubt that Bank of America will compete on a level playing field anytime soon against the likes of JPMorgan Chase and Wells Fargo, I nevertheless think that the ultralow valuation of its shares adequately compensates for this.

In sum, 2015 was a productive year for Bank of America. Its employees and executive team still has a lot of work ahead of them, but they're finally knocking on the door of respectable profitability for, as Moynihan observed, the first time in nearly a decade.