The facts are pretty simple. US students do not do as well on OECD tests of math, science and reading as their counterparts in other OECD nations. This article describes two explanations for these results. One study used a measure of socioeconomic status in the US and corrected the results for low- achieving students with that measure. This study concluded that the schools in US are doing well when the scores are corrected for socioeconomic status. The head of the OECD testing program found faults with the US study. OECD corrected for socioeconomic status, using a more sophisticated measure of socioeconomic status, and found that US students did less well that low status students in other OECD nations. He pointed out that the US system of funding education with local property taxes is one reason for low test scores in the US. Schools in low income districts receive less funding than schools in rich districts. He also indicated that many countries do a better job of paying and attracting high performing teachers than the US.
I tend to come down on the side of the OECD explanation. Public education is under attack from many directions in the US. It has been more difficult to attract high performing students into teaching given the lack of respect for the teaching profession and the private sector has been successful in increasing its share of the revenues spent on education. Consulting services of questionable value, along with a plethora of standardized testing programs, suck up resources and teacher time. Charter schools, and the use of voucher programs to privatize the schools, has not improved the performance of low achieving school districts. The basic idea behind the privatization program is that government is unable to operate schools as effectively as profit seeking entities. This leads to an erosion of public support for the schools and it polarizes the education system into warring camps. What's happening in the education system is symptomatic of what is happening in the rest of society.