Documentation of aggregation methods would be nice


You’re absolutely right. Don’t let me write code today.


Quick straw poll: is anybody currently relying on the ‘jolly’ (unary) behaviour currently exhibited by ‘binary’?


Not me.


yes. (Apart from the zero handing, which I’d prefer to work differently.)


Ha! I thought he was asking “who likes binary with how zero works today”?

I use binary on fiveish goals, and if non-zero datapoints didn’t count,
they’d work better.

Adam Wolf


oh. In which case, no.

Now I’m just confused.


I ought to leave the straw polls to @dreev, apparently.

Other than the eponymous @jolly, seems as though everyone would welcome a redefinition of ‘binary’ to count the existence of any non-zero datapoint as aggregating to ‘1’, and ‘0’ if there are no datapoints or all datapoints are themselves zero.

All of which may have added to the confusion, of course. Sounds like a quick and easy #UVI.


No, no, don’t make them strings! 1 != '1' (yes I’m just teasing)


Is there any evidence that @jolly wanted 0 to be 1?


No but yes. (:

The ‘jolly’ aggregation method was intended in order to enforce frequency of measurement-taking, counting days on which something was entered, regardless of the measured value.

His particular items of interest would be unlikely to result in a zero reading, but the request was specifically about datapoints entered, yes.

That aggregation method has a valid use, so let’s not change it. That use is just not the one that most of us seem to have expected when reading the code…


None whatsoever. :slight_smile: I was using this for a goal where I wanted to enforce me entering data, while ignoring the value of the data entered. And for that goal, 0 was never a value I would have entered…but it might be for someone else.


What was the upshot of this? I don’t see ‘jolly’ in the list. Has 'binary" been changed to have the ‘nonzero’ behavior? Because the ‘nonzero’ behavior is actually exactly ideal for my exercise goal (though several others work fine too).


The ‘jolly’ function has been deprecated, and removed from the selectable list. Though it still works if that’s what had been set.

Looks as though we haven’t yet made the ‘binary’ vs ‘unary’ distinction in the code.

That should be a quick #UVI though, @dreev. I looked at the code and the only thing stopping me from making the changes is that my dev env is broken and I wouldn’t be able to test it.


Done! Made nonzero a new aggday method and updated the wikified post above.


This is super! But, I don’t see it in the list on my exercise goal. Is there an overnight refresh or something?


Sorry about that! I deployed it for the back end (and thus working via the API) but I forgot to update the dropdown in the UI. Done now!


Awesome. Two of my goals are now sporting it : )


Aaaaaand nonzero aggmode breaks pessimistic presumptions on the Do Less goals, apparently. One my goals is still sporting it though : D


Can you point us to the problematic one? (Can move this to if it makes sense to.)


Sure thing - I emailed the deets to the support line with your name in the subject.