# Cred, Cost, and 'Resistance'

**URL:** <https://discourse.sourcecred.io/t/cred-cost-and-resistance/75>\
**Category:** Research\
**Created:** [April 17, 2019, 3:22pm UTC](https://discourse.sourcecred.io/t/cred-cost-and-resistance/75 "2019-04-17T15:22:28Z")\
**Posts on this page:** 1\
**Showing post:** 5

<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:** [April 22, 2019, 9:42am UTC](https://discourse.sourcecred.io/t/cred-cost-and-resistance/75/5 "2019-04-22T09:42:32Z")

</div>

> [@wchargin](#):
>
> To a first-order approximation, then, the current attribution essentially measures cost and calls it “cred”!

Yeah, I think that’s about right. IMO the current scores (at least at the user level) are mostly an activity metric. Depending on whether you think of activity as cost or benefit, you arrive at the statement above.

> [@wchargin](#):
>
> then for the score metric to be useful there must be some fundamental difference between value and resistance that is discernible from the graph structure. What is it?

I think the difference is that the project will deem certain nodes as root sources of cred (cf [Incorporating project goals in cred scoring](https://discourse.sourcecred.io/t/incorporating-project-goals-in-cred-scoring/65)), aka they are the seed vector for personalized PageRank. So the heuristic is: you get cred for creating activity that the project actually values, whereas you get resistance for activity in general.

> [@wchargin](#):
>
> Consider the Massive Refactor. It has a high cost, but presumably it _decreases_ the cost of later changes. … Do they flow cred to it? Or do they flow “negative resistance”? Why?

Per the reasoning above, it depends on whether the project explicitly valued the later changes. If the later changes were a sequence of additional refactors, never enabling any project-level goals or milestones, then the whole subgraph is a swamp of resistance. Conversely, if the later changes were valued by the project (and blessed by connections to the project’s seed vectors), then the refactor gets cred too.

> [@wchargin](#):
>
> - You say that a node “acquires resistance from its many children”. Recall that, as currently formulated, the core cred graph is not a DAG; it has no notion of children. Resistance should flow along “has-parent” edges, but not “references” edges (…probably?). This information, however, is domain-specific. Is resistance inherently a domain-specific notion? Probably not, right?

When I said “acquires resistance from it’s many children” I was specifically referring to a bikeshedding GitHub issue an its comments, so I meant children in the “has-parent” sense. You make a good point about how the semantics for resistance flow are domain-specific, and different from cred-flow semantics. We could imagine having “cred weights” and “resistance weights” on each edge, but that seems quite cumbersome.

> [@wchargin](#):
>
> - I put some effort and time into trimming down this comment to its essentials, in substance and structure. How could that signal possibly make it into the graph?

- Making the post more concise likely increases the positive (cred-bearing) engagement signals, e.g. more likely to be quoted, otherwise referenced, or liked.
- We could imagine having resistance heuristics on posts wherein higher-length posts are higher-resistance.

> [@wchargin](#):
>
> - It is important to distinguish between (a) a post that is inflammatory and thus invites bikeshedding and (b) a post that is coöpted by bikeshedding that could not reasonably have been predicted by the original post author. It’s a bad incentive for sloppy, high-cost work to increase your cred, but it’s also a bad incentive for bikeshedding on others’ PRs to decrease _their_ cred.

Having feedback from humans would be most helpful here. Imagine that there’s a downvote analogue that allows people to apply additional resistance (e.g. I would love a mechanism to apply resistance to low-value meetings that I’m invited to). Then the community could apply resistance to the posts that start the bikeshedding rather than to the PR itself.

---

_[View the full topic](https://discourse.sourcecred.io/t/cred-cost-and-resistance/75)._
