# True Contribution explained

**URL:** https://forum.numer.ai/t/true-contribution-explained/4808
**Category:** Tournament
**Created:** [January 17, 2022, 12:59pm UTC](https://forum.numer.ai/t/true-contribution-explained/4808 "2022-01-17T12:59:31Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![nyuton](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/nyuton/32/687_2.png) [@nyuton](https://forum.numer.ai/u/nyuton)
#### Post date: [January 17, 2022, 12:59pm UTC](https://forum.numer.ai/t/true-contribution-explained/4808/1 "2022-01-17T12:59:31Z")

</div>

What is TC and how is it calculated? Can someone shed some light on it? I can’t find any documentation on this topic.

Thanks

---

<div class="post-metadata">

### Author: ![jay1100](https://avatars.discourse-cdn.com/v4/letter/j/e5b9ba/32.png) [@jay1100](https://forum.numer.ai/u/jay1100)
#### Post date: [January 17, 2022, 3:53pm UTC](https://forum.numer.ai/t/true-contribution-explained/4808/2 "2022-01-17T15:53:08Z")

</div>

They did some explanation in the latest fireside chat:  
https://www.youtube.com/embed/2nvfW0upGO0?feature=oembed&wmode=opaque&list=PLz3D6SeXhT3sOHp0-ur80MpZD8fMGcpl6

And more documentation will come in the future.

Basically TC is looking at the performance of the stake weighted meta model with and without your model (your model gets a fixed weight of 1% in the meta model. So it does not depend how much you staked on it for the TC calculation)

So you can not really calculate it locally on your validation data / cross-validation. Doing proper data science will be difficult. It seems the only thing you can do is to look at the live data. This of course has super high turn around times because you need to have your model running for several month before you have enough rounds for proper evaluation.

I think from the perspective of numerai TC makes perfect sense. But from the perspective of a data scientist it seems to make it impossible to run any experiments with reasonable turnaround times.

---

<div class="post-metadata">

### Author: ![wigglemuse](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/wigglemuse/32/3094_2.png) [@wigglemuse](https://forum.numer.ai/u/wigglemuse)
#### Post date: [January 17, 2022, 9:15pm UTC](https://forum.numer.ai/t/true-contribution-explained/4808/3 "2022-01-17T21:15:22Z")

</div>

They could make a tool using real past rounds with the real metamodel from those rounds to help evaluate TC. Seems like they also need to come up with a more stable version of TC itself.

---

<div class="post-metadata">

### Author: ![jay1100](https://avatars.discourse-cdn.com/v4/letter/j/e5b9ba/32.png) [@jay1100](https://forum.numer.ai/u/jay1100)
#### Post date: [January 18, 2022, 8:46am UTC](https://forum.numer.ai/t/true-contribution-explained/4808/4 "2022-01-18T08:46:32Z")

</div>

I think building such a tool is not easily possible: They were saying that calculating TC is very computationally expensive because they run the meta model optimizer for each submission (For each submission they calculate a “new” meta model and compare if it is better or worse than their real meta model).

---

<div class="post-metadata">

### Author: ![eleven\_sigma](https://avatars.discourse-cdn.com/v4/letter/e/8797f3/32.png) [@eleven\_sigma](https://forum.numer.ai/u/eleven_sigma)
#### Post date: [January 18, 2022, 12:27pm UTC](https://forum.numer.ai/t/true-contribution-explained/4808/5 "2022-01-18T12:27:42Z")

</div>

First impressions are that new metric is extremely volatile and sometimes uncorrelated with CORR (this could be reasonable) but with MMC too (that is a major problem).  
If I understood well, TC is computed doing bootstrapping, computing a metamodel, computing its performance, and repeating this process several times. Then the TC is the mean of performance in the runs in which a model is vs the runs in which is not (something like this, I think).  
The accuracy of this metric depends of the variance of the result of each run of bootstrapping.  
I hope Numerai computes the confidence interval of TC using the sd of each estimation (run of bootstrapping) and checks the wide of the interval is small. Othervise they will need other approach or increase the number of runs.

---

<div class="post-metadata">

### Author: ![mic](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/mic/32/2949_2.png) [@mic](https://forum.numer.ai/u/mic)
#### Post date: [January 18, 2022, 1:18pm UTC](https://forum.numer.ai/t/true-contribution-explained/4808/6 "2022-01-18T13:18:45Z")

</div>

@eleven_sigma why would TC being uncorrelated with MMC be a major problem?

---

<div class="post-metadata">

### Author: ![eleven\_sigma](https://avatars.discourse-cdn.com/v4/letter/e/8797f3/32.png) [@eleven\_sigma](https://forum.numer.ai/u/eleven_sigma)
#### Post date: [January 18, 2022, 2:37pm UTC](https://forum.numer.ai/t/true-contribution-explained/4808/7 "2022-01-18T14:37:54Z")

</div>

If TC is highly uncorrelated with MMC how do you test your models are good?  
Imagine in future the payment is based only in TC…

---

<div class="post-metadata">

### Author: ![rigrog](https://avatars.discourse-cdn.com/v4/letter/r/dec6dc/32.png) [@rigrog](https://forum.numer.ai/u/rigrog)
#### Post date: [January 18, 2022, 2:54pm UTC](https://forum.numer.ai/t/true-contribution-explained/4808/8 "2022-01-18T14:54:35Z")

</div>

“TC is looking at the performance of the stake weighted meta model with and without your model”

That sounds to me, just like the explanation of MMC, absent some details. From the ancient scrolls:

# 

Calculation

To calculate a user’s (U) `mmc` for a given round we

- select a random 67% of all staking users (with replacement)

- calculate the stake weighted predictions of these users

- transform both the stake weighted predictions, and U’s model to be uniformly distributed

- neutralize U’s model with respect to the uniform stake weighted predictions

- calculate the covariance between U’s model and the targets

- divide this value by 0.0841 (this step is to bring the expected score up to the same magnitude as correlation)

- the resultant value is an MMC score

- repeat this whole process 20 times and keep the average MMC score

---

<div class="post-metadata">

### Author: ![wigglemuse](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/wigglemuse/32/3094_2.png) [@wigglemuse](https://forum.numer.ai/u/wigglemuse)
#### Post date: [January 18, 2022, 4:19pm UTC](https://forum.numer.ai/t/true-contribution-explained/4808/9 "2022-01-18T16:19:20Z")

</div>

If they can compute it every day for all models, they can certainly compute it on demand for a few rounds when you submit some test predictions (even if it isn’t instant). Another idea is for those previous live rounds is to not only release the targets, but the blended metamodel predictions. Then we could estimate TC ourselves. (Releasing the metamodel predictions might be controversial.)

---

<div class="post-metadata">

### Author: ![wigglemuse](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/wigglemuse/32/3094_2.png) [@wigglemuse](https://forum.numer.ai/u/wigglemuse)
#### Post date: [January 18, 2022, 4:19pm UTC](https://forum.numer.ai/t/true-contribution-explained/4808/10 "2022-01-18T16:19:55Z")

</div>

That was the original version of MMC (the current version uses residuals), and yes it does sound very much like that.

---

<div class="post-metadata">

### Author: ![of\_s](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/of_s/32/2627_2.png) [@of\_s](https://forum.numer.ai/u/of_s)
#### Post date: [January 18, 2022, 9:08pm UTC](https://forum.numer.ai/t/true-contribution-explained/4808/11 "2022-01-18T21:08:10Z")

</div>

> [@rigrog](#):
>
> “TC is looking at the performance of the stake weighted meta model with and without your model”

How is performance defined and evaluated…Sharpe, average returns, something else?

---

<div class="post-metadata">

### Author: ![rigrog](https://avatars.discourse-cdn.com/v4/letter/r/dec6dc/32.png) [@rigrog](https://forum.numer.ai/u/rigrog)
#### Post date: [January 18, 2022, 10:06pm UTC](https://forum.numer.ai/t/true-contribution-explained/4808/12 "2022-01-18T22:06:22Z")

</div>

Not sure… I think it’s Spearman correlation.

---

<div class="post-metadata">

### Author: ![wigglemuse](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/wigglemuse/32/3094_2.png) [@wigglemuse](https://forum.numer.ai/u/wigglemuse)
#### Post date: [January 18, 2022, 10:14pm UTC](https://forum.numer.ai/t/true-contribution-explained/4808/13 "2022-01-18T22:14:26Z")

</div>

It is going through the optimizer and is scored in basis points, so evaluated like real trades not a proxy metric sounds like.

---

<div class="post-metadata">

### Author: ![aventurine](https://yyz1.discourse-cdn.com/flex009/user_avatar/forum.numer.ai/aventurine/32/2825_2.png) [@aventurine](https://forum.numer.ai/u/aventurine)
#### Post date: [January 19, 2022, 3:06am UTC](https://forum.numer.ai/t/true-contribution-explained/4808/14 "2022-01-19T03:06:32Z")

</div>

It would be interesting to see once TC calculation bugs are squashed what the distribution of TC to Stake sizes looks like over time. That would be more interesting to than TC vs CORR or even TC vs FNC
