[RF S3] Replacing the Kinship Leaderboard with BOOSTED Dependability

[Introduction]

I’d like to propose replacing the Kinship Leaderboard in Season 3 with BOOSTED Dependability.

A lot of the problems with the (rookie) Kinship leaderboard have been pointed out in this thread:

One of the biggest problems is that after “PATCH 0.1d — ALCHEMICAL CHANNELING KINSHIP BOOSTS” passes (which it will), there will be no means by which later summoned Gotchis have any real means of catching up in the Kinship leaderboard, unless they are willing to spend thousands and thousands of GHST on Kinship potions.

Another problem is that with rookie Kinship leaderboards, there are way too many tied Gotchis in the top spots. In the last snapshot there was a single tie of 209 Gotchis in the top spots that never missed a pet and never drank a potion. And these ties were all broken by XP, which has its own Leaderboard already. More importantly, XP is not related to Kinship / interactions.

Dependability fixes these issues and makes rookie Leaderboards unnecessary. In fact, in the Dependability leaderboard, H2 Gotchis made the top 400 in the last snapshot of RF S2.

[What is Dependability?]

Imagine you are a Gotchi and you’re looking for a new owner. You go on Aamaazon.pet and look at the reviews. Instead of 1 to 5 stars, Gotchi owners only have positive or negative reviews.
You see an owner that has 20 positive reviews and 0 negative reviews. Next to it, there is an owner with 199 positive reviews and 1 negative review. And next to that is another one with 496 positive reviews and 2 negative reviews. Which one do you pick? Sure the first one has a perfect average, but given that there are only 20 reviews, you naturally gravitate towards the other two candidates. In fact, despite having the worst average score, the last owner is probably the savest bet, right?
And this sort of ranking, which considers not just the average review, but also the number of reviews, and spits out how much confidence we should have in something (which we do instinctively with product reviews all the time), can be expressed exactly using the Wilson score interval.

Basically, Dependability is exactly that. How confident can our Gotchis be in us, based on previous interactions. Instead of positive or negative reviews, Gotchis are all about how often they could have been pet versus how often they were actually pet.

However, in order not to disadvantage certain Gotchis, there are a view intricacies to consider. First of all, where do you start the 12h time-frame? If you use the snapshots timeframe for all Gotchis then you disadvantage people who summoned close to the end of this window, as they would only have limited time before eventually shifting into the next window causing them to have 1 interaction less than they had opportunities. Hence, it is more fair to use the Gotchis summoning time as the beginning of the first time-frame:

Another thing is that you should only consider closed frames. As long as a frame is open, the owner still has a chance to pet their Gotchi, even if they are late. So the current / open frame is not considered.

Now what if you buy a neglected Gotchi and nurse them back to health? For such an heroic act, you should not be disadvantaged either. So upon a sale, the owner’s dependability starts anew. It’s basically like they just summoned the Gotchi.

While this is very important, it also would (by itself) decrease the value of Gotchis that have a high dependability score, because the scores are reset upon purchase. So in order for these Gotchis to keep their value, you have not just an owner-specific dependability, but also an overall dependability. So if you purchase a Gotchi with a high overall dependability score, you will be able to continue that streak and keep all those benefits.

Ok, so we have two scores, how do we decide by which to rank? Easy. For each Gotchi we use the higher of the two scores.

Now there is just one final issue left. How about those people that spend thousands of GHST on Potions? Potions are not considered in the original Dependability. How do we ensure that we don’t rek those people?
We apply the boost the potions give to Kinship to the number of interactions. First those potion boosts replace the missed interactions with positive interactions, and in case the Gotchi shugged more Kinship points than their owner missed pets, the overall number of opportunities and pets is increased.

[BOOSTED Dependability]

How do we even know what that would do to the scoreboard?
I set up a BOOSTED Dependability leaderboard on aavegotchi.pet.

As you might notice in the leaderboard, potion boosts (the way I implemented them right now), are pretty powerful. It might be warranted to use a different implementation. These implementation details can still be discussed and changed in-between the signal proposal and (if the DAO is with us) the core proposal. One implementation that would cause less difference between the top spots of Kinship versus Boosted Dependability would be to use boost = Kinship - (interactions+50), instead of using boost = sum of all Kinship potion boosts.

Ok, so people who pet are better off, people who drink Potions are better off, rookies are better off. How does that work? Who looses? People with large shifts lose. If you have a lot of Kinship but you also missed a lot of pets or shifted too much, then you will get a lower rank than in the traditional Kinship leaderboard. This ensures that Gotchis can catch up.

[Implementation]

That all sounds kinda complicated. How would Pixelcraft implement this?

All they would need to do is to include some more information in the subgraph. They actually have a dedicated person for that: Frank Pfeift.

In particular the Aavegotchi class would need the following members added:

  • timeOfLastPurchase
  • timesInteracted (was part of the subgraph before, but was removed later)
  • kinshipFromPotions
  • boostedDependability

Since events for consumables and listings already exist, this would not require any changes to the contracts. And with the first three values added, you could calculate boostedDependability and then just use that to sort the leaderboard.

So from my understanding this would not require much dev time (or in other words, it would mainly require Frank’s time :sweat_smile: ). And we’d finally end up with a leaderboard that is entirely based on interactions, doesn’t rek anyone, gives newly summoned Gotchis a chance to catch up comparatively quickly, and best of all: without the need to implement different rules or leaderboards for different Haunts. Every Gotchi will be treated equally, based on their time of summon / purchase and the amount of time shift they acquired from petting too slowly or forgetting to pet.

[Snapshot]
https://snapshot.org/#/aavegotchi.eth/proposal/0x8851d8f3e2316a6afce30d6ce339eb9cf1581e6cb8a557e8b135db77a7b3df7d

