Why did my order settle at a price I never saw on screen?

Short answer: because the screen shows a smoothed display price at a lower refresh rate than the feed that settles you. The long answer is below.

The short answer

Prices on screen are refreshed for display and can be up to a second behind the settlement feed. Settlement uses the raw quote at the exact settlement second, which is the number that goes into the audit record.

How to check it yourself

Open the order reference on the audit page. You will see the raw quote at entry and at settlement, with its arrival timestamp. If the record does not support the result, we correct it.

Why we do not "use the screen price"

Because the screen price is a rendering, and a rendering can be delayed by your device, your network or our own drawing loop. Using it would make the result depend on how far away you are from a server, which is not something you should be able to lose money on.