Calculator

Formula explanation

All information for calculations are taken from these documents:

  1. Cardano monetary policy
  2. Cardano staking explained
  3. AdaTracker charts (to approximate transaction number)
  4. "Antipalos" project stats calculated from official explorer

Parameters require for calculations:

  • INFL - the level of inflation in yearly percentile reserve decrease
  • YEAR - number of full years since the launch of the staking
  • STAKE - your stake in coins
  • TOTAL_STAKE - total stake in the system in coins
  • TX_EPOCH - average number of transactions each epoch (5 days)
  • TX_SIZE - average size of a transaction
  • TAX - the percentage of profits taxed towards the treasury
  • POOL_FEE - the percentage of profits that pool takes as a fee

Full formula:

MINT = 13,887,515,354 * (1 - INFL)YEAR * inflation
FEES = ((73 * TX_EPOCH) * 0.155381) + ((73 * TX_EPOCH) * TX_SIZE * 0.000043946)
RESULT = (((MINT + FEES) - TAX) * (STAKE / TOTAL_STAKE)) - POOL_FEE

Detailed explanation:

Minted coins

First we calculate how much coins will be issued this year as an inflation:

MINT = 13,887,515,354 * (1 - INFL)YEAR * INFL

The 13 billions number is taken from the monetary policy and represents the total reserve of coins not issued from the beginning. These coins will be gradually issued thru minting using formula above to calculate the amount. Formula is taken from the staking explanation post.

For example: if we take an arbitrary example of 5% reserve decrease, and calculated it for the second year (1 whole year after launch), then it would give us:

13,887,515,354 * (1 - 5%)1 * 5% = 659,656,979.315

Just under 660 millions of newly minted ADA in the second year of staking.

The MINT value now gives us notion of how much new coins will be issued to reward people. But there are also fees that users pay to send coins or execute any transactions. Total fees for the whole year are calculated like this:

Fees

TX_YEAR = 73 * TX_EPOCH
FIXED_FEES = TX_YEAR * 0.155381
SIZE_FEES = TX_YEAR * TX_SIZE * 0.000043946
FEES = FIXED_FEES + SIZE_FEES

TX_YEAR gives us the average number of transactions for the whole year. One year consists of 73 epochs. For now it's fixed, but in theory also may change. Best practice would be to make it a separate parameter EPOCH_YEAR

FIXED_FEES is the number of all transactions per year multiplied by the fixed transaction cost as described in the staking explanation post. It also might change in the future so would be best to define parameter TX_FEE_FIXED

SIZE_FEES is the sum of all bytes of all transactions per year multiplied by the byte cost as described in the staking explanation post. It also might change in the future so would be best to define parameter TX_FEE_PER_BYTE

For example: if we take current average number of transaction from the actual tracker it would be around 15,000. And if we take an average transaction size to be 458 byte, as can be seen in the statistics. Then we could calculate:

TX_YEAR = 73 * 15,000 = 1,095,000
FIXED_FEES = 1,095,000 * 0.155381 = 170,142.195
SIZE_FEES = 1,095,000 * 458 * 0.000043946 = 22,039.35846
FEES = 170,142.195 + 22,039.35846 = 192,181.55346

Tax

UNTAXED_REWARD = MINT + FEES
TAXED_REWARD = UNTAXED_REWARD - TAX

UNTAXED_REWARD is the total pool of reward for all stakers in the system, but before tax is subtracted. Once we subtract some percentage of the total pool into treasury - we get the final TAXED_REWARD - total reward distributed among all stakers.

For example: if we take TAX to be 20% just as an arbitrary rational example (IOHK proposed 20% tax for ETC, but it might end up being be 25% for Cardano, or some other number), then calculations would go like:

UNTAXED_REWARD = 659,656,979.315 + 192,181.55346 = 659,849,160.868
TAXED_REWARD = 659,849,160.868 - 20% = 527,879,328.694
SHARE = STAKE / TOTAL_STAKE
REWARD_SHARE = TAXED_REWARD * SHARE

Any arbitrary staker (in the pool or not) may calculate his AVERAGE share of the rewards, by calculating his SHARE in the total stake of the system. This parameter of the total stake is actually the most important one, because it directly and in the most significant way affects how much coins a user will receive by staking the same amount of coins. The lower total stake - the greater you share can be with the same coins staked.

For example: if we take TOTAL_STAKE to be 15 billion (just as an arbitrary completely random example, no one knows how many actual coins will be staked) and we take out stake to be 42 thousand coins, then calculations would go like:

SHARE = 42,000 / 15,000,000,000 = 0.0000028
REWARD_SHARE = 527,879,328.694 * 0.0000028 = 1,478.06212

This shows us that a person with a 42K coins stacked would receive ROUGHLY about 1,478.06212 in a year, but ONLY IF there would be 15 billions of total stake.

Pools fees

RESULT_REWARD = 1,478.06212 - 5% = 1,404.159014

Pools might take fees of different size and they will define those at the moment of the pool registration. For example: if we take a completely arbitrary number of 5%, then calculations would go like:

This gives us the final APPROXIMATE yearly profit of 1,404.159014 for a 42K stake, or 3.34%.

Frequently Asked Questions

How reliable is this whole thing, eh?