8 Likes

I believe there is a bug in the aavegotchi.pet leaderboard regarding bridged Aavegotchis. So if you can’t find your bridged Gotchi, it doesn’t mean that it didn’t score. It just means that my poor MySQL recreation of the subgraph doesn’t know how to deal with the bridge. When implemented using an actual subgraph, this glitch would not be happening. Sorry for the inconvenience. :pensive:

1 Like

So in discord there was a lot of uninformed speculation of whether you could gain the system by buying a new Gotchi and having a “perfect score”, because then it would be 100%, for sure, right? No. That is very wrong. Dependability is the lower bounds of the confidence interval (Wilson score interval).
You can read up on it here:

Scroll down to “Wilson score interval”.
On aavegotchi.pet you can see which variable means what in terms of Gotchi petting.

In short, the higher your “ns” (number of successful pets), the higher your confidence. But the higher the difference between “n” (number of opportunities you had to pet, basically your Gotchis age in days times two) and “ns”, the lower your confidence. So trying to “gain the system” by selling your Gotchi to your alt account, would only give you better chances, if you have been an extremely bad petter and missed a LOT of pets and even then you’d need to pet diligently for weeks on end to catch up with the other petters.

2 Likes

hopefully we won’t have to see another Terence McKenna… took me a while to understand the proposal though.

1 Like

I appreciate your hard work with all these charts, but ultimately it will be very redundant.
A way to fix it is to give kinship points to non-bottable actions like mini-game competitions.
Regardless, I still voted yes.

I understand what you mean. But AFAIK realm rewards will be different from RF rewards. To me, mini-games sound more like realm-rewards. You go to the arcade with your Gotchi and then play some mini-games. Also, petting literally takes less than 1 min a day. Everyone can make time for that, so its super inclusive. But spending hours to grind through the leaderboard in a mini-game is time that a lot of people don’t have. So I feel like there should still be low effort RF rewards (BRS, interactions, XP) on the one side and high-effort high-competitive gameplay on the other side. Funding RF with Haunts and realm-rewards with parcel auctions like they did so far, seems to be a good balance.

1 Like

This is a really interesting proposal and I like the logic, but of course I need to see how it affects my gotchis, so thanks for the boosted dependability leaderboard. However, I notice that one of my gotchis, purchased 6 days ago, is showing as having been in current ownership for 231.6 days, and the previous owner was not a very good petter. So she’s dropped from approx 3600 to 9998. This may be a function of when you took a snapshot of data to test?

1 Like

If you tell me your Gotchi’s ID, I can take a look. There might have been some desync. Resyncing would take days with my free RPC plan, so I avoided doing it so far. But with the bridge issue and now this, it seems I really should get on that. Or maybe even set up my own subgraph.

Agree it could use a revamp and I think what you’ve proposed is a clever mechanism, I’m just afraid that it may be a little too complex for the average gotchi user to understand. I agree that without some game mechanism to remove kinship, the kinship race will get pretty stale. While i like the proposal to keep Kinship and allow it to Channel at higher rates opposed to burning it, perhaps we could have an additional mechanism that could incent consumption of Kinship. Gotchis could instantly channel Alchemica in exchange for Kinship? You would instantly channel alchemica but sacrifice longer term speed of production? Alternatively, kinship could be burned for XP or Points for your gotchi with each conversion exponentially more expensive(similar to aging)?

At this moment I don’t think I’m completely opposed to the XP tie breaker either. While I’m not even in the race for top XP, those who compete for it do help increase the rarity of existing gotchis through consumption of high XP gotchis. Additional use cases for XP are always great for continuing to keep people engaged.

I understand the sentiment behind that statement, but its not really that complex. The most complicated thing in the dependability formula is a square root. Besides (without meaning to engage in whataboutism) how many people fully understand the bonding curve? Just because something is not as easy as a simple percentage or sum, doesn’t mean its bad. Most people here are glad about the bonding curve, because it’s doing a great job.

XP is great. That is why it has its own leaderboard. But the fact remains, that it has nothing to do with interactions. What if two ski jumping athletes jump the same distance? Will they have to compete in curling to tie break who won? I think most people would find such a mechanic in any sport quite absurd. If you have three different sports, with three different leaderboards, you don’t use one to tie-break the other. What if you and another student stand between two grades in math at school, and the teacher says, well, you have a bad chemistry grade, so you really aren’t the greatest student, so we give you the lower math grade, while the other student has a good chemistry grade, so we give him the better grade in math too. :crazy_face:

Not a biggie, but if it helps with troubleshooting, gotchi is 7955.

1 Like

It did. You found a “bug” (well, probably just a mistake in the docs)

So according to the docs, if you list an Aavegotchi, the category of the ERC721Listing should be 2. See line 72 in the contract.
That is also what I’m looking for in the events. And despite trying to pick up the event of your purchased Gotchi multiple times, by trying to resyncing the last two weeks, I couldn’t pick it up. Then I had a look at the subgraph (probably the first thing I should have done):

So the subgraph picked up your purchase, but it says category 3. And it is clearly not the parcel with the same tokenID, since it says parcel = null. So I’m confused why its not category 2, even though it is an Aavegotchi.

Maybe @coderdan can shed some light on what the different categories are.

1 Like

Love finding bugs, even in docco. Especially before release!

1 Like

From poking around in the subgraph it looks like everything is just 1 higher than expected. So I fixed it a couple days ago and I have been looking at your 7955 and see it climb the ranks. Its going pretty fast. Feel free to keep an eye on it. Even though from the looks of it the proposal seems to be dead in the water. Either way, thank you for your help :slight_smile: