How is the price of an ASA token determined?

If you are using Tinyman, they have the price data on-chain. The price is determined by the market and set by the AMM created by the Tinyman team.

I would refer to this forum post on how to get the on-chain price of ASAs: Is it possible to read the price of an asset on Tinyman from a stateful smart contract? Kind of like a on-chain oracle?

@Ben gave an excellent answer on this subject.