Discrepency between viewport, still render and animation render in Eevee

Here’s the viewport:

Here’s the still render:

Here’s an animation frame:

I’ve had similar problems between the viewport and the still render with lights in eevee. It’s mainly a cast shadows thing. But this extra layer of discrepancy has me baffled. Why would it treat all three differently? that artifact is bad enough for me to not be able to continue trying to animate this scene.

Here’s a video of the animation. You can see where it just jumps to life at the end. That’s where I killed it:

seems like it’s a random glitch. A second render of the same frames doesn’t show these artefacts.