Yeah, there are definitely flaws with the guesstimation, given its nature. I store the created_at date provided by the api, then I have another column to store the guessed date that just takes the months param sent in chat and takes it from the current date.
I then compare the two and if the difference is > 31 days then I provide the older one (which will always be the one generated from chat), however if its < 31 days, then I assume the user held onto the resub notification for a little while and I give the created_at date.
Not perfect, but it’s close enough for what we can get.