Does this have to be recursive?
When you add a new item; you can store all the datapoints at the time of creation.