Skip to content

Models are not defined or explained

Thank you for this work! I love that there's a python implementation, but I'm a little confused on the models.

Different implementations have gone with different names for patterns. Here, "Bump" and "Triple" are not clear and "Spike" seems obvious, but it depends on what those other two mean. Nothing about the prices are ever definitively "Triple," and that's the most confusing name that makes the others confusing by association. "Decay" is the only absolutely clear model name.

Does "bump" refer to a low level "bumpy" (aka fluctuating in Turnip Prophet: https://turnipprophet.io/index.html) line or a moderately sized price bump? If it's a moderate price bump, what does that make triple or spike?

Does "spike" refer to the biggest spike or is that "triple"? If it's the medium spike, what is bump? If it's the biggest spike what is triple?

Compounding things, model.py refers to a "peak" model which leaves out triple and is only a base for Bump and Spike.

Looking to the source of all this (@_Ninji) the patterns are originally like enum values, but clarity isn't added when looking at their aggregate patterns (helpfully plotted for 1 million weeks here: https://brettonw.com/turnips/).

The Problem

Looking at the ModelEnum in model.py compared to the aggregate graph (above):

"Triple" as Pattern 0 doesn't seem right. On the linked graph it seems more like "Bump" but it begs the question of what "triple" means (3 peaks or triple the price or ...?)

"Spike" could fit as Pattern 1 if "Triple" doesn't mean a "triple" sized spike.

"Decay" as Pattern 2 looks spot on.

Pattern 3 could be "Spike" or "Bump" (probably not "Triple) but it's impossible to know without definitions.

The Solution

Add info to the Readme under Models that explains your definitions

(Optionally) add similar info to the model.py docstring

(Optional but ideal) rename at least the Triple model to something that is clearer, which may involve renaming other models. Since I don't know what Triple is supposed to be, I don't have a direct suggestion.

My proposal of names that might help based on pattern enums:

0: flux or fluctuate

1: spike

2: decay (no change)

3: bump

If Triple is the bigger spike than Spike, you could follow Turnip Prophet and go with small_spike and big_spike which are a little cumbersome, but at least they are clearer.

If triple is the fluctuation model, than simply renaming it to flux or flucuate or similar would be very clear.

Edited by E Jo Zim