Please excuse me if this question has been answered before. I searched but didn't find an answer.
After Pickett's charge it seems as if the Army of Virginia was worn out. The battles of the round tops the day before had decimated Longstreet's corps and Pickett's charge chewed up another 3 Confederate divisions.
Federal forces at this time appear to have had many well-rested divisions in reserve.
Why didn't Meade counter-attack? It seems to me that he could have rolled up Lee's army before they had a chance to rest, reorganize and withdraw. Did Meade ever give a reason? Were there other factors at play?
First of all a counter-attack of a sort did occur, after Pickett's charge Kilpatrick's cavalry division launched an attack against Longstreet's infantry possibly in anticipation of a general counterattack. Kilpatrick threw several units of cavalry against the Confederates south of devil's den in a mounted charge. The federals were decimated and the immediate commander of the charge, General Farnsworth, was killed in action.
As a whole the bulk of the Union army was almost as exhausted as the Confederate one, during Gettysburg the Army of Potomac took around 25% casualty. While this is a much lower rate than the Confederates (which was around 1/3) it nevertheless represented a significant portion of the fighting capacity of the army.
Federal forces at this time appear to have had many well-rested divisions in reserve.
He did have Sedgewick's VI corps in reserve, but they weren't very well rested having made a grueling 30 mile forced march on July 2nd in the July heat. In the other 6 federal corps had all being heavily bloodied during the battle and would be in poor condition to go on the offensive. 4 Union corps had taken casualty either close to or above 40%.
The positions Lee held Northeast of the town were quite defensible, the Confederates themselves took heavy casualties taking the terrain from outnumbered union forces on the first day and the already exhausted union army would have needed to batter themselves on Seminary Ridge in a counterattack. There was no guarantee of success had they tried.
On July 4th a rainstorm fell on the battlefield, hindering any possible counter-attacks, Lee began retreating on the same day and Meade would begin to pursue soon after.
Gettysburg was a shockingly bloody battle even by Civil War standards. One should not underestimate the psychology of what had happened either, this was an era where senior commanders died with their men. The Union army had lost 2 of its 7 corps commanders during the battle. Men who had sat with Meade in a council of war one night were gone the next. Meade seemed rattle by the second day of battle and had presented the option of retreating to his senior commanders on the night of the 2nd.
Lincoln himself was quite upset at Meade for not mounting a more vigorous pursuit and destroying Lee's army. But Meade was at the end of the day was a rather cautious commander. His army had just being bloodied in the single biggest battle in the western hemisphere. He had fought on the defensive and his units had being badly mulled while Lee was still a dangerous opponent. He had called a council of war on July 4th and his chief lieutenants agreed that it was best to stay put unless Lee began moving. The destruction of the Army of Northern Virginia after Pickett's charge and during its retreat into Virginia by a more aggressive commander was possible, but given the state of the Army of Potomac on July 3rd avoiding further engagement at least in the immediate future was not an unreasonable decision.