Skip to main content

Inactivity score

The evaluator does not compare individual fields against thresholds. It computes one composite score per candidate and maps it to a tier.

Inputs

SignalSourceWeight optionDefault weight
Days since last activityxf_user.last_activityLast activity weight60
Low post countxf_user.message_count below Low post count thresholdLow post count weight10

Last login is not used as a separate signal. A member who logs in but never posts updates last_activity like anyone else; that signal is sufficient.

Calculation

The scorer first computes days since last activity. That count multiplied by Last activity weight is the activity component. If message_count is at or below Low post count threshold (default 5 posts), Low post count weight is added once. The sum is the score.

Mapping score to tier

The tier thresholds are expressed in days, not raw score, for legibility on the AdminCP options page. The scorer compares days-inactive against each threshold and returns the deepest tier the member qualifies for:

  • days_inactive >= released_thresholdReleased
  • days_inactive >= hard_thresholdHard sunset
  • days_inactive >= soft_thresholdSoft sunset
  • days_inactive >= warned_thresholdWarned
  • otherwise → Active

The low-post-count signal influences the score (visible on the per-user state page and in the audit log) but does not change the tier mapping above. It surfaces in the dashboard ledger so admins can see why a borderline member was tagged.

Per-user view

The score and breakdown for a single member are available at AdminCP > Users > (edit a user) > Actions > Sunset state, and from the CLI: php cmd.php mc-sunset:score-user <user_id>. Both show the current tier, the score, the days-inactive count, and which signals contributed.