He vastly underestimated Ukrainian resistance
And Ukrainian resistance has been supported by Western intelligence and weapons
Putin's day 1 plan was to seize most of the airfields and assassinate the president. These were attempted by trained forces and could have worked. The Ukrainians managed to stop them all. I'm sure these included cyber attacks we haven't heard about.After that the Ukrainians have had remarkable success in targeting Russian logistics efforts.
Few people were expecting such a fierce Ukrainian resistance. That is by far Putin's biggest miscalculations. Even had things gone his way, it's clear now he'd be in for a long insurgency that he wasn't anticipating.
Putin has made many poor decisions and should have been able to overcome them by force to meet many of his objectives. But, the Ukrainians have had the intelligence and tools to amplify his mistakes into the clusterfuck we're seeing.
I'm sure Russian morale is low and there were some poor logistics, but it seems exaggerated in the news.
Putin still has most of his combat forces available and estimates I've heard are he can sustain the attack for several more weeks.