I updated the logic on the "reviewed" countdown to show the planned end date if the actual is NULL. That solved the ugly NaN response, but uncovered another problem. If the milestone doesn't get closed and doesn't get a real actual end date (data quality problem), we end up with negative numbers like this screenshot.
There are potential issues with our current assumption that there will only be one of each milestone ID. Example: something funky is going on with 73 Avenue U Rezoning, P2013K0364. The project has two city council review milestones (a63beec4-dad0-e711-8116-1458d04e2fb8) and it seems like the date calculation is being done across those two milestones, yielding a negative number. API data: https://zap-api.planninglabs.nyc/projects/P2013K0364
Some milestones are "in progress" but they have actual end dates filled in. This leads to situations like this:
I think we may be trying to grab a date that doesn't exist. This is a problem on the upcoming tab and reviewed tab.
Upcoming: Reviewed: