| 128 | export const ENGAGEMENT_LABELS = ['', 'Low', 'Some', 'Moderate', 'High', 'Very High'] as const; |
| 129 | |
| 130 | export function computeEngagementLevel(signals: EngagementSignals, slackUserCount: number = 0): number { |
| 131 | if (signals.interest_level === 'very_high') return 5; |
| 132 | if (signals.interest_level === 'high') return 4; |
| 133 | if (signals.working_group_count > 0) return 4; |
| 134 | if (signals.has_member_profile) return 4; |
| 135 | if (signals.login_count_30d > 3) return 3; |
| 136 | if (slackUserCount > 0) return 3; |
| 137 | if (signals.login_count_30d > 0) return 2; |
| 138 | return 1; |
| 139 | } |
| 140 | |
| 141 | // ============================================================================ |
| 142 | // Fire score — map community points to 0-4 fires for UI |