So I've burned up about 6 weekends working on this, and have asked a few peripheral questions on it, but never just asked the whole thing. I met with a Smartsheet pro and he suggested I bring this to the community. I would really appreciate some help on this.
I need a formula that will calculate the next review date relative to the hire date, based on the date of last review. Seemed simple enough when I told my boss I could do it months ago…
Here's the current formula, which works, but changes things relative to the date of last review instead of hire date. This causes the next review date to shift when the review isn't done exactly on the date.
=IF([Employment Status]@row <> "Active", "", IF([Date of Last Review]@row = "", [Hire Date]@row + 60, IF(AND([Date of Last Review]@row < [Hire Date]@row + 90, [PT/FT]@row = "Full Time", Position@row <> ""), [Hire Date]@row + 365, IF([Date of Last Review]@row < [Hire Date]@row + 90, [Hire Date]@row + 184, IF(AND([PT/FT]@row = "Full Time", Position@row <> ""), [Date of Last Review]@row + 365, [Date of Last Review]@row + 184)))))
Note: The FT/PT and Position row is no longer needed. Instead I've pre-calculated everything to a column called "6 month eligible" that either has a yes or no instead of figuring if they are full or part time and if there is data in the position column.
All reviews need to be calculated relative to the initial hire date.
Review Criteria
Every newly hired employee gets a 60 day review
Every employee gets an annual review
Some employees gets a 6 month review
Examples using the above criteria:
Someone hired on 2/11/1997 would have reviews this year on 2/11/2024 (Annual) and 8/11/2024 (6 month) if they were eligible for a 6 month review.
Someone hired on 2/11/2024 would have reviews this year on 4/11/2024 (60 day) and 8/11/2024 (6 month) if they were eligible for a 6 month review.
Early reviews
For a review date to count towards/satisfy the review date, the review can be completed up to 2 months early (60 days before the next review date).
When to change the Next Review Date
Review dates should only iterate if:
The last review was completed up to 60 days before the next review date
The last review was overdue but was then completed after the next review date (completed late)
The review is still overdue and today is within 60 days of the date the next review date would have changed to had review had been completed on time (In other words, if the review is so overdue that we're now within 60 days of the next review, so we're just going to update it) ← If this adds too much complexity, this can be scrapped. I think there was a use case for it originally, but who knows if it even still exists.
Columns currently available and their description
Hire Date: Static Date of Hire
Date of Last Review: Manually entered via form
Next Review: This is the column where the formula will live
Employment Status: Lists Active for current employees
Tenure: The number of days since hire
Next Year's Work Anniversary: Effectively hire date plus 1 year
=IFERROR(IF([Employment Status]@row = "Active", DATE(YEAR(TODAY()) + 1, MONTH([Hire Date]@row), DAY([Hire Date]@row)), ""), "")
Other:
I've set an automation to refresh the sheet daily so the Today() function will update.
Below is a screen snip of the current sheet.
Help me Smartsheet community. You're my only hope.