Your kid swings 100 balls off a tee. In a real at-bat, they get about 2 swing decisions per inning.
That's the gap nobody talks about.
Try this in your next cage session: call 'swing' or 'take' after the pitch is released. No tee. Just decisions.
That's it. Try it tonight, let me know how it goes.