Koinly will first of all try to determine the market price using data available on your transaction. For ex. if you bought 1 BTC for 1000 USD then Koinly will set 1000 USD as the market price. The market price or value of "received" coins is always shown on the right side of a transaction:
If you bought the BTC in a different fiat currency ex. 1 BTC for 1000 GBP then Koinly will convert the GBP to USD (or your base currency) using Forex rates for the day of the transaction. Koinly has Forex rates for every commonly used fiat currency.
Market prices for cryptocurrencies
For other transactions such as a crypto withdrawal or a trade between two cryptocurrencies, Koinly will use market data from price aggregators like CoinMarketCap, CoinGecko and CryptoCompare. For popular currencies all prices come from CMC and for lesser known currencies we fall back to other data aggregators.
Koinly can also fetch market rates directly from certain exchanges like Coinbase and Uphold if you are syncing via API.
Overriding the market price for transactions
If you feel that the market price of some coin is higher/lower than what you paid for it, you can also override Koinly's prices by editing the transaction: