Just add 3 days to timeInterval if the unit is month to accommodate varying month lengths.
var timeInterval = sinceUnits.timeIntervalSince(date)
if unit == .month {
timeInterval = timeInterval.advanced(by: .days(3))
}