Reproducing 1d, 3mo, 12mo staking returns the hard way

Returns are meant to represent the return on a 1NMR stake over the give time frame. This post will
explain the returns compounding logic and how users can validate these number themselves.

The examples in this post are available in this Google Sheet.


  1. Staking returns calculation currently only considers weekend rounds. We will update the returns calculation to include daily rounds when daily round payouts start.
  2. Staking returns calculation includes both resolved and unresolved round payouts

1 Day Staking Returns
The 1 day returns take the delta between the current day’s projected payout vs yesterdays projected payout for all pending rounds. We divide the delta by the stake value for each of these rounds and then sum these percentages to get the 1d return.

N Month Staking Returns
The 3 month and 12 month returns use a different method (from 1d) that only considers the latest pending or resolve payouts going N weeks back. We divide the round payout by the round at-risk, then we compound these values with 5 weeks of compounding lag starting at week 13.

NOTE: For these examples, I simply selected all rows from the model submissions page and pasted them into Google sheets. Because of this there can be slight rounding error when comparing to actuals.

BTW: If you do this for your own model, make sure to update any the burns as negative since the copy/pasted as absolute values (non-negative)

The 12 month return works the exact same way except that it goes further back and needs to handle a special case transition for round 298 which increased the compounding lag from 4 weeks to 5 weeks (because we moved stake selection to Mondays @ round 298).


Thanks for this detailed explanation. Would it be possible to exclude unresolved rounds form the returns calculation? The unresolved rounds make the returns (even the 3 months returns) fluctuate a lot from day to day. This generates unnecessary headache.

1 Like

Hehe, daily returns generates headache! That’s true!

Showing results for resolved rounds should be sufficient.
OR we could learn, not to watch scores every day, but that’s hard :slight_smile:

We’ve debated this. I’m open to it.