When formulas with dates are off by a day it is almost always a time zone issue.
Check the formatting to see how the “use same time zone” toggle is set for both the formula field and the original date field.
If both fields show a time, you usually want to have both fields not use GMT time, but show local time.
If the original field is a date only field (no time), you usually want the formula field to use the “same time zone (GMT)”.