Smooth Custom Air Control for Multiplayer. A networking problem using C++

I’ve implemented my own custom air control for my game.

The logic executes OnTick when the client is in the air.
The logic executes the same both for the client and the server (but ultimately the server has authority of where the client actually is).
The project is based of the ShooterGame example (which I couldn’t really find their net code optimization if they have any).
The client sends to the server via the native CharacterMovement replication the players position and rotation and the GetAxisValues of w, a, s, and d only when w,a,s and d is pressed and released.

So the client presses a button, sends the get axis value to the server, the server then uses that to calculate the air control algo I wrote (assuming they are in the air).

The issue is on sharp turns or with a latency of 100ms the air control isn’t smooth from the clients perspective, its like a stutter effect, probably more accuratly rubber banding.

I’ve been reading up methods to smooth movement but what is throwing me off is I’m assuming since unreals/the shooter games default movement mechanics is already so smooth that I technically wouldn’t have to do any type of smoothing techinique myself. However, its obvious I need to do something.

So my question is, for air control, where I essentially just modify the players velocity in the air what would be the best way to attempt to smooth that out for a nice multiplayer experience?

I’m thinking I’m already doing client side prediction since the client executes the same algo as the server but is that the extent of it or is there more to it?