What the Supreme Court is supposed to do, when something is a constitutional issue, and not just a legal issue, is to judge whether or not the issue in question is consistent with the letter and spirit of what is written in the Constitution. This is not necessarily as simple as it sounds. As the US Constitution is vague and brief. On most issues it has nothing to say at all. And so the Court must infer from what has been said.
In doing this, the US is a 'common law' country. That is that much of our body of law is derived from judicial precedent rather than statutes passed by legislatures. And that precedent evolves over time. The state of Constitutional interpretation is in this way an evolving body of work, rather than fixed and immutable.
So consider the top case on that chart. Roe v Wade, the decision which made abortion legal, was not out of the clear blue sky, but rather was an evolution of the decision rendered in the earlier case of Griswold v Connecticut. The specific decision point in Roe was not that abortion is legal, but rather that the government did not have a compelling public interest in making it illegal, and so the presumption is that government should butt out of people's lives if it did not have a compelling public interest in the matter. The right to be left alone.
How this applies to Citizen's United is that the Constitution has nothing to say on the matter. So the body of statutory law and judicial precedent is where the action is. In this case the factors are the precedent on similar issues, the intent of the legislature, and the compelling public interest. Does the Court understand the intent of the legislature? Does the Court find a compelling public interest for or against the law? Does the precedent have anything to say on the issue?
In CU, the intent of the legislature is clear. The precedent, about 100 years of it, is clear. And the compelling public interest is clear.
And the Court made a decision which was opposed to all 3 factors.