BIP 32: Improve how Sett APY's are represented on Badger App

Category: Other

Scope: Clarify APYs of Badger Setts

Status: Accepted

Objective: Increase accuracy of APY’s displayed about Badger Setts on the app by showing a range of returns depending on boost, and adding text that explains how the boost is determined, so that end-users can accurately gauge what APY they will receive.

Overview:

At present, Badger is overstating the effective APY on its setts by 3x for most investors. For example, the Ren pool shows an APY of 60%.

The actual return most investors see is closer to 20%. If you hold for 8 weeks, you get the displayed APY but that is not stated anywhere on the app. This misleads investors and **undermines trust **in Badger.

The principle behind this proposal: Investor returns should be absolutely clear and never overstated.

Recommendations:

If you look at Curve, they show a range of returns. For example, for 3Pool, you see returns from: 17 → 42%. They do not state only 42% (the high point).

The Curve range depends on boost; same too with Badger. Currently, Badger’s is by time (8 weeks and you get 3x boost), soon it will be by amount of native assets (BIP 24 - BADGER BOOST (Multiplier Replacement)). In either case, displaying the Range is far more appropriate.

Proposals:

Proposal 1. Display APY as a Range

The proposal is to display a range of returns for each Sett, based on the boost level (now that will be based on time, later it will be based on Badger boost). This is as opposed to showing only the high-end of the range today (which does not apply to many users).

Proposal 2. Explain how Boost Impacts Realized APY within the Range

The boost should be explained somewhere on the page so people know where on the range they will fall. It could say something like:

“The actual return depends on your boost level. Boost levels are determined by length of liquidity provisioning. The lower end of the APY range is if you have no boost, the high end for full boost. If you have provided liquidity for 8 weeks, you have full boost.”

This would be updated when we have Badger Boost, whenever that becomes available.

Proposal 2a. Put Explanation in Mouse-Over Box

One possible implementation is to display this information in the mouse-over where today the breakdowns of the returns are shown to the user.

Proposal 2b. Put Explanation Directly on App page

Another implementation option is to explain the range and boost above-the-fold on the main app page.

Either 2a or 2b can be implemented or both, or neither. If you have a better idea on how and/or where to put the explanation, post it.

Proposal 1: Replace High-End APY currently displayed with an APY Range
  • Yes
  • No
0 voters
Proposal 2: Explain how Boost impacts Range so Users can Understand What Their APY might be
  • Support 2a (in mouse-over box)

  • Support 2b (directly on the App page)

  • Support both 2a and 2b

  • Do not Support

0 voters
12 Likes

One explanation for the current APY’s displayed is that it represents the historical APY of the Sett. However, there is clear differentiation in return owing to boost and that needs to be explained to new users. It is not enough to state that past investors had the boost (owing to time-held) and therefore that forms the baseline of expectation for new investors. That nuance is omitted and opaque to end-users today. For that reason, the current approach to APY display misleads new users. The range of APYs along with an explanation of how boost impacts a user’s APY along that range will more clearly set expectations for the new investor.

1 Like

In my opinion this is a good Change.
clarity and transparency builds trust!

1 Like

I agree with this and think we should work towards implementing these changes. Users should be able to quickly understand the ranges to which their APY will fall and the why’s behind it.

You have my support on this BIP

13 Likes

This is a much needed improvement to the app. Discord is constantly being flooded by new users not understanding why their apy is so low and when they find out they feel misled. Thanks for submitting this bip.

3 Likes

Well done. This looks like it will address the issue in a concise manner.

1 Like

Thank you for this BIP. I was not aware that the APY was based on 3x multiplier and was not accurate representation of what users were getting. I did mention several times in the past that users needed to be aware that there was a multiplier in place, and a clear display of their current multiplier (or Badger Boost when implemented).

So I fully support this proposal; I believe it is very important.

By the way I think all BIP proposals posted in the forums should be announced in Badger DAO Discord (taggint everyone) and social media, so more people can come, vote and join the discussion.

2 Likes

It was accurate for the time. APY’s aren’t fixed.

I think providing an easier understanding of this will also encourage investors to think long term about Badger, the Setts, Digg and all other products.

Agreed. Thanks for bringing this together.

This would be a very helpful amendment. Thank you for the effort in pulling it together.

I agree with the sentiment here however due to the multiplier this is a tougher problem to solve than one would expect.

