Computes days_since_last_activity as of the cutoff: the whole-day gap
between the cutoff date and the most recent surviving event. Returns null
when there is no qualifying activity (the caller decides how to encode "no
activity" — typically imputed downstream by the sidecar, §6.2).
Computing recency relative to the as-of date (not "now") is what keeps
train-time ("as-of-then") and score-time ("as-of-now") consistent.
Computes
days_since_last_activityas of the cutoff: the whole-day gap between the cutoff date and the most recent surviving event. Returnsnullwhen there is no qualifying activity (the caller decides how to encode "no activity" — typically imputed downstream by the sidecar, §6.2).Computing recency relative to the as-of date (not "now") is what keeps train-time ("as-of-then") and score-time ("as-of-now") consistent.