How are fills processed in the paper trade broker, is it using the ask price for buy orders and bid for sell orders, or is it using the last price for the order fills?

What I am seeing is that trades in the paper trade brokerage almost always have a 0.01 - 0.02 better fill than trades being placed in my Interactive Brokers account, where I have the same strategy running locally and connecting to TWS API.

These trades are for the Index ETFs (QQQ, SPY, IWM, and DIA), so liquidity should not be an issue.