# Positive Cred Velocity

**URL:** <https://discourse.sourcecred.io/t/positive-cred-velocity/384>\
**Category:** Research\
**Created:** [December 8, 2019, 5:18am UTC](https://discourse.sourcecred.io/t/positive-cred-velocity/384 "2019-12-08T05:18:38Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![burrrata](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.sourcecred.io/burrrata/32/135_2.png) [@burrrata](https://discourse.sourcecred.io/u/burrrata)\
**Post date:** [December 8, 2019, 5:18am UTC](https://discourse.sourcecred.io/t/positive-cred-velocity/384/1 "2019-12-08T05:18:38Z")

</div>

Maybe it’s just me, but it seems like there aren’t as many likes flowing around as before. If this is true, then this is a problem. Hoarding Cred will lead to low value Cred for all parties involved! The more we give Cred, the more people are likely to engage in order to earn Cred. The more people engage with the community and earn Cred, the more Cred they have to give away. This creates a virtuous feedback cycle.

Currently, as far as I know, nodes that don’t flow Cred out kind of just accumulate Cred. It’s like a damn that builds up a big reservoir of Cred. This reduces the flow of Cred downstream, and as a result less will grow (building on the [Cred/water metaphor](https://discourse.sourcecred.io/t/sourcecred-high-level-overview-wip/382)).

Have we considered and explored mechanisms to incentivize nodes to share Cred? If so, please link! If no, let’s discuss! 🙂

---

<div class="post-metadata">

**Author:** ![Beanow](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.sourcecred.io/beanow/32/98_2.png) [@Beanow](https://discourse.sourcecred.io/u/Beanow)\
**Post date:** [December 8, 2019, 1:27pm UTC](https://discourse.sourcecred.io/t/positive-cred-velocity/384/2 "2019-12-08T13:27:20Z")

</div>

> [@burrrata](#):
>
> Maybe it’s just me, but it seems like there aren’t as many likes flowing around as before. If this is true, then this is a problem. Hoarding Cred will lead to low value Cred for all parties involved! The more we give Cred, the more people are likely to engage in order to earn Cred. The more people engage with the community and earn Cred, the more Cred they have to give away. This creates a virtuous feedback cycle.

I like that you’re drawing attention to this. A bit of “share the love and everyone wins” ethos is by design and good to be aware of 😃

> [@burrrata](#):
>
> Currently, as far as I know, nodes that don’t flow Cred out kind of just accumulate Cred. It’s like a damn that builds up a big reservoir of Cred. This reduces the flow of Cred downstream, and as a result less will grow (building on the [Cred/water metaphor](https://discourse.sourcecred.io/t/sourcecred-high-level-overview-wip/382)).

I think you’re right that accumulation of Cred can happen in nodes that have few or no outbound edges. In practice having no outbound edges is uncommon though. As likes are not the only way to create these edges. Mentions, replies, references, quotes, these all create edges too. If in normal activity these “damns” still pop up and start accumulating Cred, I think we should distinguish between two classes of problems.

**A technical problem** - The algorithm could bias towards this pattern and inflates scores beyond what the community feels like it should be worth. There’s a couple of ways we could tweak the algorithm to disperse these pockets of Cred. Like changing weights, considering new edge types, manually curating, etc.

**A coordination problem** - If people are feeling incentivized to “hoard Cred” and deliberately withhold from likes and attributing dependencies and such, that’s a more complex issue. Perhaps the incentives are indeed wrong and we should boost sharing dynamics. Perhaps it’s because of a misconception, where people believe it’s a zero-sum game and they will lose Cred by “giving it away” to others. What does it mean for collaboration within the community? Does it translate to people trying to do things on their own vs cooperating? I think this is where the most interesting challenges for SourceCred lie.

### However

> [@burrrata](#):
>
> Maybe it’s just me, but it seems like there aren’t as many likes flowing around as before.

I didn’t get this feeling necessarily, but it would be very interesting to see some data. Another one for my wishlist of UI improvements 😛

My feeling is that some of the velocity shifted away from the forums into different areas.

 ![image](https://canada1.discourse-cdn.com/flex032/uploads/sourcecred1/original/1X/11f835182c0939c97097e34666e7d8643ac8250d.png)

The spike here I think comes primarily from discourse activity. Which is also heavily incentivized at the moment. With an 8x weight for topics and 2x for posts. Compared to 1x for a PR and 1/16x for Github comments. Resetting these to 1x each, activity seems to be reasonably constant.

 ![image](https://canada1.discourse-cdn.com/flex032/uploads/sourcecred1/original/1X/aec313529e0ac67f61355cc586c20343d437d626.png)

On top of that I think a lot of value of recent activity is in the blind spots of our current measurements.

- The [podcast](https://discourse.sourcecred.io/t/produce-sourcecred-podcast/248) and [community calls](https://discourse.sourcecred.io/t/weekly-sourcecred-community-call/260).
- Generally more Discord usage.
- Talks for funding and [legal entities](https://discourse.sourcecred.io/t/setting-up-an-independent-sourcecred-foundation/358) that aren’t on-record here.
- Chatting with @decentralion to help me onboard as a developer.

A really big deal for recognizing those is [Supernodes: Moving past raw activity](https://discourse.sourcecred.io/t/supernodes-moving-past-raw-activity/340)

### TL;DR

I’m wondering _if_ we actually have a hoarding problem at all. Or just blind spots. So having a few metrics to know what’s going on, and more coverage of the known blind spots, I think would help here 😃

---

<div class="post-metadata">

**Author:** ![decentralion](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.sourcecred.io/decentralion/32/7_2.png) [@decentralion](https://discourse.sourcecred.io/u/decentralion)\
**Post date:** [December 8, 2019, 9:14pm UTC](https://discourse.sourcecred.io/t/positive-cred-velocity/384/3 "2019-12-08T21:14:59Z")

</div>

> [@burrrata](#):
>
> Currently, as far as I know, nodes that don’t flow Cred out kind of just accumulate Cred. It’s like a damn that builds up a big reservoir of Cred. This reduces the flow of Cred downstream, and as a result less will grow

There are a few misconceptions here:

1. The ‘total amount’ of cred is actually independent of the edges in the graph. Right now every Discourse post is worth (say) 2 cred, and thus 2 cred is minted regardless of what that post is connected to. (In the future, I want most cred minting to happen based on community-evaluated value, e.g. initiatives and boosting, and not just based on raw activity.)
2. Every node has an implicit connection that flows cred back to the “seed vector”, where the seed vector corresponds to which nodes minted cred. If there’s a node that doesn’t have any edges out, then all of its cred would just reset to the seed vector
3. When a node _does_ have edges out, the `alpha` parameter controls how much cred flows back to the seed vector, vs. how much flows to the edges out. It is possible to get a “cred black hole” when you have the following structure:

- A gives cred to X
- X gives cred to Y
- Y gives cred to X

Then A’s cred will tend to seep away to X and then “get stuck” bouncing between X and Y. If alpha is high, then this won’t be a big issue as it will pretty quickly all flow away to the seed vector. If alpha is low, however, then X and Y can crazily high cred scores.

Also, this construction can be made even simpler if X simply has a loop edge from X to X. Currently there’s no way for users to generate loop edges to themselves, but the two-step cycle happens all the time (I AUTHOR a post, and the post IS\_AUTHORED\_BY me).

Early in the CredSperiment, I increased alpha 4x precisely to mitigate this issue, you can read about it [here](https://discourse.sourcecred.io/t/credsperiment-week-2-payouts/240).

> [@Beanow](#):
>
> Perhaps it’s because of a misconception, where people believe it’s a zero-sum game and they will lose Cred by “giving it away” to others. What does it mean for collaboration within the community? Does it translate to people trying to do things on their own vs cooperating? I think this is where the most interesting challenges for SourceCred lie.

I would really like us to build some tools (observable notebooks maybe?) that make it super easy to create little cred graphs and experiment with the cred flows. Then we can all get a good intuition for how cred really works, and make changes as necessary. See this initiative: [Cred Analysis Notebooks](https://discourse.sourcecred.io/t/cred-analysis-notebooks/267).

> [@Beanow](#):
>
> The spike here I think comes primarily from discourse activity. Which is also heavily incentivized at the moment. With an 8x weight for topics and 2x for posts. Compared to 1x for a PR and 1/16x for Github comments. Resetting these to 1x each, activity seems to be reasonably constant.

Yeah, maybe we should switch the weights to put a little more love on GitHub and less on Discourse.

@Beanow would you be willing to come up with a proposal around weight changes, and then we can do some cred-weighted voting? Nice opportunity to keep testing our governance approach.

> [@Beanow](#):
>
> On top of that I think a lot of value of recent activity is in the blind spots of our current measurements.
> 
> - The [podcast](https://discourse.sourcecred.io/t/produce-sourcecred-podcast/248) and [community calls](https://discourse.sourcecred.io/t/weekly-sourcecred-community-call/260).
> - Generally more Discord usage.
> - Talks for funding and [legal entities](https://discourse.sourcecred.io/t/setting-up-an-independent-sourcecred-foundation/358) that aren’t on-record here.
> - Chatting with @decentralion to help me onboard as a developer.
> 
> A really big deal for recognizing those is [Supernodes: Moving past raw activity](https://discourse.sourcecred.io/t/supernodes-moving-past-raw-activity/340)

100% agree.

---

<div class="post-metadata">

**Author:** ![burrrata](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.sourcecred.io/burrrata/32/135_2.png) [@burrrata](https://discourse.sourcecred.io/u/burrrata)\
**Post date:** [December 9, 2019, 6:43am UTC](https://discourse.sourcecred.io/t/positive-cred-velocity/384/4 "2019-12-09T06:43:41Z")

</div>

> [@Beanow](#):
>
> **A coordination problem** - If people are feeling incentivized to “hoard Cred” and deliberately withhold from likes and attributing dependencies and such, that’s a more complex issue. Perhaps the incentives are indeed wrong and we should boost sharing dynamics. Perhaps it’s because of a misconception, where people believe it’s a zero-sum game and they will lose Cred by “giving it away” to others. What does it mean for collaboration within the community? Does it translate to people trying to do things on their own vs cooperating? I think this is where the most interesting challenges for SourceCred lie.

This was mainly what I was pointing to. I think there’s just a general bias towards zero-sum thinking and loss aversion. Onboarding new users will need to require educating them as to what SourceCred is, but also [how to play the SourceCred game](https://discourse.sourcecred.io/t/getting-started-playing-the-sourcecred-game/388).

Also agree that this is one of the most interesting challenges and opportunities for SourceCred 🙂

> [@Beanow](#):
>
> it would be very interesting to see some data. Another one for my wishlist of UI improvements

Agreed! Data is empowering. Also, as discussed in [reputation vs anonymity](https://discourse.sourcecred.io/t/reputation-vs-anonymity/222), for the game to work the system has to be transparent. Then players need to be able to engage to change the game to better reflect their values. Being able to easily visualize SourceCred would really help with this 🙂

> [@Beanow](#):
>
> My feeling is that some of the velocity shifted away from the forums into different areas.

Might be true! I mostly (only) hangout here so I wouldn’t know lol

> [@Beanow](#):
>
> With an 8x weight for topics and 2x for posts. Compared to 1x for a PR and 1/16x for Github comments. Resetting these to 1x each, activity seems to be reasonably constant.

TBH I’m not qualified to weigh in on this. Still don’t understand all the mechanics and how everything fits together. Seems like a PR, esp for many of the Initiatives in progress, would be as useful as a post so that makes sense. Can’t weigh in beyond that, however, as I don’t know what the exact numbers should be.

> [@Beanow](#):
>
> a lot of value of recent activity is in the blind spots of our current measurements.

This is most unfortunate and I’m glad we’re working to fix this 🙂

> [@Beanow](#):
>
> I’m wondering _if_ we actually have a hoarding problem at all. Or just blind spots. So having a few metrics to know what’s going on, and more coverage of the known blind spots, I think would help here 😃

I don’t know _if_ we have a hoarding problem or not. Felt like there was a possibility, however, so created this thread. Then started thinking that we should incentivize sharing Cred to make the community feel more welcoming, engaging, and rewarding.

> [@decentralion](#):
>
> There are a few misconceptions here:

Thanks for clarifying that 🙂

> [@decentralion](#):
>
> I would really like us to build some tools (observable notebooks maybe?) that make it super easy to create little cred graphs and experiment with the cred flows. Then we can all get a good intuition for how cred really works, and make changes as necessary. See this initiative: [Cred Analysis Notebooks](https://discourse.sourcecred.io/t/cred-analysis-notebooks/267).

I too would really like that!

> [@decentralion](#):
>
> Nice opportunity to keep testing our governance approach.

Do we currently have a governance system beyond [TBD](https://discourse.sourcecred.io/t/tbd-temporary-benevolent-dictator/376)?

---

<div class="post-metadata">

**Author:** ![decentralion](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.sourcecred.io/decentralion/32/7_2.png) [@decentralion](https://discourse.sourcecred.io/u/decentralion)\
**Post date:** [December 9, 2019, 10:15pm UTC](https://discourse.sourcecred.io/t/positive-cred-velocity/384/5 "2019-12-09T22:15:45Z")

</div>

> [@burrrata](#):
>
> Do we currently have a governance system beyond [TBD](https://discourse.sourcecred.io/t/tbd-temporary-benevolent-dictator/376)?

Nothing formal, but I intend to start having (non-binding) cred-weighted votes on any changes I make to the system or parameters. So we’ll start getting experience with and confidence in cred-weighted voting.

---

<div class="post-metadata">

**Author:** ![burrrata](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.sourcecred.io/burrrata/32/135_2.png) [@burrrata](https://discourse.sourcecred.io/u/burrrata)\
**Post date:** [December 9, 2019, 10:49pm UTC](https://discourse.sourcecred.io/t/positive-cred-velocity/384/6 "2019-12-09T22:49:38Z")

</div>

> [@decentralion](#):
>
> we’ll start getting experience with and confidence in cred-weighted voting.

Awesome! Would this be through a hack on the Discourse UI, or another platform/mechanism?

---

<div class="post-metadata">

**Author:** ![decentralion](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.sourcecred.io/decentralion/32/7_2.png) [@decentralion](https://discourse.sourcecred.io/u/decentralion)\
**Post date:** [December 10, 2019, 10:19pm UTC](https://discourse.sourcecred.io/t/positive-cred-velocity/384/7 "2019-12-10T22:19:13Z")

</div>

I’ll probably ask for people to vote in a Discourse thread, and then I’ll make an Observable notebook tallying the resultant outcome. Not unlike how we do Grain distribution right now. Hopefully before long we’ll automate it better though, I’m getting tired of all the manual notebook publications I need to make.

---

<div class="post-metadata">

**Author:** ![burrrata](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.sourcecred.io/burrrata/32/135_2.png) [@burrrata](https://discourse.sourcecred.io/u/burrrata)\
**Post date:** [December 10, 2019, 10:29pm UTC](https://discourse.sourcecred.io/t/positive-cred-velocity/384/8 "2019-12-10T22:29:54Z")

</div>

_Poll ([view on site](https://discourse.sourcecred.io/t/positive-cred-velocity/384/8))_

---

<div class="post-metadata">

**Author:** ![Beanow](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.sourcecred.io/beanow/32/98_2.png) [@Beanow](https://discourse.sourcecred.io/u/Beanow)\
**Post date:** [December 10, 2019, 10:42pm UTC](https://discourse.sourcecred.io/t/positive-cred-velocity/384/9 "2019-12-10T22:42:33Z")

</div>

Is it just me or…

 ![image](https://canada1.discourse-cdn.com/flex032/uploads/sourcecred1/original/1X/b92e30e623e4f78cbc6e5bac5ec8678efc72e2c2.png)

Anyway, I think using Discourse as the voting tool works for experimenting, but for the long run should be done through our own tool. As using Discourse would exclude the Github users and vice versa. And having both at the same time would allow double voting. So the most sensible to me is having 1:1 user mapping to what our SourceCred instance produces after the identity plugin merged Github and Discourse users.

---

<div class="post-metadata">

**Author:** ![burrrata](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.sourcecred.io/burrrata/32/135_2.png) [@burrrata](https://discourse.sourcecred.io/u/burrrata)\
**Post date:** [December 10, 2019, 10:45pm UTC](https://discourse.sourcecred.io/t/positive-cred-velocity/384/10 "2019-12-10T22:45:17Z")

</div>

> [@Beanow](#):
>
> for the long run should be done through our own tool. As using Discourse would exclude the Github users and vice versa.

Makes sense! We could use an Aragon DAO if we wanted, but someone would have to make sure that it’s token balances were updated to reflect the latest Cred scores. This could be a different token in the same DAO (DAOs can have multiple tokens), or it could be a completely separate DAO just for voting and signalling, but not financial transactions.

There’s also probably lots of other tools that could help too.

---

<div class="post-metadata">

**Author:** ![decentralion](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.sourcecred.io/decentralion/32/7_2.png) [@decentralion](https://discourse.sourcecred.io/u/decentralion)\
**Post date:** [December 11, 2019, 3:10am UTC](https://discourse.sourcecred.io/t/positive-cred-velocity/384/11 "2019-12-11T03:10:10Z")

</div>

Discourse polls would be OK if we could get the identity of who voted for which outcome–that way we could cross reference it with cred scores and grain totals and produce a proper cred-weighted vote. The double-voting issue @Beanow mentioned wouldn’t really be a problem, everyone who wanted to vote would need a Discourse account that is identity-deduplicated with their GitHub account, but that’s OK.

However, AFAIK there’s no way to get the user-\>vote mapping from Discourse polls, so they’re a non-starter.

---

<div class="post-metadata">

**Author:** ![burrrata](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.sourcecred.io/burrrata/32/135_2.png) [@burrrata](https://discourse.sourcecred.io/u/burrrata)\
**Post date:** [December 11, 2019, 4:17am UTC](https://discourse.sourcecred.io/t/positive-cred-velocity/384/12 "2019-12-11T04:17:44Z")

</div>

> [@decentralion](#):
>
> AFAIK there’s no way to get the user-\>vote mapping from Discourse polls, so they’re a non-starter.

From the [Discourse How To Thread on Polls](https://meta.discourse.org/t/how-to-create-polls/77548): “any poll can have the voters made “public” by adding `public=true` to the parameter list.”

_Poll ([view on site](https://discourse.sourcecred.io/t/positive-cred-velocity/384/12))_

Not exactly sure if “public” means the results are public or the voter identities. Testing it out here to see if it works.

---

<div class="post-metadata">

**Author:** ![Beanow](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.sourcecred.io/beanow/32/98_2.png) [@Beanow](https://discourse.sourcecred.io/u/Beanow)\
**Post date:** [December 11, 2019, 12:50pm UTC](https://discourse.sourcecred.io/t/positive-cred-velocity/384/13 "2019-12-11T12:50:58Z")

</div>

The public version seems to be usable. In the API we can retrieve the data as part of the post object.

 ![image](https://canada1.discourse-cdn.com/flex032/uploads/sourcecred1/original/1X/a63dfbcd70b81416f66459cc653d4c9fe50f01a5.png)

---

<div class="post-metadata">

**Author:** ![burrrata](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.sourcecred.io/burrrata/32/135_2.png) [@burrrata](https://discourse.sourcecred.io/u/burrrata)\
**Post date:** [December 11, 2019, 2:28pm UTC](https://discourse.sourcecred.io/t/positive-cred-velocity/384/14 "2019-12-11T14:28:46Z")

</div>

Added our conversations here to the [Cred Weighted Prioritization](https://discourse.sourcecred.io/t/implement-cred-weighted-prioritization/268) initiative. Described what we talked about, how it contributed to Cred weighted prioritization, and inlcuded links. Please update the initiative, however, if you feel like it could have been described better or would fit better somewhere else 🙂

---

<div class="post-metadata">

**Author:** ![decentralion](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.sourcecred.io/decentralion/32/7_2.png) [@decentralion](https://discourse.sourcecred.io/u/decentralion)\
**Post date:** [December 11, 2019, 9:05pm UTC](https://discourse.sourcecred.io/t/positive-cred-velocity/384/15 "2019-12-11T21:05:00Z")

</div>

Nice. Public polls should work for cred-weighted voting.
