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
| Signal | Source | Weight option | Default weight |
|---|---|---|---|
| Days since last activity | xf_user.last_activity | Last activity weight | 60 |
| Low post count | xf_user.message_count below Low post count threshold | Low post count weight | 10 |
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_threshold→ Releaseddays_inactive >= hard_threshold→ Hard sunsetdays_inactive >= soft_threshold→ Soft sunsetdays_inactive >= warned_threshold→ Warned- 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.