My fear of providing a range (not disagreement that it is a good idea) is that even the lower bound may not be accurate. To illustrate:

Sett JintaoToken
Rewards: 10 Badger / Day
Participants: 5

Assume Pool Weight = Σ participant.multiplier * participant.position
Assume Participant Cut = participant.weight / pool weight

Assuming all equal position (1) w/ multiplier of 1
Pool Weight: 5
Rewards: 10 Badger
Entitlement: 2 Badger / day / participant

Assuming all equal position (1) w/ multiplier of 3
Pool Weight: 5
Rewards: 10 Badger
Entitlement: 2 Badger / day / participant

tldr; if everyone has the same multiplier - apy is easy to calculate

Assuming all equal position (1)
Assuming one participant w/ multiplier of 3
Assuming four participant w/ multiplier of 1
Pool Weight: 7
Rewards: 10 Badger
Entitlement:
  x3: 3 / 7 (4.285 Badger)
  x1: 1 / 7 each (1.42 Badger)

Assuming all equal position (1)
Assuming one participant w/ multiplier of 1
Assuming four participant w/ multiplier of 3
Pool Weight: 13
Rewards: 10 Badger
Entitlement:
  x3: 3 / 13 each (2.3 Badger)
  x1: 1 / 13 (.76 Badger)

Assuming new participant w/ position of 1, multiplier of 1
Assuming four participant w/ position of 2, multiplier of 3
Pool Weight: 25
Rewards: 10 Badger
Entitlement:
  x3: 6 / 25 each (2.4 Badger)
  x1: 1 / 25 (.4 Badger)

This last example is just the beginning of how complicated it can be to determine individual entitlements and a lower bound. Even using the vanilla estimate of 1/3 the standard APY was too high of an estimate (.67 Badger vs. .4 Badger).

Anyway, that being said I am for this proposal.

2 Likes

What will the maximum range of APY for a sett be under the badger boost system? In your example it ranged from x to x/6. If it goes, for example, from x to x/25 then a tbtc sett with a max APY of 90%=x, will leave someone at x/25 getting a lower APY than if they simply used the gauge on Curve.

A few things: the outcome of this proposal is not to show the individual end-user their APY. Nor is it to show them how many BADGER tokens they will receive on any interval etc.

The objective is far simpler: to show a range of what someone could earn as far as APY from no boost to maximum boost. That’s it in terms of numbers. Then we simply have a notice somewhere explaining what the boost is, how it’s obtained, and how having it would realize different APYs along the range (again, without getting into what their particular APY would be).

See Curve.Fi for an example of how this is done. The lower bound (and the higher bound) on Curve are always changing based on the liquidity in the pool and the CRV price. And that’s fine.

Regarding Badger Boost, my understanding is that we have a range on multiplier from 0.5 to 1.5. Once we find the baseline, I would think applying the multiplier and finding range should be manageable.

Glad to chat with you further to make sure I understand the specifics of the point you’re making; particularly the last example. I’ll ping you on Discord.

2 Likes

I agree, there is too little engagement here.

I don’t know what use displaying ‘APY’ (which is a misnomer but let’s leave this) that is always changing is. I’d rather not go the way of curve and show values that are separated from price (which we can’t control, like at all) and focus on the things that we can like strategy performance or how much emission tokens are distributed over how many tokens staked in the geyser.

1 Like

I’ve given this a bit more thought. Let me know what you think of this suggestion.

Since it’s unknown at the beginning what the distribution of boost there will be among participants in our pools, perhaps we could start with a pre-designed model such as ‘even distribution’ of boost among users from 1x to 3x. We build the “lower range” number on this (and with it, the 3x upper bound as well).

Then, when users start depositing, and boost levels are known, the lower bound on the range can be re-computed accordingly (and with that, the upper bound as well).

It’s fine for the range to change and move around. Over time, it will become more stable. Right now the APY is way off. The range will give a better indication. And then a more mature range with real user boost levels to go off of for a period of time, the predicted APY range will improve.

2 Likes

Great thoughts, might want to make sure mitche50 sees this.

1 Like

I realize we missed this for the formal proposal, but in addition to the range, we should show the individual’s personal APY based on their multiplier. Curve does this, you see the range and then see where it says "my: " which indicates my personal Apy% . Hopefully this can be added as well.

3 Likes

That would be awesome!