Decentralized Finance (DeFi) has attracted a lot of attention in the recent years. A rather new and hot topic inside the world of DeFi is yield farming, which allows to earn passive income on token holdings using various investment strategies coded into smart contracts. There is an ever growing number of products labeled as yield farming. Many of those are advertised with an APY (Annual Percentage Yield) rate. We emphasize that in this context, the term APY is to be read with caution. In classical finance, it refers to the annual rate of return in an investment and is a predefined rate. Hence, an investor can be sure to obtain the corresponding interest in their investment. However, most farming products heavily rely on the investment strategy in volatile crypto markets. In contrast to APYs in lending and borrowing, rates published in farming are either APYs of past periods or projections based on past data.
Due to the complexity of this topic, our first step consists of publishing the pool rates as emitted in the smart contracts of various farming products. The basic idea of pool rates is pretty straightforward and can be understood as follows. Consider a farming pool of token and let be the amount of token at block number . Assume, farming starts at block number , then we have the following equation
where is the price corresponding to the pool of token . Initially, and hence . Motivated by this fact, we write
Here, is the pool rate corresponding to the pool of token .
As the initial supply is constant, the price depends on the evolution of and hence on the pool's investment strategy - if the number of tokens increases with block number , so will the pool rate. In other words, the return of an investment is determined by the change in the pool rate. The following example illustrates the relation between the pool rate and the return on an investment. We remark that in general, as for interest rates in traditional finance, differences of pool rates can be used for simple interest calculation as well as for compounded interest.
Example: Assume an investor puts an amount of tokens into an empty pool at block number . With the notation from above this means and . Further assume that blocks later, the investment strategy has increased the number of tokens in the pool to tokens, so . The return on the initial investment after these blocks can be obtained by the difference of the pool rates at blocks and respectively. Indeed, we have and thus . By the above equation for we have and thus . This yields
and hence a return rate of 1%.
Again, whether the amount of tokens in a pool increases or decreases solely depends on the investment strategy. The return rates for past time ranges can be computed by considering pool rate differences, such as done in the example above. In order to estimate future return rates, one can apply mathematical methods which allow for the estimation of future values based on past data. The simplest way of doing so is to fit a linear function to the data, which is also known under the name of (linear) regression. However, for most cases, such simple models do not yield good results for bigger time ranges. Mathematicians have tackled such problems since a long time and there is a wide range of techniques available. Nowadays, many of these are used under the name of machine learning.