Return Calculus

So I’ve been trying to reproduce the 3M and 1Y return numbers that are given on numer.ai. Using numerapi in python. This is what I came up with:

modelname = "slowmoe"
rmp = napi.round_model_performances(modelname)
df = pd.DataFrame(rmp).set_index("roundNumber").sort_index()
df["payout_rel"] = df["payout"] / df["selectedStakeValue"]
cumprod = (df["payout_rel"].fillna(0)+1).cumprod()
gain_1Y = cumprod.iloc[-1] / cumprod.iloc[-52]

print(f"1 Year Return on Stake: {100*(gain_1Y-1):.1f}%")

which as of today gives me:

1 Year Return on Stake: 114.3%

while the website reports 109.5%. Pretty close, but something is missing. Any thoughts?

I might be wrong, but just give it a try with:

# 52 weeks of compounding minus 3 for stake compounding lag
gain_1Y = cumprod.iloc[-1] / cumprod.iloc[-49]

Source

I tried that and all sorts of other values, 51,50,48,… no dice

See Reproducing 1d, 3mo, 12mo returns the hard way