Whoops, looks like that’s correct for my dashboard too. My expectations aren’t exactly aligned with what I see, so it was/is confusing to me. I have two partial invoices outstanding, one of which has had a partial payment made and one which is still expecting it’s first partial payment. The total outstanding is correct, but I was thrown off by the “last 30 days” which reflects the full amount of one invoice and ignores the partial due on the other old invoice that’s outside of the “last 30 days” window. I’ll have to get used to this.
So back to the upcoming invoices… I would consider any invoice without a due date to be upcoming, otherwise it gets lost and requires a trip to the invoices page and possibly a sort to find it. I’d write the logic like…
(psuedo code for example’s sake)
if( NULL == due_date || today_date <= due_date )
upcoming = true;
else // today_date > due_date
past_due = true;
Since a due date isn’t required before an invoice can be sent and because it can be a nice gesture to a client to not “demand” a due date, I don’t always expect to set a due date. But I still want to be able to see these “upcoming” invoices on my dashboard somewhere