At a high level, how are EC2 spot prices and availability determined after the update in late 2017?

In a comment in a previous question, someone mentioned that

in late 2017 AWS changed the spot pricing algorithm to substantially reduce volatility. Spot prices do signal demand but the demand signals have been dampened to the point that they no longer clearly signal capacity

That's in line with my experience. Whereas prices used to spike as supply diminished, that no longer happens. Instead spot instances are terminated with the following reason: instance-terminated-no-capacity.

I feel I no longer understand how spot pricing works and I find my machines keep getting terminated due to supply reasons (rather than price/bid like they did in the past).

Can anyone explain the current algorithm used to determine spot instance pricing and availability? I'm just looking for a high-level explanation so I can come up with bidding/provisioning strategies that make sense post 2017.


No technical details have been publicly provided.

As part of today’s launch we are also changing the way that Spot prices change, moving to a model where prices adjust more gradually, based on longer-term trends in supply and demand.

https://aws.amazon.com/blogs/aws/amazon-ec2-update-streamlined-access-to-spot-capacity-smooth-price-changes-instance-hibernation/