The API docs for updating a goal’s road say:
The last row can be
[null, value, rate]but no other row can be.
This seems to be incorrect: the API does accept null in the date position for intermediate rows.
As it should—there’s no reason why it should be forbidden. The graph can include segments with inferred end dates, so long as that is consistent with the rest of the graph matrix (e.g. the inferred date isn’t past the next explicit date.)
I consider this to be a documentation issue: the API works fine, but the docs falsely say it doesn’t.
While we’re at it: the API documentation for getting the roadall says:
Like
roadbut with an additional initial row consisting of [initday,initval, null] and an additional final row consisting of [goaldate,goalval,rate].
It is not immediately clear from this description that one of those values in the final row will be null. The “A note about rate, date, and val” talks about there being a null in exactly one of those top-level fields, but I think it would be worth making it clear that this applies to the final road entry in roadall as well.