The roadall parameter of the api returns:
array of arrays like [date::int, value::float, rate::float] each with exactly one field null
Which is nice for working out what the user specified fields are/were.
I would like to also be able to access something like roadfull which would return the road with all 3 values calculated.
This would make displaying roads using something like D3.js much easier and would not require re-implementing functionality Beeminder already has.
Ideally it would be a 4-tuple of date, value, rate, and an enum/int indicating which one of those 3 is derived.
We have exactly what @drtall suggests internally so this should be easy to expose. (Keep bugging us if we’re slow, especially if you’re making something awesome with D3.js!)
We’re now returning
fullroad but it doesn’t currently include the 4th column indicating which column was originally null. That’s pretty easy to add so… give me a sense of how useful that would be? Also I think it confusingly includes the final row (the thing you dial with the road dial) but not the initial row (the one specifying the actual start coordinates of the yellow brick road). So much refactoring to do!
Including the final row is good, missing the initial row is bad.
The “inferred” column is a good idea, it should be an int from 0-2 specifying which was initially null.
so you can do
inferred = fullroad[fullroad]
(Although I’m not 100% sure why you’d want to do that.)
Knowing which value was inferred It will be useful keeping roads sensible when I’m modifying them.
But having the initial point there is my highest priority desire right now.