#barkofdelight
1 messages · Page 1 of 1 (latest)
Hello! Can you give me the ID of the Subscription so I can take a look?
Sure.... it is sub_1Ns9LTCvz3BN9BlttOlfqIYI
Looking...
I'm not seeing the slip. Which Invoice has the change?
The Subscription periods all start and end on the 1st of the month.
Except for the first one, which started on the 19th.
Invoice create on 31 Oct says "OCT 1 - NOV 1, 2023"
Yes that's correct
But the one created on Jan 30th says: DEC 31, 2023 - JAN 31, 2024
Slipped back a day.
What's the ID of that Invoice?
in_1Ns9NzCvz3BN9BltB5F8CmFZ
Huh. The interval on the underlying line item has the correct dates. Like if you pull it from the API you should see the correct timestamps. Seems like maybe a timezone display issue or something like that.
Maybe test clock's don't understand DST?
Could be...
Let me ask someone who's better at Invoices than I am, hang on. 🙂
Wait... don't they all show up like this? I just looked at the previous Invoice and it's showing the same behavior.
The October 31 one is correct, at least to me.
I'm looking at the PDFs for these, where are you looking?
The previous Invoice shows "Nov 30 – Dec 31, 2023" in the PDF.
Just clicking on them in the dashboard.
Created: Oct 1, Nov 1...and then Nov 30, Dec 30 Jan 30
That's when DST ends though, so that makes sense, right?
Yes a DST error might be the culprit.
I don't think it's an error, I think it's the Dashboard applying DST adjustments and showing you the dates with that taken into account.
If you look at the underlying timestamps they're all correct, there's no shift or drift.
You mean the deltas between the timestamps are all the same?
Well, no, because different months are different lengths, but they all land on the expected month boundaries.
Meaning they're all at 7:00 AM on the 1st of the month UTC.
Hmmmmm that's not what I would expect.
Because that is in fact going to be November 30th PST instead of Dec 1st.
When you created the Subscription you backdated the start date to 1693551600 which is Fri, 01 Sep 2023 07:00:00 +0000. Why would you not expect the subsequent Subscription periods to not be anchored, by month, at that date and time?
Well, I said September 1st. I didn't myself say when on September 1st.
The widget on the dashboard only let me pick a date.
The underlying request set the timestamp to the one I mentioned above: https://dashboard.stripe.com/test/logs/req_zHLYTzsSDTKKas
If you want exact precision I recommend you use the API, not the Dashboard.
Sure....
But there's a conceptual thing here that I believe needs to be addressed....
The idea of "first of the month" is correctly being adjusted for the fact that the months are different lengths.
But it is forgetting about DST. October is one day and one hour longer than September.
That's not how it works. Subscriptions don't take DST into account when it comes to the length of intervals. We use UTC, which has no DST, to calculate the periods.
I have no objection to using UTC, but if you are going to do that, the invoices should then be displaying UTC as well.
A suggestion here could be to make the invoices anchor at 12 PM instead of 12 AM when created from the dashboard. Then one hour added or removed wouldn't change the date.
The Dashbord displays times and dates in your local timezone for convenience. You can change it to display UTC here: https://dashboard.stripe.com/settings/account
I'm more concerned with the invoices sent to customers.
@charred scaffold moving the anchor time for the dashboard is likely a sufficient workaround here.
Yeah but I don't think you can do this at the moment
re: the suggestion to use API
Sure, I will do that for now. But conceptually, I think that the billing anchor should be a day-of-month and not a timestamp.
Anecdotally, we anchor to 1st of each month and just set a random hour/minute between 9am and 3pm when the subscriptions get created, so they trickly in during the day
and not all-at-once
So does this mean if my company is in western US and we have a customer in Australia they'll get their bills a day in advance?
Wouldn't it just be 11 pm instead of midnight? Technically a day before
It depends on how you create the Subscription for them.
Maybe a day late.
Anyway, not diving into that complication just yet, I stand by my claim: If the internals are using UTC to define day-of-month, they should use that same thing to display that data on invoices. Other things like date created can be local, but if my customer expects to be billed for a calendar month, that should be what shows on the invoices, regardless of my time zone setting.
I can file that feedback, but really it's unlikely we're going to change the way this behaves.
Understood. Perhaps we can get a compromise and have the dashboard pick a UTC time which isn't midnight my time—or let me set the time there. That of course will still break if I were to change my timezone, but it is a bit of an improvment.
You can switch your account to UTC as indicated above, at which point it should select midnight UTC.
But really you should be using the API for this.
[My real claim would be that using a timestamp for day-of-month is the wrong type, but that's even more unlikely to get traction. ]
I am not the only user here; we will likely have a billing department eventually setting up users and subscriptions etc. So better to let them set it up and then I can automate the back end to shift the anchor datestamp to what I want it to be.
I don't want to be telling people to set their display to UTC...that's "bringing in the cats to catch the rats".
It sounds like the best way to solve this might be to allow you to specify a time as well as a date for the start date in the Dashboard. I'll flag that internally.
That would work. Thx for all the ideas and suggestions.