I uploaded a bunch of historical weight data using the CSV upload (thanks for providing that feature)! Unfortunately, because the field was just “weight” I upload pounds instead of kgs. Clearly my mistake.
I thought an easy fix would be just to re-upload the CSV with the correct units … this seems to have almost entirely worked, but some incorrect high weights remained. It appears that some values I uploaded got propagated to additional days not in the CSV, and these remained when I uploaded the corrected values. This seems like a bug?
I then downloaded wellness data, found the incorrect values in a spreadsheet, and uploaded another CSV with "-1"s for those dates. Now when I download my wellness data the values look good, but I still have some seemingly random strings of activities that have incorrect weights.This seems like a (second) bug?
And any advice on how to fix this issue? (It’s not too many activities fortunately, so I can probably manually edit if I need to).
In the background, everything is metric ‘International’. Conversion to Imperial is on the GUI.
Intervals needs your weight for every activity. If none has been entered on the day of an activity, Intervals uses (and fills the wellness field) with the most recent weight. That’s why those days without an entry ‘inherited’ the weight of the last day it was entered.
If you upload a csv with weight data, only the dates with a value will be populated. Days not in the csv, will keep what was automatically filled.
Further more, if no weight was ever entered before on the calendar, those days with an activity would take the weight that was entered on your profile. And given the fact that you almost surely entered that in pounds, it would become the equivalent of the conversion to metric.
I think this explains what you experienced.
The easiest way to correct that situation is probably to modify you csv and insert the last known weight in the gaps, making sure you have all dates in the range filled with a weight value in metric. Or you can do it manually, or if it is just a couple of subsequent days with activities, you can use the Edit function on the list view. Be aware that the last option will only modify the dates that have an activity! That could be exactly what you need, but could also skip depending on what values are in the weight field for days without activity!
Intervals.icu copies weight info onto activities. It seems there is a bug in that the activity weights are not updated when you clear the weight on a day by uploading -1. I am busy fixing this. Tx for the report.
What @MedTechCD says will work but I am busy sorting things out so you do not have to fill in the gaps. So wait a little bit.
If you haven’t already fixed weight on your activities you should be able to sort them out by downloading the CSV, change all the weights (e.g. -1 kg), upload that, then upload the one with correct weights.
I uploaded a CSV of historic weights from Fitbit – 4 years’ worth, mostly "-1"s, with about 90 legit data points among them – to try and clear out the phantom weights I had from a handful of activities back then and back-add some historic weight data at the same time. This caused a bunch of new weight data points added, with whole weeks now filled with the same weight.
Not a huge issue, just a bit counter intuitive – I expected -1 to be an explicit “clear this value and don’t put anything here unless I trigger something by hand”.
Edit: Tried uploading a CSV that blankets those 4 years with -1s only, which worked as expected… then another CSV with the 90 weight datapoints only. Same results – each of those 90 datapoints generates a lot of extra datapoints, making the weight graph look like a step function (graph is set to As Is, not Fill In):
Intervals needs a weight on EVERY day with an activity otherwise it can’t calculate w/kg and other metrics depending on body weight. That’s why every day with an activity get’s the most recent weight.
That is not what I said is happening. Most days in question did not have any activities on them.
I cleared out weights across the board.
I imported a small handful of weight datapoints.
I did not force Re-analyze any past activities.
Days (weeks even) for which there are no datapoints and no activities still get filled.
In the screenshot below – May 4, 13, and 19 are the only weight datapoints for May in the CSV, yet the entire month gets filled with repeating weight entries. This must be a bug with CSV import?
@david – IMHO, the desired behaviour that makes sense here is something like the following:
On activity creation / import or re-analyze:
Is there a weight value on that day?
Yes – use that value,
No – is there a weight value with a timestamp newer than the activity (in the future)?
Yes – interpolate (linear is probably fine) between two nearest weight values on each side of the activity (past and future) and use that value,
No – use the nearest past weight value.
After the activity is processed, discard the value (do not write into the wellness field) – or, if the wellness field entry is necessary for the activity processing function as it is coded now, use a flag to designate whether the weight value was real or calculated, fill the wellness field temporarily and then clear it after the activity is done processing (based on the flag).
I don’t think this is much more computationally intensive than the current way, but that’s just IMHO… and still doesn’t explain why days without activities get weight values set even after being overwritten with a -1 from CSV import.