Presented results are not a promise of future profits! All they show is what APPROXIMATE amount of reward a person could receive ON AVERAGE in the selected period of time (specific year) ONLY IF actual behavior of the system would somewhat match WITH PARAMETERS SELECTED ABOVE!

This project is strictly educational. These results just demonstrate how the formula works, and the formula is somewhat similar to the one that will be used in the Cardano reward calculation protocol.

As soon as any new information about the incentives system becomes available - I will update the default parameters or the formula in this calculator. Subscribe to the informational channels, and look out for announcements.

What's up with all those parameters, eh?

See the Formula page to find detailed explanation of why all those parameters are needed.Basically, after seeing this calculator and explanation of its functionality, if someone shows you a calculator with fewer parameters - you may be sure they are hiding something. There are some yet undefined parameters they are not showing to you.

That's it. All those parameters are required to derive the final value. And there's no definite value for them exist yet (or ever) like with the fixed fee cost.

Why total stake is 15 billions, eh?

The amount of somewhat stable total stake in the system is not known at this point and will also change in time (but not as a predictable function) until it converges to some more or less stable value (in percentage) and will show only slight fluctuations from there on.

The total stake is one of 2 most important parameters - along with your own stake. These two parameters are basically decide how much you will profit, because they directly define your share in total stake - and this value directly shows how much of yearly inflation and yearly fees will go to you.

So for now - there's absolutely zero available data to decide what the total stake would be in the year one, or year two, or later on. For a real-world example we can take the "Waves" Proof-of-Stake platform that has total stake of ~60% of its supply. So the 15 billion number is taken completely arbitrarily just as middle ground around 50% of supply. The main point is to SHOW you how this value affects the rewards. So try to move it around and just plan ahead what you profits would be if the total stake would be at this value.

It might as well be lower in reality. But might as well be more.

Why Year needed, eh?

The Year parameter is required, since all the other monetary behavior of the system changes in time - inflation decreases with total supply, fixed block reward changes, etc. Any calculation that does not include time may only demonstrate you a "splice" of time, for example, only the first year of staking.

Why Year starts with 2019, eh?

The official date of staking release in Cardano is not defined yet, but it's somewhere in the fall of 2018. Since profits are calculated only yearly anyways (for now) and to make controls easier and more concise - it was decided to simply place 2019 as a first full year of staking. Basically, you can think of that date as: "the first year when I will receive my yearly profits".

Are you gonna make it better, eh?

Yes, see the roadmap.

Can you add new cool feature, eh?

See the roadmap in case it's already planned, or propose new features here.

About this project

As mentioned in the disclaimer:

  • All calculations are actually rough estimates
  • No result from this calculator should be considered as a promise of a future profits
  • There are too much unknown variables present in the calculations and without knowing those - no result might be easily predicted
Why

Main points of this project are:

  1. Show how calculations are done
  2. Show how complex calculations are
  3. Show how many variables are used
  4. Show how many variables are yet unknown
  5. Show estimated order of magnitude for rewards

This project is educational! Remember this project if someone shows you a calculator with a couple of fields and a single question of how big your stake is. Or if someone tries to get an easy answer of "what the profit percentage will be" - show them this calculator.

Also it provides a nice place for the formula explanations with an immediate example.

Project development

This calculator is in the initial state. It was developed extremely fast with the main point ot get the formula and the example to people as soon as possible. There are many potential additional calculations possible, so project is planned for some support in the near future.

To ask development questions or propose features, you use:

  1. This dedicated discussion issue: https://github.com/antipalos/antipalos.github.io/issues/1
  2. Project issues in general: https://github.com/antipalos/antipalos.github.io/issues
Design

Initially this website had awful simplistic design (or it's absence). And this sections contained an invitation for anyone who can do all this stuff to help the project and to contribute into improving the design. Completely out of nowhere anonymous user DEFAULTERROR1 opened a pull-request that majorly changed the whole layout of the website and turned it into the beauty it is today.

To this day I don't know who the DEFAULTERROR1 really are, but he always will be one of the greatest and appreciated contributors to this website. He saw the opportunity to help - and he took it. Be like DEFAULTERROR1 :)

UPD: New additional kudos to DEFAULTERROR1 for contributing the `NumPad` feature for mobile layout!

Help

If anyone wants to help with all of this, there are options:

Contacts

Cardano

Forum: forum.cardano.org

Chat: t.me/CardanoGeneral

Reddit: r/Cardano

Wiki: cardanowiki.info

Calculator Dev

Twitter: @vsubhuman

GitHub: @vantuz-subhuman

Forum: /u/vantuz-subhuman

Reddit: /u/vantuz-subhuman

Cardano chat: t.me/CardanoDevelopersOfficial

Roadmap

Propose new features here or vote on existing features here.

0.1

  • Release basic functionality

0.1.1

0.1.2 ✓ (Current version)

0.2

  • Add "portion of max supply" calculation
  • Extract text (templating engine?)
  • Calculate yearly restaking

0.3

  • Rework period calculation (prepare for per-epoch calculations)
  • Calculator for pools
  • Translation support

0.4

  • Per-epoch calculations (with restaking)
  • Basic multiperiods calculation (epochs to years)

0.5

  • Links with parameters
  • ...

0.6

  • Prepare for stats collecting
  • ...